views

Аватар пользователя y-vo y-vo 1 июня 2013 в 9:19

Приветствую всех. Ситуация следующая:
с помощью модуля profile 2 создал поля для пользователей
далее с помощью views создал вывод этих полей в таблице на отдельной странице
кроме того мне необходимы были пользовательские фильтры по некоторым полям, которые я добавил с тех же views.
Однако здесь то у меня и возникла не большая проблема- дело в том что в части полей мне необходимо разрешить пользователям выбирать несколько значений в одном и том же фильтре. Это я сделал с помощью опции Allow multiple selections. Но в этом случае поле с одно строчного меняется на раскрытое, содержащее порядка 6 строк.
Так вот вопрос- можно ли как то уменьшить количество этих раскрытых строк? Ну или скрыть их вообще, сделав прежний вид и оставив только одну.

Комментарии

Аватар пользователя y-vo y-vo 1 июня 2013 в 12:34

Под одной строкой я подразумеваю выпадающий из нее список при нажатии. Ну или лучше уменьшить количество этих видимых строк хотя бы до 3х, сейчас их аж 8

Аватар пользователя kv4 kv4 1 июня 2013 в 13:47

Реализуйте hook_form_alter()

В нём для элемента select соответствующего вашему полю укажите параметр #size = 3.

например:

<?php
 $form
['element'] = array(
          
'#type'=> 'select',
          
'#title'=> t('Select'),
          
'#options' => array(=> 'Один'=> 'Два'=> 'Три'),
          
'#size'=> 3,
        );
?>

Подробности смотрите тут.

Аватар пользователя y-vo y-vo 1 июня 2013 в 14:11

Ну я только начал изучать Drupal, думаю мне это не по силам будет, только испорчу все) Про создание модулей и хуки в них читал в принципе, но пока что только общие знания на этот счет. Но все равно большое спасибо за совет, придется наверное пока что ограничиться возможностью выбора только одного значения. Потом, как набью руку вернусь к этому.

Аватар пользователя kv4 kv4 1 июня 2013 в 14:58

"y-vo" wrote:
Ну я только начал изучать Drupal, думаю мне это не по силам будет, только испорчу все)

"А.С. Пушкин" wrote:

О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель.

Что вам стоит попробовать?
Посмотрите, как создан любой модуль. Вам потребуется создать один каталог и два файла. Есть куча материалов с описанием процесса. А если не пробовать - то зачем вообще начинать?:)

Аватар пользователя y-vo y-vo 1 июня 2013 в 15:18

Два файла это info и module? Просто не совсем понимаю как это будет действовать)

Аватар пользователя kv4 kv4 1 июня 2013 в 15:35

"y-vo" wrote:
Два файла это 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(=> 'Один'=> 'Два'=> 'Три'),
          
'#size'=> 3,
  }
}
?>

Ну, там где это требуется напишите ваш код.
Если вы не знакомы с PHP, тогда начните с него например тут http://php.ru

Аватар пользователя y-vo y-vo 1 июня 2013 в 15:42

Спасибо за подробное объяснение, теперь более менее понял) сейчас буду пытаться)