Вед-дев, Сео, Манимейкинг

hook_form_alter() примеры и описание

hook_form_alter() примеры и описание

hook_form_alter(&$form, &$form_state, $form_id) - используется, как правило, в случаях когда необходимо добавить элементы в определенную форму. hook_form_alter() вызывается для всех форм, также имеются два специфических хука для форм.

  • hook_form_BASE_FORM_ID_alter() - позволяет изменять базовую форму, например все формы комментариев hook_form_COMMENT_FORM_alter()
  • hook_form_FORM_ID_alter() - позволяет изменять форму по конкретному значению ID формы.

Порядок вызова хука следующий: все существующие alter хуки вызываются для модуля А, затем для модуля Б и т.д. Затем следуют хуки для базовой темы, а после неё для темы которая включена у нас на данный момент. Порядок модулей определяется при помощи веса (weight) в таблице {system}, а затем по названию.

Внутри каждого модуля, alter хуки вызываются в следующем порядке:

  1. hook_form_alter()
  2. hook_form_BASE_FORM_ID_alter()
  3. hook_form_FORM_ID_alter()

Параметры

$form - вложенный массив элементов формы, который составляет форму

$form_state - массив с ключами, который содержит текущее состояние формы.

$form_id - строкове значение, которое представляет название формы.

Примеры

Изменяем все формы hook_form_alter().

function modulename_form_alter(&$form, &$form_state, $form_id) {
  dpm($form_id); // показывает ID формы
  dpm($form); // показывает все элементы массива формы. Нужен devel.module
}

Изменяем форму всех комментариев на сайте (hook_form_BASE_FORM_ID_alter()).

function modulename_form_comment_form_alter(&$form, &$form_state, $form_id) {
  dpm($form_id); // показывает ID формы
  dpm($form); // показывает все элементы массива формы. Нужен devel.module
}

Изменяем форму комментариев только для типа материалов blog (hook_form_FORM_ID_alter())

function modulename_form_comment_node_blog_form_alter(&$form, &$form_state, $form_id) {
  dpm($form_id); // показывает ID формы
  dpm($form); // показывает все элементы массива формы. Нужен devel.module
}

Также в Drupal 7 данный хук можно использовать в файле template.php вашей темы.



Комментарии (0)

Разделы

Подписаться

Подписка на RSS-лента последние записи из Блога

Комменты

  • Olzhas 6 месяцев 3 недели назад
    Спасибо. С Новым Годом! 
  • Den 7 месяцев 2 недели назад
    В первой функции, при создании переменной $li_previous нужно поменять '←' с NULL, в $li_next сделать тоже самое. 
  • Гость 7 месяцев 2 недели назад
    Если все ровно так как было описано, то нет никаких сомнений что домен увел сам регистратор. Потому что вероятность того 
  • Валерий 8 месяцев 2 недели назад
    да можно делать импорт-экспорт только лишь в оболочке на входя на mysql сервер 
  • admin 8 месяцев 2 недели назад
    Валерий, а зачем вам именно так делать экспорт? Если я не ошибаюсь, то там нет какой-либо команды чтобы сделать экспорт 
  • Валерий 8 месяцев 2 недели назад
    захожу на mysql через ssh по команде  
  • admin 8 месяцев 2 недели назад
    Добрый вечер, какой у вас клиент? 
  • Валерий 8 месяцев 2 недели назад
    Здравстуйте, есть команда чтобы сделать экспорт базы внутри mysql клиента? 
  • Eduard 9 месяцев 2 дня назад
    Видать, домен хороший был. Заявление пробывали писать на мошенника? 
  • Stas 10 месяцев 2 недели назад
    Ошибка в ключе квантификатора - replace(/будешь|пить/ig, "хлеб"); Указать -g для прохода по всем совпадениям!