logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Verstehen von Hooks

19/06/2025, by Ivan

Hooks sind eine der Möglichkeiten, wie Module mit anderen installierten Modulen oder Kern-Subsystemen von Drupal interagieren. Hooks werden für verschiedene Aufgaben verwendet, darunter das Vorverarbeiten von Variablen für Template-Dateien (hook_preprocess()), das Ändern von Informationslisten (hook_tokens_alter(), hook_views_data_alter()) und das Manipulieren von Formularen (hook_form_alter()) unter anderem. Auf dieser Seite sind alle Hooks aufgeführt, die vom Drupal-Kern bereitgestellt werden.

Module können auch eigene zusätzliche Hooks definieren. Zum Beispiel definiert das Flag-Modul den hook_flag_options_alter(), der von Modulen genutzt werden kann, die die Optionen eines bestehenden Standard-Flags ändern möchten. Die meisten Module, die Hooks definieren, bieten auch Dokumentation dazu an. Diese Dokumentation befindet sich in einer Datei mit der Endung *.api.php.

Hooks treten an verschiedenen Punkten im Ausführungsfluss auf, an denen Drupal Beiträge von allen aktivierten Modulen sucht. Zum Beispiel, wenn ein Benutzer eine Hilfeseite auf einer Drupal-Seite besucht, gibt Drupal beim Erstellen dieser Hilfeseite jedem Modul die Möglichkeit, seine eigene Dokumentation bereitzustellen. Dies geschieht durch das Scannen aller aktivierten Module nach einer Implementierung von hook_help(). Das heißt, Funktionen mit dem Namen mymodule_help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match), wobei „mymodule“ der Modulname ist. So heißt der Hilfe-Hook des Block-Moduls block_help(), und der Hilfe-Hook des Node-Moduls heißt node_help(). Der Hook kann Parameter annehmen; die Parameter $route_name und $route_match des hook_help erlauben es dem Entwickler, zu definieren, auf welcher Seite oder welchen Seiten die Hilfenachrichten angezeigt werden.

Man kann einen Hook auch als eine Art Event-Listener betrachten, bei dem ein Ereignis eine Aktion auslöst. Ein Ereignis in Drupal, wie das Löschen eines Nodes, ruft den Hook "hook_node_delete" auf. Wenn Ihr Modul hook_node_delete implementiert, wird diese Funktion beim Löschen eines Nodes ausgeführt. Zum Beispiel könnte Ihre Funktion darin bestehen, die Anzahl aller Nodes zu verringern, sodass beim Löschen eines Nodes Ihre Funktion aufgerufen wird und die Zahl um 1 reduziert wird.

Siehe auch den Überblick über Modul-Hooks im Drupal API-Handbuch. Vielleicht möchten Sie auch diesen guten Artikel lesen, der erklärt, wie das Drupal-Modul- und Hook-System mit einfachen PHP-Konstruktionen/-Schnipseln funktioniert.

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.