Gli hook di Drupal: cosa sono e quanti sono.
Ieri stavo leggendo un articolo dedicato alla modifica delle classi dei menu nei blocchi attraverso l'uso di un hook specifico che non mi ricordavo o che forse non conoscevo proprio. Ma quanti sono e cosa sono gli hook di Drupal ?
Iniziamo dalla seconda parte della domanda: un hook è quella funzione che permette di eseguire, in certe condizioni, del codice PHP esterno che permette di modificare il core di Drupal così da poterlo manipolare per le nostre esigenze. Un esempio classico è l'hook “menu”: questa hook permette al singolo modulo di definire quali funzione richiamare quando l'utente visita delle pagina ben precise del nostro sito web (identificate attraverso l'url). Così facendo ogni modulo gestisce una situazioni ben precisa all'interno del nostro sito web o della nostra applicazioni web.
Un altro esempio di hook quasi sempre utilizzato all'interno dei moduli è l'hook “nodeapi”: questo hook permette di intervenire e modificare in momenti diversi il nodo su cui si sta lavorando; più precisamente è possibile effettuare delle operazioni sul nodo quando (nominando solamente le 5 situazioni principali su un totale di 15):
-
“delete”: il nodo sta per essere cancellato
-
“insert”: il nodo è stato creato
-
“load”: il nodo sta per essere caricato
-
“prepare”: il nodo sta per essere mostrato sul form di inserimento/modifica
-
“update”: il nodo è stato aggiornato.
[La lista completa dei momenti su cui è possibili agire utilizzando l'hook nodeapi la trovate all'indirizzo http://api.drupal.org/api/function/hook_nodeapi/6]
Prendiamo ad esempio l'ultima situazione, l'update, e pensiamo ad una testata giornalistica dove ogni volta che un articolo (il nostro nodo) viene aggiornato, in automatico il sistema deve spedire una email al direttore della testata. Questa è una situazione particolare che non può essere contemplata all'interno del core di Drupal, però lo stesso core permette di scrivere ed utilizzare un modulo che sfruttando l'hook nodeapi riuscirà a gestire questa situazione.
Veniamo ora alla prima domanda che ci eravamo posti (quanti sono gli hook) e diciamo subito che rispondere a questa domanda è impossibile a meno di non utilizzare la parola “infiniti”; questo perché ai 72 hook definiti all'interno dei moduli core di Drupal (che a loro volta permettono di operare in momenti diversi come abbiamo precedentemente visto), lo stesso core permette a qualsiasi modulo di creare un nuovo hook da far utilizzare ad altri moduli ampliando sempre di più le potenzialità di questo CMS, e rendendo un conteggio degli hook quasi impossibile. Ed è anche per questo motivo che sempre più spesso Drupal non è definito come CMS, ma come CMF (Content Management Framework).
Ah, l'articolo di cui parlava all'inizio è intitolato "How to add unique class to Drupal menu"
Trackback URL for this post:
- Add new comment
- 2496 reads
-





