Справочник 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
- #name =
'op'
- #button_type =
'submit'
- #submit =
FALSE
- #name =
- checkbox
- #return_value = 1
- checkboxes
- #tree = 1
- fieldset
- #collapsible =
FALSE
- #collapsed =
FALSE
- #collapsible =
- file
- #size = 60
- form
- #method =
'post'
- #action =
request_uri()
- markup
- item
- password
- #size = 30
- #maxlength = 64
- submit
- #name =
'op'
- #button_type =
'submit'
- #submit =
TRUE
- textarea
- textfield
- #size = 60
- #maxlength = 128
- #autocomplete_path =
FALSE
- weight
- #delta = 10
Элементы
Жирным шрифтом помечены параметры, которые, в большинстве случаев, обязательно стоит заполнить при создании элемента.
button
Описание: Обычная кнопка. При нажатии, форма передается в обработчик Друпала, где она проходит валидацию и перестройку. Submit-обработчик формы не выполняется.
Параметры: #attributes, #button_type, #submit, #name, #prefix, #suffix, #type, #value, #weight
Пример использования (node.module):
checkbox
Описание: Чекбокс («галочка»).
Параметры: #attributes, #default_value, #description, #prefix, #required, #return_value, #suffix, #title, #type, #weight
Пример использования (contact.module):
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 .' <'. $user->mail .'>', );
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):
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
Описание: Значение формы, используемое для внутренних целей. Внешне никак не отображается на форме.
Пример использования (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' => t('Значение 1'), 'return_value2' => 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):
#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):
#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 <top-level> are regarded as independent, top-level books.'), );
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии