Пытаюсь решить проблему выборки товаров с помощью 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;
}
}?>
Комментарии
с чего бы?
хорошо, не должно, но хотелось бы. как подредактировать так, чтобы получилось "min=400&max=500" ?
$form['min'] = array(...);
$form['max'] = array(...);
В этом случае получится два выпадающих фильтра, которые будут делать "min=400" и "max=500" по одиночке. А хотелось бы один фильтр, который задавал бы сразу два параметра.
Или я неправильно понял, что ты предлагаешь сделать?