Drupal API

hook_form_alter

  • Drupal 5
  • Drupal 6
Хочешь помочь с переводом? Это очень просто и быстро. Лишь зарегистрируйся, и можешь тут же начать переводить.

developer/hooks/core.php, строка 712

Версии
5
hook_form_alter($form_id, &$form)
6
hook_form_alter(&$form, &$form_state, $form_id)

Позволяет вносить изменения в форму перед её показом.

Одно из популярных использований этого хука — это добавление элементов к форме ноды. Если вносятся изменения в форму ноды, то объект ноды получается из $form['#node'].

Заметим, что вместо хука hook_form_alter(), который вызывается для всех форм, можно использовать также hook_form_FORM_ID_alter() для внесения изменений в конкретную форму. Однако, стоит помнить, что hook_form_alter() вызывается последним.

Параметры

&$form Многомерный массив формы и ее элементов.

&$form_state Ассоциативный массив, который содержит текущее состояние формы.

$form_id Строка, представляющая название самой формы. Обычно это название функции, которая генерирует форму (строителя формы).

Связанные темы

Код

<?php
function hook_form_alter(&$form, &$form_state, $form_id) {
  if ('node_type_form' == $form_id) {
    $form['workflow']['upload'] = array(
      '#type' => 'radios',
      '#title' => t('Attachments'),
      '#default_value' => variable_get('upload_'. $form['#node_type']->type, 1),
      '#options' => array(t('Disabled'), t('Enabled')),
    );
  }
}
?>

Пользовательские комментарии

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

Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вход в систему

Что такое OpenID?
  • Регистрация
  • Забыли пароль?

Документация

  • Drupal 6
  • Константы
  • Файлы
  • Функции
  • Глобальные переменные
  • Разделы