Справочник Forms API

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

Этот документ является полным справочник к Forms API Друпала. Если вас интересует пошаговая интрукция о том, как создавать собственные формы, вам лучше начать с быстрого введения в Forms API.

Перейти к: параметрам | значениям по-умолчанию | элементам

Элементы формы

Легенда:
X = используется с этим элементом
- = не используется с этим элементом

#type checkbox checkboxes date fieldset file password radio radios select textarea textfield weight
#after_build X X X X X X X X X X X X
#attributes X X X X X X X X X X X X
#autocomplete_path - - - - - - - - - - X -
#base                        
#collapsed - - - X - - - - - - - -
#collapsible - - - X - - - - - - - -
#cols - - - - - - - - - X - -
#default_value X X X - X - X X X X X X
#delta - - - - - - - - - - - X
#description X X X X X X X X X X X X
#disabled X X X - X X X X X X X X
#field_prefix - - - - - - - - - - X -
#field_suffix - - - - - - - - - - X -
#maxlength - - - - - - - - - - X -
#multiple - - - - - - - - X - - -
#options - X - - - - - X X - - -
#parents                        
#prefix X X X X X X X X X X X X
#required X X X - - X X X X X X X
#return_value X X - - - - X X - - - -
#rows - - - - - - - - - X - -
#size - - - - - - - - X - X -
#suffix X X X X X X X X X X X X
#theme X X X X X X X X X X X -
#title X X X X X X X X X X X X
#tree X X X X X X X X X X X X
#validate                        
#weight X X X X X X X X X X X X

Особые элементы

#type button form hidden markup item submit value
#after_build X X X X X X -
#action - X - - - - -
#attributes X X - X X X -
#built - X - - - - -
#button_type X - - - - X -
#default_value - - - - - - -
#description - - - - X - -
#method - X - - - - -
#parents - - - - - - -
#prefix X X X X X X -
#redirect - X - - - - -
#ref - - - - - - -
#required - - - - X - -
#return_value - - - - - - -
#submit X - - - - X -
#suffix X X X X X X -
#theme X X X X X X -
#title - - - - X - -
#tree X X X X X X -
#validate              
#value X X X X X X X
#weight X - - X X X -

Значения по-умолчанию

 

Элементы

Жирным шрифтом помечены параметры, которые, в большинстве случаев, обязательно стоит заполнить при создании элемента.

button

Описание: Обычная кнопка. При нажатии, форма передается в обработчик Друпала, где она проходит валидацию и перестройку. Submit-обработчик формы не выполняется.

Параметры: #attributes, #button_type, #submit, #name, #prefix, #suffix, #type, #value, #weight

Пример использования (node.module):

$form['preview'] = array(
  '#type' => 'button', 
  '#value' => t('Preview'), 
  '#weight' => 19,
);

checkbox

Описание: Чекбокс («галочка»).

Параметры: #attributes, #default_value, #description, #prefix, #required, #return_value, #suffix, #title, #type, #weight

Пример использования (contact.module):

$form['copy'] = array(
  '#type' => 'checkbox', 
  '#title' => t('Send me a copy.'),
);

checkboxes

Описание: Группа чекбоксов. Здесь, #options — это ассоциативный массив. При обработке, форма возвратит в параметре #return_value значение, которое находится в ключах массива. На самой форме отображаются значения этого массива. Массив #options не может содержать элементов с ключем равным  .

Параметры: #attributes, #default_value, #description, #options, #prefix, #required, #suffix, #title, #tree, #type, #weight

Пример использования (node.module):

$form['node_options_'. $node->type] = array(
  '#type' => 'checkboxes', 
  '#title' => t('Default options'), 
  '#default_value' => variable_get('node_options_'. $node->type, array('status', 'promote')),
  '#options' => array(
    'status' => t('Published'), 
    'moderate' => t('In moderation queue'), 
    'promote' => t('Promoted to front page'),
    'sticky' => t('Sticky at top of lists'),
    'revision' => t('Create new revision'),
  ),
  '#description' => t('Users with the <em>administer nodes</em> permission will be able to override these options.'),
);

