¿Cómo crear un gancho?

18

¿Cómo puedo crear mi propio gancho (similar a los que crea Drupal core) para que lo utilicen otros módulos de Drupal?

Markdorison
fuente

Respuestas:

20

En realidad no creas ganchos. Utiliza funciones auxiliares como module_invoke_all(), module_invoke()o drupal_alter()para invocar todas las funciones que coinciden con el patrón de nombre esperado. Las funciones invocadas generalmente se encuentran con module_implements().

Incluso si no es necesario que los ganchos funcionen, la mejor práctica es documentarlos MODULE.api.phpcreando funciones de apéndices vacíos hook_NAMEcon comentarios de documentación .

Pierre Buyle
fuente
66
+1 sobre la documentación, que es un nuevo estándar de codificación de Drupal 7 y muchos módulos contrib comenzaron a usarlo también para D6. Tenga en cuenta que en lugar de una función vacía, es aún mejor cuando proporciona una implementación de ejemplo para mostrar lo que se puede hacer con ese gancho.
Berdir
1
Por lo general, usted proporciona el código para el enlace que figura en MODULE.api.php si hay una implementación real de ese enlace.
kiamlaluno
0

También puedes crear hook, usando hook_trigger_info puedes crear un nuevo hook, y en tu módulo necesitas implementarlo. Como ejemplo, suponga que desea crear un archivo de nodos y colocar nodos antiguos en él. También desea activar un enlace cuando finalice la operación de archivo. va a ser algo como esto

function hook_trigger_info() {
    return array(
            'node' => array(
                    'archive_nodes' => array(
                        'label' => t('Archive old nodes'),
                    )
            )
    );
} 

Después de definir el enlace, su módulo es responsable de implementar el enlace y las acciones usando module_invoke () o module_invoke_all () .

Puede habilitar el triggermódulo para ver este nuevo enlace en la pestaña del nodo.

M ama D
fuente