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;
}
?>Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии 