Comment obtenir l'identifiant de formulaire de mon formulaire? Je viens de commencer à fabriquer mes modules et je suis au point mort. J'ai obtenu ce code de quelqu'un d'autre et j'essaie de le personnaliser:
function hook_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'the form id for the node form') {
$form['#submit'][] = 'my_custom_submit_handler';
}
}
hook_form_alter()
. Étant donné également le code signalé, je dirais que cette question est différente.Réponses:
Essayez d'imprimer les variables du formulaire avec la fonction PHP print_r .
Lorsque vous visitez la page où se trouve le formulaire, les variables (et le nom) s'affichent.
Un moyen plus facile d'accéder (ou plutôt de visualiser) les informations serait d'utiliser la fonction dpm () fournie par le module Devel . Vous pouvez l'utiliser de la même manière que vous utiliseriez print_r.
la source
$form
variable.dpm($form_id);
Recherche de FORM ID sans installer de module
Trouver l'ID de formulaire est très facile, pas besoin d'installer des modules et tout
ÉTAPE 1: Ouvrez-vous pour accéder à sa page d'édition (OU inspectez votre formulaire).
ÉTAPE 2: si c'est une forme de noeud trouver " node-form " dans l'élément inspect
vérifiez que vous êtes dans l' élément de formulaire .
ÉTAPE 3: voir l'image ci-jointe le texte vert en surbrillance est l'ID du formulaire
ÉTAPE 4: IMPORTANT Enfin si vous souhaitez l'utiliser pour
hook_form_alter()
remplacer l' hypen par un trait de soulignementPar exemple:
yourform_id_with_content_type_name_form
Comme sage, vous pouvez trouver l'id de n'importe quel formulaire dans drupal tout ce que vous avez à faire est d'inspecter-> trouver l'élément de formulaire et rechercher l'attribut ID et l'utiliser
J'espère que ça aide :)
la source
name
attribut a la valeur "form_id". 2) Regardez l'value
attribut de l'élément d'entrée - la valeur de l'attribut est l'ID de formulaire souhaité. Exemple: le formulaire de commentaire sur les nœuds d'histoire a l'ID de formulaire "comment_comment_node_story_form". Si vous le souhaitez, vous pouvez intégrer ces nouvelles informations dans votre réponse.Si votre formulaire Web se trouve sur "www.mydomain.com/node/351", votre ID de formulaire sera "webform_client_form_351". Donc, quel que soit votre nid - c'est votre ID de formulaire.
la source
Si vous savez où se trouve le code qui définit le formulaire que vous souhaitez modifier, regardez-le. L'identifiant de formulaire n'est que le nom de la fonction définissant ce formulaire.
Par exemple, Views définit la fonction views_ui_edit_view_form à la ligne 875 de views / includes / admin.inc. Le filtre des vues de sélection hiérarchique recherche cet identifiant de formulaire sur la ligne 50 de hierarchical_select / modules / hs_taxonomy_views.module dans une fonction hood_form_alter.
la source
Utilisez la
drupal_set_message()
fonction pour afficher l'ID du formulaire.la source
Utilisez le module Get Form ID pour trouver facilement l'ID de formulaire de n'importe quel formulaire dans Drupal.
Voici une citation à ce sujet à partir de sa page de projet:
Divulgation: Je suis responsable de ces modules.
la source
Comme le code que vous avez signalé recherche l'ID de formulaire du formulaire de nœud, il y a deux cas.
Drupal 6
Si le code essaie de modifier le formulaire utilisé pour définir les paramètres d'un type de contenu, il doit utiliser l'instruction IF suivante.
Si le code essaie de modifier le formulaire de modification du nœud, le code doit utiliser l'instruction IF suivante.
Drupal 7 et supérieur
Dans le premier cas, l'instruction IF doit être la suivante:
En utilisant une approche différente, en supposant que mymodule est le nom court de votre module, vous pouvez utiliser
mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
. Depuis Drupal 7, tous les hooks utilisés pour modifier la forme implémentée par un autre module sont$form_id
comme dernier paramètre. Voir hook_form_alter () , hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .Dans le second cas, l'instruction IF est la même que celle utilisée pour Drupal 6.
la source
Installez d'abord le module Devel, puis créez un module comme le code ci-dessous
Ensuite, vous pouvez voir TOUS les détails d'un formulaire, comme l'ID du formulaire, les noms de champs d'un formulaire, etc.
la source