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

Creare un modulo in Drupal: avvio rapido

14/10/2025, by Ivan

Iniziamo da api.drupal.org: apri la pagina dell’hook hook_node_presave(), che viene eseguito prima dell’aggiunta di un nodo.

http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7

Gli hook ci permettono di inserire il nostro codice nel normale flusso di esecuzione di Drupal, aggiungendo controlli, campi di dati, elementi dei form e così via.

Aggiungiamo il nostro modulo nella cartella sites/all/modules:

sites/all/modules/custom/

sites/all/modules/custom/custom.info

sites/all/modules/custom/custom.module

Nel file custom.info scriviamo:

name = Custom
description = Custom
core = 7.x

Nel file custom.module aggiungiamo un controllo per verificare che il campo del contenuto non sia vuoto; se il campo è vuoto, mostreremo un errore (anche se con la stessa facilità potremmo impostare l’obbligatorietà del campo direttamente nell’amministrazione di Drupal, ma…):

custom.module

<?php

function custom_node_validate($node){
  if (empty($node->body['und'][0]['value'])){
    form_set_error('node-body', 'Body is empty'); // Mostriamo un errore e impediamo il salvataggio del nodo
  }
}

Nel nostro caso, poiché sul sito è impostata una sola lingua — “und” (undefined, non definita) —, verifichiamo il primo campo textarea del campo body (dato che è possibile impostare un numero illimitato di textarea per un campo).

Utilizza il modulo Devel e la sua funzione dsm() per visualizzare a schermo un messaggio con la stampa dell’oggetto o dell’array desiderato:

<?php

function custom_node_view($node){
  dsm($node);
}