Wie erhalte ich die Formular-ID meines Formulars? Ich habe gerade angefangen, meine Module zu machen und bin im Stillstand. Ich habe diesen Code von jemand anderem erhalten und versuche ihn anzupassen:
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()
. Angesichts des angegebenen Codes würde ich sagen, dass diese Frage anders ist.Antworten:
Versuchen Sie, die Formularvariablen mit der PHP-Funktion print_r zu drucken .
Wenn Sie die Seite besuchen, auf der sich das Formular befindet, werden die Variablen (und der Name) angezeigt.
Eine einfachere Möglichkeit, auf die Informationen zuzugreifen (oder sie anzuzeigen), wäre die Verwendung der vom Modul Devel bereitgestellten Funktion dpm () . Sie können es genauso verwenden wie print_r.
quelle
$form
Variablen nicht angezeigt werden.dpm($form_id);
Ermitteln der FORM ID ohne Installation des Moduls
Das Auffinden der Formular-ID ist sehr einfach, ohne dass Module und alles installiert werden müssen
SCHRITT 1: Öffnen Sie die Bearbeitungsseite von (ODER überprüfen Sie Ihr Formular).
SCHRITT 2: Wenn es sich um eine Knotenform handelt, suchen Sie nach " Knotenform " im inspect-Element
Überprüfen Sie, ob Sie sich im Formularelement befinden .
SCHRITT 3: Siehe angefügtes Bild. Der hervorgehobene grüne Text ist die ID des Formulars
SCHRITT 4: WICHTIG Wenn Sie es schließlich verwenden möchten,
hook_form_alter()
ersetzen Sie den Bindestrich durch einen UnterstrichBeispielsweise:
yourform_id_with_content_type_name_form
Ebenso können Sie IDs aller Formulare in Drupal finden. Alles, was Sie tun müssen, ist, das Formularelement zu suchen, nach dem ID-Attribut zu suchen und es zu verwenden
Ich hoffe es hilft :)
quelle
name
Attribut den Wert "form_id" hat. 2) Sehen Sie sich dasvalue
Attribut des Eingabeelements an - der Wert des Attributs ist die gewünschte Formular-ID. Beispiel: Das Kommentarformular auf Story-Knoten hat die Formular-ID "comment_comment_node_story_form". Wenn Sie möchten, können Sie diese neuen Informationen in Ihre Antwort aufnehmen.Wenn sich Ihr Webformular unter "www.mydomain.com/node/351" befindet, lautet Ihre Formular-ID "webform_client_form_351". Also, was auch immer Ihre NID ist - das ist Ihre Formular-ID.
quelle
Wenn Sie wissen, wo sich der Code befindet, der das zu ändernde Formular definiert, suchen Sie dort. Die Formular-ID ist nur der Name der Funktion, die dieses Formular definiert.
Beispielsweise definiert Views die Funktion views_ui_edit_view_form in Zeile 875 von views / includes / admin.inc. Der Filter Hierarchical Select views sucht in Zeile 50 von hierarchical_select / modules / hs_taxonomy_views.module in einer hood_form_alter-Funktion nach dieser Formular-ID.
quelle
Verwenden Sie die
drupal_set_message()
Funktion, um die Formular-ID anzuzeigen.quelle
Verwenden Sie das Modul " Formular-ID abrufen", um auf einfache Weise die Formular-ID eines beliebigen Formulars in Drupal zu ermitteln.
Hier ist ein Zitat darüber von seiner Projektseite:
Offenlegung: Ich betreue diese Module.
quelle
Da der von Ihnen gemeldete Code nach der Formular-ID des Knotenformulars sucht, gibt es zwei Fälle.
Drupal 6
Wenn der Code versucht, das zum Festlegen der Einstellungen für einen Inhaltstyp verwendete Formular zu ändern, sollte die folgende IF-Anweisung verwendet werden.
Wenn der Code versucht, das Knotenbearbeitungsformular zu ändern, sollte der Code die folgende IF-Anweisung verwenden.
Drupal 7 und höher
Im ersten Fall sollte die IF-Anweisung die folgende sein:
Wenn Sie einen anderen Ansatz verwenden und annehmen, dass mymodule der Kurzname Ihres Moduls ist, könnten Sie ihn verwenden
mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
. Seit Drupal 7 werden alle Hooks, die zum Ändern der von einem anderen Modul implementierten Form verwendet wurden,$form_id
als letzter Parameter abgerufen. Siehe hook_form_alter () , hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .Im zweiten Fall ist die IF-Anweisung dieselbe, die für Drupal 6 verwendet wird.
quelle
Installieren Sie zuerst das Devel-Modul . Erstellen Sie dann ein Modul wie den folgenden Code
Dann können Sie ALLE Details eines Formulars sehen, wie Formular-ID, Feldnamen eines Formulars usw.
quelle