Home → Drupal →

Идентификатор формы. Для чего нужен? Как найти? Где использовать?

Опубликовано в чт, 07/17/2014 - 19:29

Как определить id формы в Drupal 7?

Идентификатор формы необходим для изменений значений этой формы (визуальное изменение полей) или добавления новых атрибутов элементам формы, через обращение к форме используя хуки. На сегодняшний день, мне известны 2а способа определения айдишника формы.

1 способ :

Самый элементарный - это глянуть в код страницы, например фаербагом, или же если вы используете хром (как я), то просто кликнув правой кнопкой по элементу исследуемой формы и выбрать из контекстного меню "просмотр кода элемента".

kontekstnoe_menyu.jpg

Далее в коде, непосредственно вблизи нужной нам формы, ищем скрытый элемент с именем (атрибутом "name") "form_id".

kusok_koda_0.jpg

Например, скрытый элемент стандартной формы поиска выглядит так - <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" - название вашей темы. Далее сбрасываем кэш и наблюдаем результат:

soobshchenie_s_id_formy.jpg

Как можно видеть, 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("Поиск...");
     }
}
?>

В итоге, получаем такую картину:

before-after.jpg

id
форма
hook_form_alter
form
$form_id
Drupal 7
hidden
placeholder

Menu

  • Главная
  • О блоге

Category

Drupal
(15)
Php
(4)
Верстка
(2)
Разное
(2)
lakshtori.ru (Лакштори,luckshtory) - бренд мошенников
© by Conocube / Блогу - 3970 дней