Приветствую всех. Ситуация следующая:
с помощью модуля profile 2 создал поля для пользователей
далее с помощью views создал вывод этих полей в таблице на отдельной странице
кроме того мне необходимы были пользовательские фильтры по некоторым полям, которые я добавил с тех же views.
Однако здесь то у меня и возникла не большая проблема- дело в том что в части полей мне необходимо разрешить пользователям выбирать несколько значений в одном и том же фильтре. Это я сделал с помощью опции Allow multiple selections. Но в этом случае поле с одно строчного меняется на раскрытое, содержащее порядка 6 строк.
Так вот вопрос- можно ли как то уменьшить количество этих раскрытых строк? Ну или скрыть их вообще, сделав прежний вид и оставив только одну.
Комментарии
Множественный выбор в одну строку? WUT?
Под одной строкой я подразумеваю выпадающий из нее список при нажатии. Ну или лучше уменьшить количество этих видимых строк хотя бы до 3х, сейчас их аж 8
Реализуйте hook_form_alter()
В нём для элемента select соответствующего вашему полю укажите параметр #size = 3.
например:
<?php
$form['element'] = array(
'#type'=> 'select',
'#title'=> t('Select'),
'#options' => array(1 => 'Один', 2 => 'Два', 3 => 'Три'),
'#size'=> 3,
);?>
Подробности смотрите тут.
Ну я только начал изучать Drupal, думаю мне это не по силам будет, только испорчу все) Про создание модулей и хуки в них читал в принципе, но пока что только общие знания на этот счет. Но все равно большое спасибо за совет, придется наверное пока что ограничиться возможностью выбора только одного значения. Потом, как набью руку вернусь к этому.
Что вам стоит попробовать?
Посмотрите, как создан любой модуль. Вам потребуется создать один каталог и два файла. Есть куча материалов с описанием процесса. А если не пробовать - то зачем вообще начинать?:)
Два файла это info и module? Просто не совсем понимаю как это будет действовать)
Да.
в module_name.info достаточно написать:
name = module_name
description = any_description
core = 7.x
в файле module_name.module
<?php
function module_name_form_alter(&$form, &$form_state, $form_id){
if($form_id == 'any_form_id'){
$form['element'] = array(
'#type'=> 'select',
'#title'=> t('Select'),
'#options' => array(1 => 'Один', 2 => 'Два', 3 => 'Три'),
'#size'=> 3,
}
}
?>
Ну, там где это требуется напишите ваш код.
Если вы не знакомы с PHP, тогда начните с него например тут http://php.ru
Спасибо за подробное объяснение, теперь более менее понял) сейчас буду пытаться)