Creación de un módulo en Drupal, inicio rápido
Comencemos con api.drupal.org, abre la página del hook hook_node_presave(), que se ejecuta antes de guardar un nodo.
http://api.drupal.org/api/drupal/modules!node!node.api.php/function/hook_node_validate/7
Los hooks nos permiten insertar nuestro código en el flujo habitual de Drupal, agregar validaciones, campos de datos, elementos de formularios, etc.
Agregamos nuestro módulo en la carpeta sites/all/modules:
sites/all/modules/custom/ sites/all/modules/custom/custom.info sites/all/modules/custom/custom.module
En el archivo custom.info escribimos:
name = Custom description = Custom core = 7.x
En el archivo custom.module haremos una validación para asegurar que el campo de contenido no esté vacío. Si el campo está vacío, mostraremos un error (aunque también podríamos haber marcado el campo como obligatorio desde la administración de Drupal, pero...):
custom.module
<?php
function custom_node_validate($node){
if(empty($node->body['und'][0]['value'])){
form_set_error('node-body', 'El cuerpo está vacío'); // Mostramos error y evitamos que se guarde el nodo
}
}
En nuestro caso, cuando el sitio solo tiene un idioma, y este es und (undefined, indefinido), verificamos el primer textarea del campo body (ya que se puede configurar una cantidad ilimitada de campos textarea).
Usa el módulo Devel y su función dsm() para imprimir en pantalla el contenido de un objeto o array:
<?php
function custom_node_view($node){
dsm($node);
}