Делаю вывод товаров с использованием Exposed filter через views. У товара есть цена. В фильтре во views выбираю Товар: Цена продажи с оператором Между. Появляется два поля, куда можно вводить диапазон цен. Помогите решить следующие проблемы.
1. Как изменить лейблы этих полей на Мин. цена, Макс. цена. По умолчанию выводится Цена, И:
2. Изменить размеры этих полей
3. Если не задать максимальное значение цены, то ничего не выводится.
Заранее спасибо!
Комментарии
Функция phptemplate_preprocess_views_exposed_form. Вопрос темизации exposed фильтров поднимался неоднократно, пользуйтесь поиском.
При использовании оператора "между" надо вводить оба поля. Если не устраивает просто сделайте два поля - одно на минимум а одно на максимум.
Знаю, но пока не смог разобраться.
Не обязательно оба. Если задать макс и не задать мин, то всё работает.
Странно, мне казалось что надо оба вводить. Я когда-то давно сталкивался с траблами у оператора "между", и решил делать двумя полями. Так и с темизацией меньше проблем.
Нашёл здесь http://druit.ru/blogs/views/45 информацию по phptemplate_preprocess_views_exposed_form. Решил поэкспериментировать с первой функцией - ничего не получилось. Прописывал её и в views-exposed-form.tpl.php и в template.php, обновлял кеш ничего не происходит. Что я не так делаю?
1-й и 3-й вопросы решил, красиво выкрутился. Остался вопрос 2- Изменить размеры этих полей. Как это сделать? По умолчанию там 30
Всё, и этот вопрос тоже решил!!!
Покажите код.
Вот кусок кода с рабочего сайта, может натолкнет на мысль.
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']);
}
Всё было сделано без вмешательства в код, чисто возможностями Друпал, результат даже лучше чем ожидалось.
В фильтре было выбрано всё тот же Товар: Цена продажи только с оператором Больше, или равно где сразу можно было задать любой лейбл, в моём случае Цена min и другой такой же Товар: Цена продажи только уже с оператором Меньше, либо равно и назначен лейбл Цена max. В результате имеем интересующие нас два поля с нужными лейблами, при чём теперь можно заполнять как два поля сразу так и любое по отдельности. Результат в любом случае выводится корректен. А вопрос с длиной полей решился при помощи ЦСС.
Надеюсь кому-то пригодится!
подскажите конктретно как изменгить размер поля?
в цсс прописать по ИД или классу input поля - и внести ширину.
думаю примеров изменения Input поля в инете достаточно.