Exposed filter темизация. Изменить поля

Аватар пользователя buldozer_kpi buldozer_kpi 22 марта 2011 в 15:23

Делаю вывод товаров с использованием Exposed filter через views. У товара есть цена. В фильтре во views выбираю Товар: Цена продажи с оператором Между. Появляется два поля, куда можно вводить диапазон цен. Помогите решить следующие проблемы.
1. Как изменить лейблы этих полей на Мин. цена, Макс. цена. По умолчанию выводится Цена, И:
2. Изменить размеры этих полей
3. Если не задать максимальное значение цены, то ничего не выводится.
Заранее спасибо!

Комментарии

Аватар пользователя vermix1 vermix1 22 марта 2011 в 15:58

Функция phptemplate_preprocess_views_exposed_form. Вопрос темизации exposed фильтров поднимался неоднократно, пользуйтесь поиском.

При использовании оператора "между" надо вводить оба поля. Если не устраивает просто сделайте два поля - одно на минимум а одно на максимум.

Аватар пользователя buldozer_kpi buldozer_kpi 22 марта 2011 в 16:12
vermix1 wrote:

Функция phptemplate_preprocess_views_exposed_form. Вопрос темизации exposed фильтров поднимался неоднократно, пользуйтесь поиском.

Знаю, но пока не смог разобраться.

vermix1 wrote:

При использовании оператора "между" надо вводить оба поля. Если не устраивает просто сделайте два поля - одно на минимум а одно на максимум.

Не обязательно оба. Если задать макс и не задать мин, то всё работает.

Аватар пользователя vermix1 vermix1 22 марта 2011 в 16:31
"buldozer_kpi" wrote:

Не обязательно оба. Если задать макс и не задать мин, то всё работает.

Странно, мне казалось что надо оба вводить. Я когда-то давно сталкивался с траблами у оператора "между", и решил делать двумя полями. Так и с темизацией меньше проблем.

Аватар пользователя buldozer_kpi buldozer_kpi 22 марта 2011 в 17:06

Нашёл здесь http://druit.ru/blogs/views/45 информацию по phptemplate_preprocess_views_exposed_form. Решил поэкспериментировать с первой функцией - ничего не получилось. Прописывал её и в views-exposed-form.tpl.php и в template.php, обновлял кеш ничего не происходит. Что я не так делаю?

Аватар пользователя buldozer_kpi buldozer_kpi 22 марта 2011 в 17:52

1-й и 3-й вопросы решил, красиво выкрутился. Остался вопрос 2- Изменить размеры этих полей. Как это сделать? По умолчанию там 30
Всё, и этот вопрос тоже решил!!!

Аватар пользователя vermix1 vermix1 22 марта 2011 в 17:53

Покажите код.

Вот кусок кода с рабочего сайта, может натолкнет на мысль.

if($form['#id']=='views-exposed-form-real-estate-object-page-1') {
    unset($vars['form']['squire']['#printed']);
    $form['squire']['min']['#title'] = 'c';
    $form['squire']['max']['#title'] = 'по';
    unset($vars['form']['squire']['#printed']);
    $vars['widgets']['filter-field_squire_value']->widget = drupal_render($vars['form']['squire']);
}
Аватар пользователя buldozer_kpi buldozer_kpi 22 марта 2011 в 23:49

Всё было сделано без вмешательства в код, чисто возможностями Друпал, результат даже лучше чем ожидалось.
В фильтре было выбрано всё тот же Товар: Цена продажи только с оператором Больше, или равно где сразу можно было задать любой лейбл, в моём случае Цена min и другой такой же Товар: Цена продажи только уже с оператором Меньше, либо равно и назначен лейбл Цена max. В результате имеем интересующие нас два поля с нужными лейблами, при чём теперь можно заполнять как два поля сразу так и любое по отдельности. Результат в любом случае выводится корректен. А вопрос с длиной полей решился при помощи ЦСС.
Надеюсь кому-то пригодится!

Аватар пользователя NIKS_ArtReaktor NIKS_ArtReaktor 13 сентября 2011 в 12:35
"valero222" wrote:

подскажите конктретно как изменгить размер поля?

в цсс прописать по ИД или классу input поля - и внести ширину.

думаю примеров изменения Input поля в инете достаточно.