Per utilizzare Drupal, è fondamentale capire i concetti di event , hook, action e operazione
Drupal è un sistema software che lavora essenzialmente su tre fasi:
Se non ci fosse un modo per interaggire dall'esterno, Drupal sarebbe un sistema completo, non espandibile.
Potremmo pensarlo come un frigorifero:
Sicuramente a un frigorifero non si potrà mai chiedere di fare il caffè!
Fortunatamente , come per la maggior parte dei sistemi software, non è così.
Eventi
Drupal interagisce con il mondo esterno tramite eventi.
Gli eventi (in inglese events) indicano al mondo esterno cosa sta succedendo all'interno della macchina Drupal.
Eventi possibili sono ad esempio :
Ma l'evento è un concetto astratto. Ad esso deve corrispondere qualcosa di concreto che consenta di agganciarsi al flusso di elaborazione di Drupal per modificarlo.
In pratica ad ogni elaborazione Drupal dice:
Hook
A questo punto è chiaro che un Hook o Gancio è qualcosa che ci permette di dare un nome predefinito ad una funzione in modo tale che possa essere riconosciuta ed eseguita da Drupal quando si verifica l'evento,
Facciamo l'esempio in cui un utente esegue il login al sistema.
Vogliamo creare un' azione che su questo evento visualizzi il messaggio "Benvenuto nel sito"
Il modulo che contiene le funzioni supponiamo si chiami miomodulo.
La funzione che sarà necessario scrivere è la seguente:
<?php
function miomodulo_user($op,&$edit,&$account,$category=NULL) {
if($op== 'login') return "Benvenuto nel sito";
}
?>Infatti:
Dove Operazione =' login' è l'operazione particolare della coppia Evento/Hook
Ad esempio lo stesso evento e lo stesso hook sono utilizzabili anche per una operazione di cancellazione (delete) di un utente. In tal caso la funzione sarebbe stata scritta nel seguente modo:
<?php
function miomodulo_user($op,&$edit,&$account,$category=NULL) {
if($op== 'login') return "Benvenuto nel sito";
if($op== 'delete') return "Grazie di essere stato con noi!";
}
?>Quindi per eseguire un'azione sul verificarsi di un evento , basta generare la funzione:
nomemodulo_hook($op);
Verificando all'interno il tipo di operazione avviata su quell'evento.