hook_elements
developer/hooks/core.php, строка 450
- Версии
- 5 – 6
hook_elements()
Позволяет модулям определять свои собственные типы элементов Forms API и определять их значения по умолчанию.
Описания элементов, возвращенные этим хуком, будут добавлены к данным из хука hook_form()
, и станут значениями по умолчанию для новых элементов. Поэтому в эти описания, кроме ключей, явно описанных ниже, могут содержать любые другие ключи Forms API.
С каждым новым элементом неявно связывается функция темирования с таким же именем, ответственная за преобразование этого элемента в HTML. Для определенного в модуле элемента с именем 'elementtype'
, стандартная функция темирования должна реализовываться в том же модуле функцией theme_elementtype()
. Эту функция темирования, как и любую другую, следует зарегистрировать с помощью хука hook_theme()
.
Подробнее о создании пользовательских типов элементов можно прочесть на странице http://drupal.org/node/169815.
Возвращаемое значение
Ассоциативный массив, описывающий все определяемые типы элементов. Ключами массива являются названия новых типов элементов, соответствующие им значения (описания каждого нового элемента) в свою очередь являются ассоциативными массивами с такими ключами:
'#input'
: содержит ли элемент значение, или нет (не зависимо от того, отображается ли элемент на форме или скрыт).'#value_callback'
: имя коллбека, который вызывается для изменения значения поля. Если это поле не указано, то по умолчанию именем этого коллбека считаетсяform_type_имяэлемента_value()
. Коллбек получает параметры$element
и$edit
, и должен вернуть новое значение'#value'
для элемента. Если коллбек не определен, в качестве'#value'
берется исходное значение, введенное пользователем.'#process'
: массив коллбеков с параметрами$element
,$edit
,&$form_state
,$complete_form
.'#after_build'
: массив коллбеков с параметрами$element
и&$form_state
.'#validate'
: массив коллбеков с параметрами$form
и&$form_state
.'#element_validate'
: массив коллбеков с параметрами$element
и&$form_state
.'#pre_render'
: массив коллбеков с параметром$element
.'#post_render'
: массив коллбеков с параметрами$content
и$element
.'#submit'
: массив коллбеков с параметрами$form
и&$form_state
.
Связанные темы
Код
<?php
function hook_elements() {
$type['filter_format'] = array('#input' => TRUE);
return $type;
}
?>
Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии