Ergebnis 1 bis 7 von 7

Thema: Hook selber zünden

  1. #1
    Contao-Nutzer
    Registriert seit
    20.08.2014.
    Beiträge
    25

    Standard Hook selber zünden

    Hi Community,

    kann ich einen Hook selbst auslösen?
    Vielen Dank für Hilfe.

  2. #2
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Öhm, ja, indem du die Methode aufrufst in der der Hook registriert ist?
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.392
    Partner-ID
    10107

    Standard

    Sieh' dir einfach ein Beispiel im Contao source an. So wird zB der processFormData Hook aufgerufen:
    PHP-Code:
            // HOOK: process form data callback
            
    if (isset($GLOBALS['TL_HOOKS']['processFormData']) && is_array($GLOBALS['TL_HOOKS']['processFormData']))
            {
                foreach (
    $GLOBALS['TL_HOOKS']['processFormData'] as $callback)
                {
                    
    $this->import($callback[0]);
                    
    $this->$callback[0]->$callback[1]($arrData$this->arrData$arrFiles$arrLabels$this);
                }
            } 
    https://github.com/contao/core/blob/.../Form.php#L490

  4. #4
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Achso, einen Hook selbst erstellen meint er :-)
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.392
    Partner-ID
    10107

    Standard

    Entweder das oder auch einen schon bestehenden Hook selber auslösen. Aber vielleicht irre ich mich ja auch .

  6. #6
    Contao-Nutzer
    Registriert seit
    20.08.2014.
    Beiträge
    25

    Standard

    Danke für die Antworten.
    Ich meinte, das ich einen im System bestehenden Hook selber auslösen möchte.
    Einen Hook selber definieren ist allerdings ähnlich interessant.
    Konkret versuche ich irgendwie die Problematik zu lösen, die ich (relativ umständlich möglicherweise) in diesem Thread zu kommunizieren versuche: https://community.contao.org/de/show...-auf-Datenbank
    Ein "Fremdprogrammierer" hat, statt das schöne Formular, das Contao bietet zu nutzen einen etwas verwirrenden Wrapper um diesen herum geschrieben. Was darin resultiert, dass ich, sobald ich aus der Template-Datei des Frontends versuche Werte im Formular dynamisch (ajax) anzupassen, den Zugriff zum Contao-System verlieren, weil ich mich eben in keinem definierten Objekt mehr befinde, die Contao-Hooks durch das wrappen des Formulars nicht ausgelöst werden und kein "$this"-Pointer mehr auf irgend etwas Contao-spezifisches existiert. Also versuche ich gedanklich eine Lösung zu finden - evtl. durch das dedizierte selbst auslösen von System-Hooks (ziemlich gehackten Code ziemlich gehackt behandeln...)
    In jedem Fall: Danke für die Hilfe :-)

  7. #7
    Contao-Urgestein Avatar von the_scrat
    Registriert seit
    24.02.2010.
    Ort
    Augsburg
    Beiträge
    2.051
    User beschenken
    Wunschliste

    Standard

    Hi,

    selbst wenn du den HOOK selbst "zündest" würde er nicht funktionieren, wie dir ja bereits in diesem Thread erklärt wurde:
    https://community.contao.org/de/show...rmular-ab-quot
    Programmers don't comment their code. It was hard to write, it should be hard to understand...

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •