У меня возникли проблемы с использованием hook_form_alter()
с Views 3 и Drupal 7.
Я не могу добавить оператор if, чтобы однозначно идентифицировать представление; что бы я ни вставлял, утверждение if никогда не оказывается верным. Тем не менее, я могу легко использовать form_id, используя следующее, поэтому я не уверен, где я иду не так!
if ($form_id == 'views_exposed_form') {
}
Как я могу использовать, hook_form_alter()
чтобы уникально изменить один мой взгляд?
mymodule_form_views_exposed_form_alter()
вместоmymodule_form_alter
, затем вы можете пропустить проверку$form_id
.Я бы сделал шаг назад и посмотрю, регистрируешь ли ты этот хук. Часто
$form_id
меняются.Процесс отладки:
Пример кода (внутри
mymodule.module
или вtemplate.php
файле) с drupal.org :Вы увидите, как распечатывается куча идентификаторов форм, затем выберите вид, открывающий форму, и работаете оттуда.
Кроме того, с Drupal 7 вы можете нацеливаться на конкретные формы по ID напрямую .
Пример:
Обратите внимание, что если вы используете несколько открытых форм, вы можете проверить конкретное представление, изучив $ form ['# id'] в функции изменения формы.
Наконец, если это не сработает, я бы порекомендовал рассмотреть эту проблему: Как изменить фильтр в открытых фильтрах через ловушку form_alter
источник
недавно я тоже столкнулся с этой проблемой, но вместо пользовательского я использую функциональный модуль. Это помогло мне решить проблему.
И тогда вы можете использовать свой hook_form_views_exposed_form_alter ():
источник