logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri
03/10/2025, by Ivan

Menu

Gli hook sono uno dei modi in cui i moduli interagiscono con i moduli aggiuntivi o con i sottosistemi del core di Drupal. Gli hook vengono utilizzati per vari compiti, tra cui variabili di preprocessamento per i file di template (hook_preprocess()), modifica di elenchi di informazioni (hook_tokens_alter(), hook_views_data_alter()) e manipolazione dei form (hook_form_alter()), tra le altre cose. In questa pagina sono elencati tutti gli hook forniti dal core.

I moduli possono definire i propri hook aggiuntivi. Ad esempio, il modulo Flag definisce hook_flag_options_alter(), che può essere usato da moduli che vogliono modificare le opzioni di un flag esistente predefinito. La maggior parte dei moduli che definiscono hook forniscono anche documentazione a riguardo. Questa documentazione si trova nel file *.api.php.

Gli hook vengono eseguiti in diversi punti del flusso di esecuzione, dove Drupal cerca contributi da tutti i moduli abilitati. Ad esempio, quando un utente visita la pagina di aiuto su un sito Drupal, mentre Drupal genera la pagina di aiuto, offre a ciascun modulo la possibilità di fornire documentazione su sé stesso. Questo avviene scansionando tutti i moduli abilitati alla ricerca di implementazioni di hook_help(). Vale a dire funzioni con il nome mymodule_help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match), dove “mymodule” è il nome del modulo. Ad esempio, l’hook di aiuto del modulo block si chiama block_help(), mentre quello del modulo node si chiama node_help(). Un hook può fornire parametri; i parametri di hook_help $route_name e $route_match permettono allo sviluppatore di determinare in quale pagina o pagine verranno visualizzati i messaggi di aiuto.

Un hook può essere visto come un listener di eventi, nel senso che un evento innesca un’azione. Un evento in Drupal, come l’eliminazione di un nodo, attiverà l’hook hook_node_delete. Se nel tuo modulo è implementato hook_node_delete, questa funzione verrà eseguita alla cancellazione di un nodo. Ad esempio, la tua funzione potrebbe consistere nel decrementare il conteggio totale dei nodi, quindi quando un nodo viene eliminato la tua funzione viene richiamata e il conteggio diminuisce di 1.

Vedi anche la panoramica degli hook dei moduli nella Guida all’API di Drupal. Potresti anche voler consultare questo ottimo articolo che spiega come funziona il sistema di moduli/hook di Drupal, utilizzando semplici costrutti/fragmenti PHP.