Wie kann ich meinen eigenen Hook erstellen (ähnlich dem, den der Drupal-Kern erstellt), damit andere Drupal-Module ihn verwenden können?
Wie kann ich meinen eigenen Hook erstellen (ähnlich dem, den der Drupal-Kern erstellt), damit andere Drupal-Module ihn verwenden können?
Antworten:
Sie erstellen eigentlich keine Hooks. Sie verwenden Hilfsfunktionen wie module_invoke_all()
, module_invoke()
oder drupal_alter()
alle Funktionen aufrufen , um den erwarteten Namen Pattern - Matching. Die aufgerufenen Funktionen werden normalerweise mit gefunden module_implements()
.
Auch wenn die Hooks nicht funktionieren müssen, empfiehlt es sich, sie zu dokumentieren, MODULE.api.php
indem Sie leere Stub- hook_NAME
Funktionen mit Dokumentationskommentaren erstellen .
Sie können auch einen Hook erstellen. Mit hook_trigger_info können Sie einen neuen Hook erstellen und in Ihrem Modul müssen Sie ihn implementieren. Angenommen, Sie möchten ein Archiv von Knoten erstellen und alte Knoten darin ablegen. Sie möchten auch einen Hook auslösen, wenn der Archivierungsvorgang abgeschlossen ist. es wird so etwas geben
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
Nach der Definition des Hooks ist Ihr Modul für die Implementierung des Hooks und der Aktionen mit module_invoke () oder module_invoke_all () verantwortlich .
Sie können dem trigger
Modul ermöglichen, diesen neuen Hook auf der Registerkarte "Knoten" anzuzeigen.