logo

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

Módulo de formulario web de Drupal. Creación de un formulario de pedido de productos.

12/05/2025, by Ivan

Volvamos a nuestro catálogo de productos, que creamos en una de las lecciones anteriores. El catálogo se está llenando y mostrando correctamente, pero pedir un producto a través del formulario de contacto es bastante incómodo: hay que copiar el nombre, el código del producto y luego pegarlo en el formulario, además de escribir el mensaje. Vamos a crear un formulario que simplifique el proceso de pedido. Para ello necesitaremos el módulo Webform, que sirve para crear formularios en Drupal. Mediante este formulario enviaremos el nombre del producto y su cantidad; si necesitas también el código del producto, de forma análoga puedes añadir ese campo.

Descarga e instala el módulo Webform.

Tras la instalación debería aparecer un tipo de contenido Webform. Crea un nodo de tipo Webform y llámalo Formulario de pedido de producto (o como prefieras). Después de crearlo, serás redirigido a la página de configuración del formulario web.

Necesitamos crear dos campos: uno para el nombre del producto y otro para la cantidad. Para ello añadiremos dos textfield (campos de texto).

En el campo de nombre escribe %get[product]

Drupal Webform nombre del producto

En el campo de cantidad podemos establecer el valor por defecto en "1".

También añadiremos un textfield para el correo electrónico y un textarea para comentarios o preferencias del cliente.

%get[product] es el equivalente a la variable PHP $_GET['product'], que obtiene el valor de la URL.

El formulario está listo; ahora hay que crear un enlace a este formulario y añadirle el parámetro product en el que se incluirá el nombre del producto. Colocaremos este enlace en un bloque que se mostrará al pie de cada nodo de producto.

Para las siguientes operaciones es necesario habilitar el módulo integrado PHP filter, que permite insertar código PHP directamente en un bloque o en un nodo. Tras activarlo, aparecerá el formato de entrada PHP code.

Crea un bloque nuevo y selecciona el formato PHP code. En el contenido del bloque inserta lo siguiente:

<a href="<?php print base_path(); ?>node/6?product=<?php print drupal_get_title(); ?>">pedir producto</a>

donde node/6 es la ruta al nodo del formulario de pedido de producto.

La función drupal_get_title() devuelve el título del nodo, que en nuestro caso es el nombre del producto; la función base_path() devuelve la ruta base del sitio (por ejemplo, drupalbook.org/). Ahora hay que colocar el bloque en la región Contenido (Content) y configurar su visibilidad con PHP mode:

$types['tovar'] = 1;
$match = false;
if ((arg(0) == 'node') && is_numeric(arg(1))) {
  $node = node_load(arg(1)); 
  $match = isset($types[$node->type]); } 
return $match;

Aquí tovar es el nombre de la máquina (machine name) del tipo de contenido Producto.

Y con esto nuestro formulario de pedido de producto está listo.