Как превратить selectbox в checkbox?

Главные вкладки

Аватар пользователя constcost constcost 25 июня 2013 в 17:07

Как превратить selectbox в checkbox`ы в этом гребаном views exposed filters. Без использования better exposed filters (от него я отказался). Уже создал функцию mymodule_form_views_exposed_form_alter, как изменить оформление?

Комментарии

Аватар пользователя Koreychenko Koreychenko 25 июня 2013 в 17:39

Дык Form API в руки.

$form['fieldname']['#type'] = 'checkboxes';
$form['fieldname']['#options'] = array('массив опций пихать сюда');

Фишка в том, чтобы пересобрать массив опций от селекта так,чтобы его понял checkboxes.

А если не секрет, чем вам Better Exposed Filters не угодил?

Аватар пользователя constcost constcost 25 июня 2013 в 22:44

Мда, получается у checkboxes и select есть свойство #options, а у одиночного checkbox`а нету. И создать одиночный чекбокс не получится.

"Koreychenko" wrote:
А если не секрет, чем вам Better Exposed Filters не угодил?

Я уже писал про это http://www.drupal.ru/node/100965

Аватар пользователя Koreychenko Koreychenko 27 июня 2013 в 11:07

"constcost" wrote:
Мда, получается у checkboxes и select есть свойство #options, а у одиночного checkbox`а нету. И создать одиночный чекбокс не получится.

Ну, это, как бы, логично. У одиночного чекбокса может быть только одно значение, а в #options лежит множество значений.

Если вам нужно создать один чекбокс, то делайте что-нить вроде:

$output = '';
foreach ($form['field']['#options'] as $key => $value) {
$output .= '<input type="checkbox" value="'.$key.'"><label>'.$value.'</label>';
}
$form['field']['#suffix'] = $output;

Таким образом создадите кучу чекбоксов после селекта. А значения в селект при выборе чекбокса можно передавать на javascript.