Я бы сделал шаг назад и посмотрю, регистрируешь ли ты этот хук. Часто $form_id
меняются.
Процесс отладки:
- Включите devel
- Вставьте dsm ($ form_id) внутри крючка, как вы привыкли с D6
- Очистить кеш
Пример кода (внутри mymodule.module
или в template.php
файле) с drupal.org :
<?php
/**
* Implements hook_form_alter().
*/
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'form_views_exposed_form') {
drupal_set_message("Form ID is : " . $form_id);
}
}
?>
Вы увидите, как распечатывается куча идентификаторов форм, затем выберите вид, открывающий форму, и работаете оттуда.
Кроме того, с Drupal 7 вы можете нацеливаться на конкретные формы по ID напрямую .
Пример:
<?php
/**
* Implements hook_form_alter().
*/
function mymodule_form_views_exposed_form_alter(&$form, &$form_state, $form_id) {
drupal_set_message("Form ID is : " . $form_id);
}
?>
Обратите внимание, что если вы используете несколько открытых форм, вы можете проверить конкретное представление, изучив $ form ['# id'] в функции изменения формы.
Наконец, если это не сработает, я бы порекомендовал рассмотреть эту проблему:
Как изменить фильтр в открытых фильтрах через ловушку form_alter