Creare un modulo in Drupal: avvio rapido
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); }