Eigene Hooks erstellen
Eingetragen von stebeg (463)
am 15.04.2010 - 07:17 Uhr in
am 15.04.2010 - 07:17 Uhr in
Hi,
Ich plane gerade ein Modul, dass einen oder mehrere eigene Hooks zur Verfügung stellen soll. Nun hab ich natürlich schon etwas gegooglet, bin aber leider nicht wirklich fündig geworden. Was ich bis jetzt herausfinden konnte ist, dass ich module_invoke_all() in meinem Modul verwenden muss, aber wie das ganzen dann funktioniert ist mir noch ein Rätsel.
Von daher wollte ich fragen, ob jemand ein ausführliches Tutorial zu diesem Thema kennt oder mal ein paar kleine Code-Beispiele hat, an denen die Funktionsweise deutlich wird.
Danke schonmal im Voraus.
- Anmelden oder Registrieren um Kommentare zu schreiben
module_invoke_all
am 18.04.2010 - 18:12 Uhr
Hallo.
Du kennst ja sicherlich schon [api:module_invoke_all die API-Seite von module_invoke_all].
Wenn Du dort das Fieldset "▸ 46 functions call module_invoke_all()" erweiterst und dann beispielsweise mal auf [api:node_view] klickst, hast Du gleich ein gutes Beispiel für die Verwendung der Funktion.
In der Funktion heisst es unter Anderem
<?php $node->links = module_invoke_all('link', 'node', $node, $teaser); ?>
.Dies bedeutet nun, dass sämtliche Implementierungen von [api:hook_link] aufgerufen werden. [api:hook_link] hat nun wieder 3 Parameter:
$type
,$object
und$teaser
. Diese Parameter werden beim Aufruf von [api:module_invoke_all] mit übergeben.Der erste Parameter ist also der Name des Hooks, dessen Implementierungen aufgerufen werden sollen und danach kommen dann alle vom Hook geforderten Parameter (in diesem speziellen Fall also "node" als Typ des Links, das aktuelle Node-Objekt und ob der Teaser angezeigt werden soll).
Viel mehr Maggi steckt da eigentlich nicht hinter.
hth,
Stefan