web-dev-qa-db-fra.com

Comment créer un crochet?

Comment puis-je créer mon propre crochet (similaire à ceux Drupal core crée) pour d'autres modules Drupal à utiliser?

17
markdorison

Vous ne créez pas réellement de crochets. Vous utilisez des fonctions d'assistance telles que module_invoke_all() , module_invoke() ou drupal_alter() pour appeler toutes les fonctions correspondant au modèle de nom attendu. Les fonctions appelées se trouvent généralement avec module_implements() .

Même s'il n'est pas nécessaire que les crochets fonctionnent, la meilleure pratique consiste à les documenter dans MODULE.api.php en créant des stubs vides hook_NAME fonctionne avec commentaires de documentation .

20
Pierre Buyle

Vous pouvez également créer un hook, en utilisant hook_trigger_info vous pouvez créer un nouveau hook, et dans votre module, vous devez l'implémenter. Par exemple, supposons que vous souhaitiez créer une archive de nœuds et y placer d'anciens nœuds. Vous souhaitez également déclencher un hook lorsque l'opération d'archivage est terminée. ça va être quelque chose comme ça

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

Après avoir défini le hook, votre module est responsable de l'implémentation du hook et des actions utilisant module_invoke () ou module_invoke_all () .

Vous pouvez activer le module trigger pour voir ce nouveau hook sous l'onglet node.

0
M a m a D