Jak mogę stworzyć własny hak (podobny do tego, który tworzy rdzeń Drupala) do wykorzystania przez inne moduły Drupala?
Jak mogę stworzyć własny hak (podobny do tego, który tworzy rdzeń Drupala) do wykorzystania przez inne moduły Drupala?
Odpowiedzi:
Nie tworzysz haków. Użyć pomocnika funkcje, takie jak module_invoke_all()
, module_invoke()
lub drupal_alter()
aby wywołać wszystkie funkcje pasujące oczekiwany wzorzec nazwy. Wywoływane funkcje zwykle można znaleźć za pomocą module_implements()
.
Nawet jeśli haki nie działają, najlepszą praktyką jest ich udokumentowanie MODULE.api.php
, tworząc puste kody pośredniczące hook_NAME
z komentarzami do dokumentacji .
Możesz także utworzyć hook, używając hook_trigger_info możesz utworzyć nowy hook, a w module musisz go zaimplementować. Na przykład załóżmy, że chcesz utworzyć archiwum węzłów i umieścić w nim stare węzły. Chcesz również uruchomić hak, gdy operacja archiwizacji zostanie zakończona. będzie coś takiego
function hook_trigger_info() {
return array(
'node' => array(
'archive_nodes' => array(
'label' => t('Archive old nodes'),
)
)
);
}
Po zdefiniowaniu hooka , twój moduł jest odpowiedzialny za implementację hooka i akcji za pomocą module_invoke () lub module_invoke_all () .
Możesz włączyć trigger
moduł, aby zobaczyć ten nowy zaczep pod zakładką węzła.