date

Описание: Поле выбора даты. В параметре #default_value будет стоять сегодняшняя дата, если не указать другого. Форматом параметров #default_value и #return_value является массив с ключами 'year', 'month', and 'day': array('year' => 2007, 'month' => 2, 'day' => 15)

Параметры: #attributes, #default_value, #description, #prefix, #required, #suffix, #title, #type, #weight

Пример использования (profile.module):

$fields[$category][$field->name] = array(
  '#type' => 'date', 
  '#title' => check_plain($field->title), 
  '#default_value' => $edit[$field->name], 
  '#description' => _profile_form_explanation($field), 
  '#required' => $field->required
);

fieldset

Описание: Группа элементов. Служит только для группировки нескольких элементов в одну панельку (те, что могут разворачиваться и схлопываться)

Параметры: #attributes, #collapsed, #collapsible, #description, #prefix, #suffix, #title, #type, #weight

Пример использования (contact.module):

$form['contact'] = array(
  '#type' => 'fieldset', 
  '#title' => t('Contact settings'), 
  '#weight' => 5, 
  '#collapsible' => TRUE, 
  '#collapsed' => FALSE,
);

file

Описание: Поле для загрузки файла.

Параметры: #attributes, #description, #prefix, #required, #size, #suffix, #title, #type, #weight

Пример использования (upload.module):

$form['new']['upload'] = array(
  '#type' => 'file', 
  '#title' => t('Attach new file'), 
  '#size' => 40,
);

form

Описание: Форма.

Параметры: #action, #attributes, #method, #prefix, #suffix

Пример использования:

N/A

hidden

Описание: Скрытое поле, которое не отображается пользователю на форме.

Параметры: #prefix, #suffix, #type, #value

Пример использования (block.module):

$form['bid'] = array('#type' => 'hidden', '#value' => $bid);

markup

Описание: Элемент разметки. Служит для разметки внутри форм. При создании этого элемента нет нужды заполнять параметр #type = 'markup', так как это тип — по-умолчанию для всех элементов.

Обратите внимание: этот элемент не обертывается в html-теги вообще, поэтому не удивляйтесь если вдруг внутренние элементы этого поля криво вылезут на форме.

Параметры: #attributes, #prefix, #suffix, #type. #value, #weight

Пример использования (contact.module):

$form['contact_information'] = array(
  '#value' => variable_get('contact_form_information', t('You can leave us a message using the contact form below.')),
);

item

Описание: Поле с неменяющимся значением.

Параметры: #attributes, #description, #prefix, #required, #suffix, #title, #type, #value, #weight

Пример использования (contact.module):

$form['from'] = array(
  '#type' => 'item',
  '#title' => t('From'),
  '#value' => $user->name .' &lt;'. $user->mail .'&gt;',
);

password

Описание: Однострочное текстовое поле, в котором символы отображаются звездочками.

Параметры: #attributes, #description, #maxlength, #prefix, #required, #size, #suffix, #title, #type, #weight

Пример использования (user.module):

$form['pass'] = array(
  '#type' => 'password', 
  '#title' => t('Password'), 
  '#maxlength' => 64, 
  '#size' => 15,
);

radio

Описание: Переключатель («круглая галочка»).

Параметры: #attributes, #default_value, #description, #prefix, #required, #suffix, #title, #type, #weight

Пример использования:

$form['locale']['en'] = array(
  '#type' => 'radio', 
  '#title' => t('English'),
  '#return_value' => 'en',
  '#parents' => array('locale'),
);
$form['locale']['ru'] = array(
  '#type' => 'radio', 
  '#title' => t('Russian'),
  '#return_value' => 'ru',
  '#parents' => array('locale'),
);

radios

Описание: Группа переключателей.

Параметры: #attributes, #default_value, #description, #options, #prefix, #required, #suffix, #title, #type, #weight

Пример использования (comment.module):

$form['posting_settings']['comment_preview'] = array(
  '#type' => 'radios', 
  '#title' => t('Preview comment'), 
  '#default_value' => variable_get('comment_preview', 1), 
  '#options' => array(t('Optional'), t('Required')),
);

