Contao-Camp 2024
Ergebnis 1 bis 8 von 8

Thema: Contao - Eigene Hook implementieren

  1. #1
    Contao-Nutzer
    Registriert seit
    07.12.2019.
    Beiträge
    147

    Standard Contao - Eigene Hook implementieren

    Hallo Kollegen,

    ich würde gerne etwas mehr von Contao verstehen und habe mich gefragt, wie Hooks eigentlich implementiert werden.
    Hierbei meine ich nicht, wie man einen Listener dafür anlegt, das verstehe ich.


    Ich meine, wie man einen Hook, wie beispielsweise den "postUpload"-Hook, implementieren kann.
    Zuvor dachte ich, dass es sich hierbei um Events handelt und dann einfach Listener für diese implementiert werden.
    Unter dem Pfad
    HTML-Code:
    vendor/contao/core-bundle/src/Events/
    konnte ich aber keine vergleichbaren Events erkennen, die die bisher bestehenden Hooks aus https://docs.contao.org/dev/reference/hooks/ abbilden.

    Könnte mir hier vielleicht jemand einen Denkanstoß geben, wie diese Hooks implementiert werden?
    Irgendwo müssen Sie ja im System vorkommen ^^


    Habe es auch schon mit einem grep und dem Hook-Namen versucht, aber leider nur das gefunden:
    PHP-Code:
    contao/core-bundle/src/Resources/contao/drivers/DC_Folder.php:                  if (isset($GLOBALS['TL_HOOKS']['postUpload']) && \is_array($GLOBALS['TL_HOOKS']['postUpload']))
    contao/core-bundle/src/Resources/contao/drivers/DC_Folder.php:                          foreach ($GLOBALS['TL_HOOKS']['postUpload'] as $callback
    Wäre hier jedem sehr dankbar, der mich mit seinem Wissen beschenken könnte

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.684
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fonjensi Beitrag anzeigen
    Ich meine, wie man einen Hook, wie beispielsweise den "postUpload"-Hook, implementieren kann.
    wo die Hooks aufgerufen werden kann man suchen - z.B. https://github.com/contao/contao/search?q=postUpload

    ich kann Dein "implementieren" nicht eindeutig zuordnen: meinst Du damit "nutzen" oder einen eigenen/neuen Hook in Contao "einbauen"?

  3. #3
    Contao-Nutzer
    Registriert seit
    07.12.2019.
    Beiträge
    147

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    wo die Hooks aufgerufen werden kann man suchen - z.B. https://github.com/contao/contao/search?q=postUpload

    ich kann Dein "implementieren" nicht eindeutig zuordnen: meinst Du damit "nutzen" oder einen eigenen/neuen Hook in Contao "einbauen"?
    Hey Zonky, ich meine einen eigenen/neuen Hook in Contao einbauen.

    z.B den Hook "preUploadFonjensi" -> Mal als ganz blödes Beispiel.

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

    Standard

    Einen eigenen Hook kannst du in die Core Files grundsätzlich nicht update sicher einbauen - bzw. wenn dann nur mit patch files.
    » sponsor me via GitHub or PayPal or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    07.12.2019.
    Beiträge
    147

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Einen eigenen Hook kannst du in die Core Files grundsätzlich nicht update sicher einbauen - bzw. wenn dann nur mit patch files.
    Hey Spooky, das ist mir bewusst, das wollte ich auch gar nicht machen.
    Ich wollte nur verstehen, wie man das machen würde bzw. wie es in Contao gemacht wird.
    Manche Hooks können ja beispielsweise auf Formular-Daten oder den Data-Container zugreifen. Das bedeutet für mich, dass diese irgendwo so konfiguriert sein müssen, um diese Werte zu verwenden.

    Und bisher finde ich das Vorkommen der Hook-Namen nur im $GLOBALS['TL_HOOKS'] - Array.
    Aber diese müssten sich ja noch an anderer Stelle finden.

    Und irgendwie müssen Sie ja in das $GLOBALS['TL_HOOKS'] - Array gelangen

    Mir geht es nur um das Verständnis

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

    Standard

    In der Dokumentation hast du bei jedem Hook einen Link, wo du siehst wie der Hook implementiert ist.
    » sponsor me via GitHub or PayPal or Revolut

  7. #7
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.684
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Fonjensi Beitrag anzeigen
    Manche Hooks können ja beispielsweise auf Formular-Daten oder den Data-Container zugreifen. Das bedeutet für mich, dass diese irgendwo so konfiguriert sein müssen, um diese Werte zu verwenden.
    nicht jeder Hook wird gleich aufgerufen - es werden unterschiedliche Sachen übergeben

  8. #8
    Contao-Nutzer
    Registriert seit
    07.12.2019.
    Beiträge
    147

    Standard

    Zitat Zitat von zonky Beitrag anzeigen
    nicht jeder Hook wird gleich aufgerufen - es werden unterschiedliche Sachen übergeben
    Ja, das stimmt. Ich glaube ich habe mich etwas blöd ausgedrückt. Sorry dafür.

    Zitat Zitat von Spooky Beitrag anzeigen
    In der Dokumentation hast du bei jedem Hook einen Link, wo du siehst wie der Hook implementiert ist.
    Du meinst damit den "References" - Link, oder?

    Stimmt, da sehe ich es jetzt auch: https://github.com/contao/contao/blo....php#L371-L379

    Im Callback werden die Parameter übergeben:
    PHP-Code:
    $this->{$callback[0]}->{$callback[1]}($objComment->id$arrSet$this); 
    Oh man, wieder eine Frage, die man sich hätte sparen können.

    Sorry Leute und vielen Dank für die schnellen Antworten :/

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
  •