Анонсирован очень интересный модуль, повышающий удобство работы со списками путем расширения Form API.
Модуль Select (or other) позволяет внедрять в формы, создаваемые с помощью Drupal, расширенный элемент управления типа «список», в котором есть обособленный пункт «другое». Пользователь может выбрать значение из предложенных или кликнуть «другое» и задать свое значение путем ввода в обычное текстовое поле.
Вот тут недавно возникал вопрос о том, чтобы не давать пользователям ошибаться при свободном вводе, но оставить возможность добавлять свои значения. Этот модуль как раз решает эту проблему.
Пример использования
<?php
$form['my_field'] = array(
'#type' => 'select_or_other',
'#title' => t('Выберите значение'),
'#default_value' => array('value_1'),
'#multiple' => TRUE,
'#options' => array(
'value_1' => t('Первое'),
'value_2' => t('Второе'),
'value_3' => t('Третье'),
),
'#other' => t('Другое (ввести вручную)'), // Текст для показа в пункте 'другое'
'#required' => TRUE,
'#multiple' => FALSE,
'#other_unknown_defaults' => 'другое',
'#other_delimiter' => ', ',
);
?>
Кроме того, удобно иметь такой список при выборе категорий новостей или других материалов, если перекрыть элемент для выбора терминов таксономии. По сути это некая комбинация выбора терминов из списка и свободного их ввода.
К сожалению, пока модуль еще не имеет релизов, но я скорее всего буду следить за его жизнью.
Комментарии
мегаполезный модуль, сделали бы в вебформе такое
Да, интересная вещица.