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); }