1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Решение проблем

Фильтр от и до для каталога товаров (или любого другого)

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

Пытаюсь решить проблему выборки товаров с помощью views exposed filters, чтобы можно было выбрать цену из выпадающего списка вида
от 100 до 200
от 200 до 300
от 300 до 400
...

Нашёл решение на d.org, с помощью которого получилось вывести фильтр, но фильтрацию по диапазону всё равно не получается настроить.
При выборе параметра в строке браузера добавляется: "exposed-element=400-500", а должно что-то типа "min=400&max=500". Подскажите, в чём ошибка?
Вот код:

<?php
function exposedviewsformalter_form_views_exposed_form_alter(&$form, $form_state) {
if (
$form['#id'] == 'views-exposed-form-catalog-page-1') {
$form['exposed-element']['#type'] = 'select';
$form['exposed-element']['#options'] = array(
'100-200' => '100ドル-200ドル',
'200-300' => '200ドル-300ドル',
'300-400' => '300ドル-400ドル',
'400-500' => '400ドル-500ドル',
'500-600' => '500ドル-600ドル',
'600-700' => '600ドル-700ドル',
'700-800' => '700ドル-800ドル',
'800-900' => '800ドル-900ドル',
'900-1000' => '900ドル-1000ドル',
);
$form['#submit'][] = 'exposedviewsformalter_form_views_exposed_form_alter_submit';
}
}

function

exposedviewsformalter_form_views_exposed_form_alter_submit(&$form, &$form_state) {
if (
$form_state['values']['exposed-element']) {
list(
$values['min'], $values['max']) = explode("-", $form_state['values']['exposed-element']);
$form_state['view']->exposed_data['exposed-element'] = $values;
}
}
?>

Комментарии

Аватар пользователя shumod@drupal.org shumod@drupal.org 25 июня 2011 в 11:59

В этом случае получится два выпадающих фильтра, которые будут делать "min=400" и "max=500" по одиночке. А хотелось бы один фильтр, который задавал бы сразу два параметра.
Или я неправильно понял, что ты предлагаешь сделать?

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /