Jak stworzyć hak?


18

Jak mogę stworzyć własny hak (podobny do tego, który tworzy rdzeń Drupala) do wykorzystania przez inne moduły Drupala?

Odpowiedzi:


20

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 .


6
+1 na temat dokumentacji, czyli nowego standardu kodowania od Drupala 7 i wiele modułów contrib zaczęło go używać również dla D6. Zauważ, że zamiast pustej funkcji, jeszcze lepiej jest podać przykładową implementację pokazującą, co można zrobić z tym hakiem.
Berdir,

1
Zazwyczaj podajesz kod dla haka wymienionego w MODULE.api.php, jeśli istnieje rzeczywista implementacja tego haka.
kiamlaluno

0

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ć triggermoduł, aby zobaczyć ten nowy zaczep pod zakładką węzła.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.