select

Описание: Простой или выпадающий список.

Параметры: #attributes, #default_value, #description, #multiple, #options, #prefix, #required, #suffix, #title, #type, #weight

Пример использования (system.module):

$form['feed']['feed_item_length'] = array(
  '#type' => 'select', 
  '#title' => t('Display of XML feed items'), 
  '#default_value' => variable_get('feed_item_length','teaser'),
  '#options' => array(
    'title' => t('Titles only'), 
    'teaser' => t('Titles plus teaser'), 
    'fulltext' => t('Full text'),
  ),
  '#description' => t('Global setting for the length of XML feed items that are output by default.'),
);

submit

Описание: Кнопка отправки формы.

Параметры: #attributes, #button_type, #submit, #name, #prefix, #suffix, #type, #value, #weight

Пример использования (locale.module):

$form['submit'] = array('#type' => 'submit', '#value' => t('Import'));

textarea

Описание: Многострочное текстовое поле.

Параметры: #attributes, #cols, #default_value, #description, #prefix, #required, #suffix, #title, #type, #rows, #weight

Пример использования (forum.module):

$form['body'] = array(
  '#type' => 'textarea', 
  '#title' => t('Body'), 
  '#default_value' => $node->body, 
  '#required' => TRUE
);

textfield

Описание: Однострочное тестовое поле.

Параметры: #attributes, #autocomplete_path, #default_value, #description, #field_prefix, #field_suffix, #maxlength, #prefix, #required, #size, #suffix, #title, #type, #weight

Пример использования (forum.module):<;;/p>

$form['title'] = array(
  '#type' => 'textfield', 
  '#title' => t('Subject'), 
  '#default_value' => $node->title, 
  '#size' => 60, 
  '#maxlength' => 128, 
  '#required' => TRUE,
);

value

Описание: Значение формы, используемое для внутренних целей. Внешне никак не отображается на форме.

Параметры: #type, #value

Пример использования (node.module):

$form['vid'] = array(
  '#type' => 'value',
  '#value' => $node->vid
);

weight

Описание: Поле для выбора веса

Параметры: #attributes, #delta, #default_value, #description, #prefix, #required, #suffix, #title, #type, #weight

Пример использования (menu.module):

$form['weight'] = array(
  '#type' => 'weight', 
  '#title' => t('Weight'), 
  '#default_value' => $edit['weight'], 
  '#delta' => 10, 
  '#description' => t('Optional. In the menu, the heavier items will sink and the lighter items will be positioned nearer the top.'),
);

Параметры

#action

Используется в: form

Описание: Адрес, на который будет отправлена форма (HTML аттрибут action).

Допустимые значения: Внутренний путь

Пример использования (comment.module):

$form['#action'] = url('comment/reply/'. $edit['nid']);

#after_build

Массив названий функций, которые будут вызваны после построения формы (например, для обработки предпросмотра ноды).

Пример использования (system.module):

