Cómo Crear Un Hook En Drupal

Y úsarlo en tu módulo

Sergio Guardiola Herrador
1 min readOct 12, 2023
Photo by Steve Johnson on Unsplash

En Drupal, un “hook” es una función predefinida utilizada por los desarrolladores para personalizar y ampliar el CMS respondiendo a eventos o interacciones específicas, lo que permite el desarrollo de sitios web modulares y flexibles sin modificar el código central.

Crear un hook en tu módulo es muy simple. Todo lo que necesitas hacer es agregar algo como esto y enviar la variable para que otros módulos puedan modificarla:

// Permitir a otros módulos alterar la variable status.
\Drupal::moduleHandler()->invokeAll('content_translation_alter_status', [&$status]);

En este caso, necesitaba poder alterar los valores en la variable $status, por eso he creado un parche en Drupal.org: https://www.drupal.org/project/drupal/issues/3393739

Y así es como lo uso en mi módulo (reemplaza hook con el nombre de tu módulo):

function hook_content_translation_alter_status(&$status) {
$node = \Drupal::routeMatch()->getParameter('node');
if ($node instanceof \Drupal\node\NodeInterface) {
$moderation_state = $node->get('moderation_state')->getString();
$moderation_state = str_replace('_', ' ', $moderation_state);
$status['data']["#template"] = ucfirst($moderation_state);
return $status;
}
}

👉 Encuentra más sobre mí aquí: https://sergioguardiola.net 🔥

--

--

Sergio Guardiola Herrador
Sergio Guardiola Herrador

Written by Sergio Guardiola Herrador

I write articles in English and Spanish, mostly about programming, technology, travel, money, investing. You can find me here: https://sergioguardiola.net

No responses yet