Extra Block Types (EBT) - Nueva experiencia con Layout Builder❗

Extra Block Types (EBT): tipos de bloques con estilo y personalizables: Presentaciones de diapositivas, Pestañas, Tarjetas, Acordeones y muchos más. Configuraciones integradas para fondo, DOM Box y plugins de JavaScript. Experimenta hoy el futuro de la construcción de diseños.

Módulos de demostración EBT Descargar módulos EBT

❗Extra Paragraph Types (EPT) - Nueva experiencia con Paragraphs

Extra Paragraph Types (EPT): conjunto de módulos basado en párrafos de forma análoga.

Módulos de demostración EPT Descargar módulos EPT

Scroll

Creación de un módulo en Drupal, inicio rápido

12/05/2025, by Ivan

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