$form['files']['file_directory_path'] = array(
  '#type' => 'textfield',
  '#title' => t('File system path'),
  '#default_value' => file_directory_path(),
  '#maxlength' => 255,
  '#description' => t('A file system path where the files will be stored. This directory has to exist and be writable by Drupal. If the download method is set to public this directory has to be relative to Drupal installation directory, and be accessible over the web. When download method is set to private this directory should not be accessible over the web. Changing this location after the site has been in use will cause problems so only change this setting on an existing site if you know what you are doing.'),
); 
$form['#after_build'] = array('system_check_directory');
[#eee]<\?php
 
...
 
function system_check_directory($form_element) {
  file_check_directory($form_element['#value'], FILE_CREATE_DIRECTORY, $form_element['#parents'][0]);
  return $form_element;
}

#attributes

Используется в: button, checkbox, checkboxes, date, fieldset, file, form, markup, password, radio, radios, select, submit, textarea, textfield, weight

Описание: Используется для установки дополнительных HTML-атрибутов, таких как "class".

Допустимые значения: Любые HTML атрибуты, которые не затрагиваются остальными параметрами.

Пример использования (search.module):

$form['#attributes'] = array('class' => 'search-form');

#autocomplete_path

Используется в: textfield

Описание: Путь к AJAX обработчику, выводящему варианты автозаполнения.

Пример использования (node.module):

$form['author']['name'] = array(
  '#type' => 'textfield', 
  '#title' => t('Authored by'), 
  '#maxlength' => 60, 
  '#autocomplete_path' => 'user/autocomplete', 
  '#default_value' => $node->name, 
  '#weight' => -1,
);

#built

Используется в: form

Описание: Используется для определения, построена форма или нет.

Допустимые значения: TRUE или FALSE

Пример использования: ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. См. функцию _form_builder в form.inc.

#base

Указывает альтернативное базовое имя для функций валидации и обработки формы. Будет использовано, если нет функций соответствующих id формы.

Пример использования (system.module):

  $form['#base'] = 'system_settings_form';

#button_type

Используется в: button, submit

Описание: Устанавливает CSS класс кнопки (form-button_type)

Допустимые значения: submit, ???

Пример использования: (system.module):

$type['submit'] = array(
  '#input' => TRUE, 
  '#name' => 'op', 
  '#button_type' => 'submit', 
  '#submit' => TRUE,
);

#collapsed

Используется в: fieldset

Описание: Указывает будет ли развернута группа элементов по-умолчанию. Смотрите также параметр #collapsible.

Допустимые значения: TRUE или FALSE

Пример использования (block.module) :

$form['block'] = array(
  '#type' => 'fieldset', 
  '#title' => t('Block configuration'), 
  '#weight' => 3, 
  '#collapsible' => TRUE, 
  '#collapsed' => FALSE, 
  '#tree' => TRUE,
);

#collapsible

Используется в: fieldset

Описание: Задает возможность группе сворачиваться при помощи JavaScript. Смотрите также параметр #collapsed.

Допустимые значения: TRUE или FALSE

Пример использования (block.module):

$form['block'] = array(
  '#type' => 'fieldset', 
  '#title' => t('Block configuration'), 
  '#weight' => 3, 
  '#collapsible' => TRUE, 
  '#collapsed' => FALSE, 
  '#tree' => TRUE,
);

#cols

Используется в: textarea

Описание: Определяет количество колонок в текстовом поле (смотрите также параметр #rows)

Допустимое значение: Положительное число

Пример использования (aggregator.module):

$form['description'] = array(
  '#type' => 'textarea', 
  '#title' => t('Description'), 
  '#default_value' => $edit['description'], 
  '#cols' => 60, 
  '#rows' => 5,
);

#default_value

Используется в: button, checkbox, checkboxes, date, file, markup, password, radio, radios, select, submit, textarea, textfield, weight

Описание: Значение поля по-умолчанию. Не путать с #value!

.

Допустимые значения: Разные

Пример использования (forum.module):

$form['body'] = array(
  '#type' => 'textarea', 
  '#title' => t('Body'), 
  '#default_value' => $node->body, 
  '#required' => TRUE,
);

#delta

Используется в: weight

Описание: Число весов, из которых можно выбирать в поле выбора весов. К примеру, если $delta => 10, в поле выбора весов будут значения от -10 до 10.

Допустимое значение: Положительное число

Пример использования (menu.module):

$form['weight'] = array(
  '#type' => 'weight', 
  '#title' => t('Weight'), 
  '#default_value' => $edit['weight'], 
  '#delta' => 10, 
  '#description' => t('Optional. In the menu, the heavier items will sink and the lighter items will be positioned nearer the top.'),
);

#description

Используется в: checkbox, checkboxes, date, fieldset, file, markup, password, radio, radios, select, textarea, textfield, weight

Описание: Текстовое описание или подсказка к элементу формы. Настоятельно рекомендуется сперва помещать эти значения в функцию t() для того, чтобы не терять возможности локализации формы.

Допустимые значения: Разные

Пример использования (menu.module):

$form['weight'] = array(
  '#type' => 'weight', 
  '#title' => t('Weight'), 
  '#default_value' => $edit['weight'], 
  '#delta' => 10, 
  '#description' => t('Optional. In the menu, the heavier items will sink and the lighter items will be positioned nearer the top.'),
);

#disabled

Используется в: checkbox, checkboxes, date, file, password, radio, radios, select, textarea, textfield, weight

Описание: Выключает (дизактивирует) элемент формы.

Допустимые значения: TRUE или FALSE

Пример использования (system.module):

  if (isset($disabled[$name])) {
    $form['theme_settings'][$name]['#disabled'] = TRUE;
  }

#field_prefix

Используется в: textfield

Описание: Текст или код, который помещается прямо перед текстовым полем.

Допустимые значения: Разные

Пример использования (system.module):

$form['site_403'] = array(
  '#type' => 'textfield',
  '#title' => t('Default 403 (access denied) page'),
  '#default_value' => variable_get('site_403', ''),
  '#size' => 40,
  '#description' => t('This page is displayed when the requested document is denied to the current user. If unsure, specify nothing.'),
  '#field_prefix' => url(NULL, NULL, NULL, TRUE) . (variable_get('clean_url', 0) ? '' : '?q=')
);

#field_suffix

Используется в: textfield

Описание: Текст или код, который помещается сразу за текстовым полем.

Допустимые значения: Разные

Пример использования (system.module):

$form['settings_general']['upload_usersize_default'] = array(
  '#type' => 'textfield',
  '#title' => t('Default total file size per user'),
  '#default_value' => $upload_usersize_default,
  '#size' => 5,
  '#maxlength' => 5,
  '#description' => t('The default maximum size of all files a user can have on the site.'),
  '#field_suffix' => t('MB')
);

#maxlength

Используется в: textfield

Описание: Максимальное количество символов, которые сможет принять текстовое поле.

Допустимое значение: Положительное число

Пример использования (forum.module):

$form['title'] = array(
  '#type' => 'textfield', 
  '#title' => t('Subject'), 
  '#default_value' => $node->title, 
  '#size' => 60, 
  '#maxlength' => 128, 
  '#required' => TRUE,
);

#method

Используется в: form

Описание: Метод отправки формы (HTML аттрибут формы method).

Допустимые значения: GET или POST. По-умолчанию — POST.

Пример использования (node.module):

$form['#method'] = 'post';

#multiple

Используется в: select

Описание: Определяет возможность выбора более одого значения в элементе.

Допустимые значения: TRUE или FALSE

Пример использования (taxonomy.module):

return array(
  '#type' => 'select', 
  '#title' => $title, 
  '#default_value' => $value, 
  '#options' => $options, 
  '#description' => $description, 
  '#multiple' => $multiple, 
  '#size' => $multiple ? min(12, count($options)) : 0,
  '#weight' => -15,
);

#name

ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. Устаналивает HTML аттрибут name элемента.

#options

Используется в: checkboxes, radios, select

Описание: Варианты выбора в списках (выпадающих, обычных, а также списках чекбоксов и переключателей).

Допустимые значения: Массив вида array(t('Значение 1'), t('Значение 2')) или array('return_value1' =&gt; t('Значение 1'), 'return_value2' =&gt; t('Значение 2')) если элемент должен возвращать определенные значения.

Пример использования (comment.module):

$form['posting_settings']['comment_preview'] = array(
  '#type' => 'radios', 
  '#title' => t('Preview comment'), 
  '#default_value' => variable_get('comment_preview', 1), 
  '#options' => array(t('Optional'), t('Required')),
);

#parents

Используется в: All

Описание: Определяет «родителя» элемента. Смотрите статью#tree and #parents для получения деталей.

Допустимые значения: Массив имен элементов.

Пример использования (comment.module):

$form['admin']['status'] = array(
  '#type' => 'radios', 
  '#parents' => array('status'), 
  '#title' => t('Status'), 
  '#default_value' => $status, 
  '#options' => array(t('Published'), t('Not published')), 
  '#weight' => -1,
);

#prefix

Используется в: button, checkbox, checkboxes, date, fieldset, file, form, hidden, markup, password, radio, radios, select, submit, textarea, textfield, weight

Описание: Текст или код, который отобразится перед элементом. Смотрите также #suffix.

Допустимые значения: Разные

Пример использования (poll.module):

$form['choice'] = array(
  '#type' => 'fieldset', 
  '#title' => t('Choices'), 
  '#prefix' => '<div class="poll-form">', 
  '#suffix' => '</div>', 
  '#tree' => TRUE,
);

#printed

ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. Определяет, отрисован ли элемент уже.

#process

ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. Используется для модификации элемента.

#processed

ДЛЯ ВНУТРЕННЕГО ИСПОЛЬЗОВАНИЯ. Определяет, обработана ли форма или элемент.

#redirect

Используется в: form

Описание: Адрес, на который попадает пользователь после обработки формы. Это значение по-умолчанию возвращается обработчиком формы, но вы можете задавать произвольное значение используя параметр#redirect в hook_form_alter(). Смотрите также #action.

p>Допустимые значения: Внутренний путь или массив аргументов для функции url(). параметр также может быть установлен в FALSE, что приведет к отмене редиректа после обработки формы.

Пример использования (locale.inc):

$form['#redirect'] = 'node';
\?>
 
<\?php
$form['#redirect'] = array('user/login', 'destination=node');
\?>
 
<?php
<code lang="drupal6">$form['#redirect']
= FALSE; [#bbb]

#ref

Используется в: checkbox, checkboxes, date, file, password, radio, radios, select, textarea, textfield, weight

Описание: Создает ссылку на значения формы, которая будет доступна на всех шагах обработки формы. Это полезно, когда вам нужно поменять значения во время валидации (_validate) и увидеть эти значения на submit-обработчике ( _submit).

См. также статью о #ref

#required

Используется в: checkbox, checkboxes, date, file, password, radio, radios, select, textarea, textfield, weight

Описание: Определяет обязательность элемента. Если параметр выставлен, то при валидации формы, элемент автоматически проверяется на пустое значение. Поля загрузки файлов не могут быть обязательными.

Допустимые значения: TRUE или FALSE

Пример использования (forum.module):

$form['title'] = array(
  '#type' => 'textfield', 
  '#title' => t('Subject'), 
  '#default_value' => $node->title, 
  '#size' => 60, 
  '#maxlength' => 128, 
  '#required' => TRUE,
);

#return_value

Используется в: checkbox, checkboxes, radio, radios

Описание: Значение, которое должен возвращать элемент, когда выбран.

Допустимые значения: Разные

Пример использования (poll.module):

$form['morechoices'] = array(
  '#type' => 'checkbox', 
  '#title' => t('Need more choices'), 
  '#return_value' => 1, 
  '#default_value' => 0, 
  '#description' => t("If the amount of boxes above isn't enough, check this box and click the Preview button below to add some more."),
);

#rows

Используется в: textarea

Описание: Определяет количество колонок в текстовом поле (смотрите также параметр #cols)

Допустимое значение: Положительное число

Пример использования (aggregator.module):

$form['description'] = array(
  '#type' => 'textarea', 
  '#title' => t('Description'), 
  '#default_value' => $edit['description'], 
  '#cols' => 60, 
  '#rows' => 5,
);

#submit

При использовании в: button, submit, form

Описание: Определяет, может ли кнопка отправить форму, а также задает массив названий функций, которые выполняются при обработке формы.

Допустимые значения: Массив вида array('function_name'=>array('param1','param2'))

Пример использования (system.module):

  $form['#submit']['system_admin_theme_submit'] = array();
  $form['#submit']['system_settings_form_submit'] = array();

#size

Используется в: select, textfield

Описание: Ширина текстового поля (в символах) или высота списка (в строках).

Допустимое значение: Положительное число

Пример использования (comment.module):

  $form['admin']['homepage'] = array(
    '#type' => 'textfield',
    '#title' => t('Homepage'),
    '#maxlength' => 255,
    '#size' => 30,
    '#default_value' => $edit['homepage'],
  );

#suffix

Используется в: button, checkbox, checkboxes, date, fieldset, file, form, hidden, markup, password, radio, radios, select, submit, textarea, textfield, weight

Описание: Текст или код, который отобразится после элемента. Смотрите также #prefix.

Допустимые значения: Разные

Пример использования (poll.module):

$form['choice'] = array(
  '#type' => 'fieldset', 
  '#title' => t('Choices'), 
  '#prefix' => '<div class="poll-form">', 
  '#suffix' => '</div>', 
  '#tree' => TRUE,
);

#theme

Используется в: button, checkbox, checkboxes, date, fieldset, file, form, hidden, markup, password, radio, radios, select, submit, textarea, textfield

Описание: Функция темизации элемента.

Допустимые значения: Имя функции темизации элемента без theme_.

Пример использования (upload.module):

$form['#theme'] = 'upload_form_new';

#title

Используется в: checkbox, checkboxes, fieldset, date, file, password, radio, radios, select, textarea, textfield, weight

Описание: Заголовок элемента. Крайне рекомендуется сперва помещать эти значения в функцию t() для того, чтобы не терять возможности локализации формы.

Допустимые значения: Разные

Пример использования (aggregator.module):

$form['description'] = array(
  '#type' => 'textarea', 
  '#title' => t('Description'), 
  '#default_value' => $edit['description'], 
  '#cols' => 60, 
  '#rows' => 5,
);

#tree

Используется в: button, checkbox, checkboxes, date, fieldset, file, form, hidden, markup, password, radio, radios, select, submit, textarea, textfield, weight

Описание: Обеспечивает создание коллекций элементов. Чаще всего используется к «родительскому элементу» (у которгого выставлен параметр #parent). Смотрите статью #tree and #parents для подробного разбора работы этого параметра.

Допустимые значения: TRUE или FALSE

Пример использования (system.module):

  $form['status'] = array(
    '#type' => 'checkboxes', 
    '#default_value' => $status, 
    '#options' => $options, 
    '#tree' => TRUE,
  );
  $required = array('block', 'filter', 'system', 'user', 'watchdog');
  foreach ($required as $require) {
    $form['status'][$require] = array(
      '#type' => 'hidden', 
      '#value' => 1, 
      '#suffix' => t('required'),
    );
  }

#type

Используется в: All

Описание: Определяет тип элемента формы.

Допустимые значения: button, checkbox, checkboxes, date, fieldset, file, form, hidden, markup, password, radio, radios, select, submit, textarea, textfield, value, weight

Пример использования (locale.module):

$form['submit'] = array('#type' => 'submit', '#value' => t('Import'));

#validate

Используется в: любом элементе

Описание: Список функций валидации, которые должна пройти форма перед обработкой.

Допустимые значения: Массив вида array('function_name'=>array('param1','param2'))

Пример использования (filter.module):

$form['format'][$format->format] = array(
  '#type' => 'filter_format', 
  '#title' => $format->name, 
  '#default_value' => $value, 
  '#return_value' => $format->format, 
  '#parents' => array('format'), 
  '#description' => theme('filter_tips', _filter_tips($format->format, false)), 
  '#validate' => array('filter_form_validate' => array()),
);

#value

Используется в: button, hidden, markup, submit

Описание: Используется для установки значений, которые не могут быть изменены пользователем. Не путать с #default_value, которое всего лишь устанавливает значение по-умолчанию.

Допустимые значения: Разные

Пример использования (locale.module):

$form['submit'] = array('#type' => 'submit', '#value' => t('Import'));

#weight

Используется в: button, checkbox, checkboxes, date, fieldset, file, markup, password, radio, radios, select, submit, textarea, textfield, weight

Описание: Используется для сортировки списка элементов. Элементы с меньшим весом появляются на форме выше.

Допустимые значения: Положительные или отрицательные числа (целые или дробные)

Пример использования (book.module):

$form['parent'] = array(
  '#type' => 'select', 
  '#title' => t('Parent'), 
  '#default_value' => ($node->parent ? $node->parent : arg(4)), 
  '#options' => book_toc($node->nid), 
  '#weight' => -15,
  '#description' => t('The parent that this page belongs in. Note that pages whose parent is &lt;top-level&gt; are regarded as independent, top-level books.'),
);

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