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 🔥

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

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

Write a response