Get it on Google Play

Creando tus propios hooks en Drupal

06-02-2015
 

Drupal

Drupal


Los hooks son el principal mecanismo de comunicación entre módulos Drupal y entre los módulos y el core. Básicamente si quieres aprender a desarrollar en Drupal tienes que entender y conocer su estructura de módulos.

Si queremos implementar un hook en nuestro módulo simplemente deberemos implementar una función con la siguiente pinta:

function <nombre_mi_modulo>_<hook>() {
	}

Por ejemplo, si hemos creado un módulo llamado ‘reservas’ y queremos implementar el hook ‘hook_menu'(Que nos permite registrar nuevas URLs) lo haremos de la siguiente forma:

function reservas_menu() {
	/* Aquí la implementación del hook */

	$items = array();

	$items['reservas'] = array(
		'page callback' => 'reservas_home',
      		'page arguments' => array('reservas'),
		'access arguments' => array('access content'),
		'type' => MENU_SUGGESTED_ITEM
		);	

	return $items;
	}

Ahora bien, si queremos crear nuestros propios hooks(Para que otros módulos puedan interactuar con nosotros) podemos hacerlos de las siguientes maneras:

Simplemente invocando todos los módulos que hayan implementado el hook:

	module_invoke_all('hook_mi_propio_hook');

Invocando cada implementación por separado(Por ejemplo para tratar la respuesta) :

	foreach (module_implements('hook_mi_propio_hook') as $module) {
		$respuesta = module_invoke($module, 'hook_mi_propio_hook'');

		/* O también */
		 $function = $module . '_mi_propio_hook';
		 $respuesta=$function($arg1, $arg2);
		}

Espero que os resulte de utilidad, si os interesa estamos trabajando en unos cursos de formación orientados a capacitar equipos de desarrolladores Drupal.

Buen fin de semana…

Leave a Reply

© Albert Coronado Calzada