Идентификатор формы. Для чего нужен? Как найти? Где использовать?
Как определить id формы в Drupal 7?
Идентификатор формы необходим для изменений значений этой формы (визуальное изменение полей) или добавления новых атрибутов элементам формы, через обращение к форме используя хуки. На сегодняшний день, мне известны 2а способа определения айдишника формы.
1 способ :
Самый элементарный - это глянуть в код страницы, например фаербагом, или же если вы используете хром (как я), то просто кликнув правой кнопкой по элементу исследуемой формы и выбрать из контекстного меню "просмотр кода элемента".
Далее в коде, непосредственно вблизи нужной нам формы, ищем скрытый элемент с именем (атрибутом "name") "form_id".
Например, скрытый элемент стандартной формы поиска выглядит так - <input type="hidden" name="form_id" value="search_block_form">
, где значение value - это идентификатор формы, в данном случае "search_block_form", который сообщает нам, что форма построена модулем "search", и имя ее "block_form".
2 способ:
Для более продвинутых юзеров, в файле template.php вашей темы (если такого нет, то следует его создать), воспользоваться хуком "hook_form_alter":
<?php
function themeName_form_alter($form, &$form_state, $form_id){
debug($form_id); // если используете модуль devel, то dsm($form_id); или dpm($form_id);
}
?>
Где "themeName" - название вашей темы. Далее сбрасываем кэш и наблюдаем результат:
Как можно видеть, id формы лёгок в нахождении, и необходим при работе с формами. Как использовать полученный нами идентификатор, мы рассмотрим чуть ниже.
Пример использования id формы
Выше я описал известные мне способы определения id формы. Далее, я продемонстрирую для чего собственно необходим этот айдишник, на примере добавления атрибута "placeholder" к элементу формы поиска.
<?php
// Добавление полю атрибута placeholder
// Вызываем hook_form_alter
function themeName_form_alter(&$form, &$form_state, $form_id){
// Ищем на странице нужную нам форму, в данном случае мы ищем стандартную форму поиска
if($form_id == "search_block_form"){
// Добавляем атрибут placeholder полю
$form['search_block_form']['#attributes']['placeholder'] = t("Поиск...");
}
}
?>
В итоге, получаем такую картину: