2017-08-03 3 views
0

drupal Je suis très nouveau à 8 drupal, je suis en train de modifier une forme sous le type de contenu personnalisé « Question ». Le formulaire a un identifiant "node-question-form".Comment ajouter forme alter crochet dans 8

J'ai installé un module et d'essayer d'ajouter hook_FORM_ID_alter() mais son jamais s'appeler. Même le crochet le plus simple ne fonctionne pas. par exemple:

function constellator_form_alter(&$form, &$form_state, $form_id){ 
    echo "alter the form"; exit; 
} 

où 'constellator' est le nom du module.

Je suis coincé avec depuis le matin et rien ne fonctionne pour moi, toute aide sera grandement appriciated.

Vive

+0

Ce module est-il activé? –

Répondre

1

hook_form_alter() et hook_FORM_ID_alter() sont appelés alors qu'un formulaire est créé et avant de l'afficher sur l'écran.
Ces fonctions sont écrites dans le fichier .module.
Toujours effacer le cache après avoir écrit toute fonction de crochet. Cela fait comprendre à Drupal qu'une telle fonction a été déclarée.
Utilisez drush cr si vous utilisez la version 8 de drush sinon cliquez sur Manage-> Drupal 8 logo-> Purgez toutes les caches pour effacer les caches. Vous pouvez maintenant vérifier si la fonction est appelée ou non. La meilleure façon de vérifier cela est d'installer le module Devel, activez-le. Avec Devel, Kint est installé. Activer Kint aussi à partir de l'interface utilisateur d'administration. Après avoir fait cela, vous pouvez vérifier si le crochet est appelé ou non de la manière suivante:

function constellator_form_alter(&$form, &$form_state, $form_id){ 
    kint($form); 
} 

Ce imprimera toutes les variables de formulaire pour toutes les formes de la page. Si vous souhaitez cibler un formulaire particulier dans la page, par exemple. vous formez, noeud question forme, tapez:

function node_question_form_form_alter(&$form, &$form_state, $form_id){ 
    kint($form); 
} 

En utilisant l'écho, la façon dont vous avez fait, vous pouvez vérifier si la fonction est appelée ou non, sans aucun tracas, en consultant le code source de la page puis en cherchant le texte que vous avez répercuté, en utilisant une option de recherche du navigateur, comme, Ctrl + f dans le cas de Google Chrome.

+0

Awesome viviv, c'était vraiment utile. –