Mam problem hook_form_alter()
z używaniem aplikacji Views 3 i Drupal 7.
Nie jestem w stanie dodać instrukcji if, aby jednoznacznie zidentyfikować widok; cokolwiek wprowadzę, stwierdzenie if nigdy nie zostanie uznane za prawdziwe. Jednak mogę łatwo użyć form_id, używając następującego, więc nie jestem pewien, gdzie popełniam błąd!
if ($form_id == 'views_exposed_form') {
}
Jak użyć, hook_form_alter()
aby jednoznacznie zmienić mój widok?
mymodule_form_views_exposed_form_alter()
zamiastmymodule_form_alter
, możesz następnie pominąć zaznaczenie$form_id
.Chciałbym cofnąć się o krok i sprawdzić, czy rejestrujesz ten hak. Często się
$form_id
zmienia.Proces debugowania:
Przykładowy kod (wewnątrz
mymodule.module
lubtemplate.php
plik) z drupal.org :Zobaczysz wydrukowane kilka identyfikatorów formularzy, a następnie wybierz odsłonięte odsłonięcie formularza i rozpocznij pracę.
Ponadto dzięki drupal 7 możesz bezpośrednio kierować określone formularze według ID .
Przykład:
Zauważ, że jeśli używasz wielu odsłoniętych formularzy, możesz sprawdzić konkretny widok, sprawdzając $ form ['# id'] w funkcji zmiany formularza.
Na koniec, jeśli to nie zadziała, polecam przejrzenie tej kolejki problemów: Jak zmienić filtr w odsłoniętych filtrach przez hak form_alter
źródło
ostatnio natknąłem się na ten problem, ale używam modułu funkcji zamiast niestandardowego. Pomogło mi to rozwiązać problem.
A potem możesz użyć swojego hook_form_views_exposed_form_alter ():
źródło