Jak uzyskać identyfikator formularza mojego formularza? Właśnie zacząłem tworzyć moduły i jestem w bezruchu. Mam ten kod od kogoś innego i próbuję go dostosować:
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()
. Biorąc pod uwagę również zgłoszony kod, powiedziałbym, że to pytanie jest inne.Odpowiedzi:
Spróbuj wydrukować zmienne formularza za pomocą funkcji PHP print_r .
Kiedy odwiedzasz stronę, formularz jest włączony, zostaną wyświetlone zmienne (i nazwa).
Łatwiejszym sposobem uzyskania dostępu (lub raczej przeglądania) informacji byłoby użycie funkcji dpm () dostarczonej przez moduł Devel . Możesz używać go w taki sam sposób, jak print_r.
źródło
$form
zmiennej.dpm($form_id);
Znajdowanie ID FORMULARZA bez instalowania modułu
Znalezienie identyfikatora formularza jest bardzo łatwe, bez potrzeby instalowania modułów i wszystkich innych
KROK 1: Otwórz cię od przejścia do strony edycji (LUB sprawdź formularz).
KROK 2: jeśli jest to forma węzła, znajdź „ formę węzła ” w elemencie kontrolnym
sprawdź, czy jesteś w elemencie formularza .
KROK 3: patrz załączony obraz podświetlony zielony tekst jest identyfikatorem formularza
KROK 4: WAŻNE Wreszcie, jeśli chcesz go używać w
hook_form_alter()
wymień hypen z podkreśleniemNa przykład:
yourform_id_with_content_type_name_form
Podobnie jak mądry, możesz znaleźć identyfikator dowolnej formy w Drupal, wszystko co musisz zrobić, to sprawdzić-> znajdź element formularza i wyszukaj atrybut ID i użyj go
Mam nadzieję, że to pomoże :)
źródło
name
atrybut ma wartość „form_id”. 2) Spójrz navalue
atrybut elementu wejściowego - wartością atrybutu jest pożądany identyfikator formularza. Przykład: Formularz komentarza do węzłów wątku ma identyfikator formularza „komentarz_koment_node_story_form”. Jeśli chcesz, możesz dołączyć te nowe informacje do swojej odpowiedzi.Jeśli Twój formularz internetowy znajduje się pod adresem „www.moja_domena.com/node/351”, wówczas identyfikator formularza to „webform_client_form_351”. Tak więc, niezależnie od tego, jaki jest twój identyfikator - to twój identyfikator formularza.
źródło
Jeśli wiesz, gdzie jest kod definiujący formę, którą chcesz zmienić, poszukaj tam. Identyfikator formularza to tylko nazwa funkcji definiującej ten formularz.
Na przykład Widoki definiują funkcję views_ui_edit_view_form w wierszu 875 widoków / obejmuje / admin.inc. Filtr widoków Hierarchical Select szuka tego identyfikatora formularza w wierszu 50 hierarchical_select / modules / hs_taxonomy_views.module w funkcji hood_form_alter.
źródło
Użyj
drupal_set_message()
funkcji, aby wyświetlić identyfikator formularza.źródło
Użyj modułu Get Form ID , aby łatwo znaleźć identyfikator formularza dowolnego formularza w Drupal.
Oto cytat na ten temat ze strony projektu:
Ujawnienie: Jestem opiekunem tych modułów.
źródło
Ponieważ zgłoszony kod szuka identyfikatora formularza formularza węzła, istnieją dwa przypadki.
Drupal 6
Jeśli kod próbuje zmienić formę używaną do ustawienia ustawień dla typu zawartości, powinien użyć następującej instrukcji IF.
Jeśli kod próbuje zmienić formularz edycji węzła, wówczas kod powinien użyć następującej instrukcji IF.
Drupal 7 i wyższy
W pierwszym przypadku instrukcja IF powinna być następująca:
Używając innego podejścia, zakładając, że mymoduł jest krótką nazwą twojego modułu, możesz użyć
mymodule_form_node_type_form_alter(&$form, &$form_state, $form_id)
. Od Drupala 7 wszystkie haki użyte do zmiany formy zaimplementowanej przez inny moduł stają się$form_id
ostatnim parametrem. Zobacz hook_form_alter () , hook_form_FORM_ID_alter () , hook_form_BASE_FORM_ID_alter () .W drugim przypadku instrukcja IF jest taka sama, jak w przypadku Drupala 6.
źródło
Najpierw zainstaluj moduł Devel. Następnie utwórz moduł podobny do poniższego kodu
Następnie możesz wyświetlić WSZYSTKIE szczegóły formularza, takie jak identyfikator formularza, nazwy pól formularza itp.
źródło