Il meccanismo degli hook
Drupal è un framework per cms che mette a disposizione il meccanismo degli hook per interagire con core e con altri eventuali moduli.
Il meccanismo è basato sul nome delle funzioni dichiarate all'interno del codice del modulo e il nome del modulo stesso.
Ad esempio hook_menu permette di registrare un path e associargli un comportamento/contenuto da restituire nel brower. Per definire l'interazione del vostro modulo, chiamiamolo moduloprova, si dovrà definire la funzione moduloprova_menu.
Drupal utilizza la funzione module_invoke per eseguire uno specifico hook per uno specifico modulo, cioè ad esempio module_invoke('moduloprova','menu') invocherà moduloprova_menu(). Drupal fa un ciclo sulla lista dei moduli attivi per eseguirli tutti.
L'interazione avviene o tramite un valore o struttura restituito (solitamente un array associativo), o tramite la modifica di parametri passati per riferimento (o entrambe). Per le modalità di interazione e i parametri di con i quali vengono chiamati i vari hook, vedere http://api.drupal.org/ e in particolare http://api.drupal.org/api/drupal/includes--module.inc/group/hooks/7 per la lista di hook disponibili.
Naturalmente è possibile sviluppare un modulo che mette a disposizione l'interazione con esso usando lo stesso meccanismo (module_invoke), ne è un esempio complesso ubercart