Динамическое описание полей

Довольна часто мне приходится писать динамическое описание к очередному полю.

Например выбрав пользователя из списка нужно написать о нём в подписи. Одним словом нужная фича.

Сам я перепробовал кучу способов и пришёл к выводу, что удобнее всего использовать widget alter (код выходит короче и проще).

Собственно начнём с поля file которое у нас уже является ajax полем (без ajax динамики не будет).
При загрузки файла в поле меняем описание поля на "#номер имя (размер)".

HOOK, MODULE - название вашего модуля.
FORM_ID - форма где находится widget поле.
FIELD_NAME - имя поля.

Если у нас поле не ajax, но мы хотим что бы описание было динамическое - сделаем его ajax (по другому никак).
Суть такая при вводе новых данных в поле мы заменяем его на обновлённое поле с подписью.

Для замены поля нам необходимо обернуть поле в <div id="wrapper-field-user"></div>, делаем через "#prefix" и "#suffix".

Зарегистрировать ajax callback срабатывающий при изменении содержимого поля.

Осталось написать сам ajax callback.

$form_id - id формы.
$selector_form - css selector формы.
$selector - обёртка нашей формы.

На выходе код будет таким.

Все приготовления сделаны, сбрасываем кэш и готово.

Теги
Drupal 7.x
Form
Widget