Тема: Вывод выбранных значений фильтров

Добрый день!

Подскажите пожалуйста, как отдельно вывести выбранные пользователем значения фильтров?

В системе выбранные значения выводятся под названием фильтра. А хотелось бы, чтобы все выбранные значения выводились под названием категории.

Повысить оценку Понизить оценку

2

Re: Вывод выбранных значений фильтров

Добрый день!

У нас в front контроллере Catalog\Controller\Front\ListProducts уже есть подготовленная переменная ($all_filters_data), которая содержит необходимые данные для построения плашек  с выбранными фильтрами, но она не проброшена в шаблон.  (в ближайшем обновлении пробросим)

Нужно пробросить переменную в шаблон, добавьте в ListProducts:

$this->view->assign(array(
       .....
       'all_filters_data' => $all_filters_data
));

Далее используйте данные из $all_filters_data в шаблоне. Там будет массив:

[
    [ 'title' => '', //Текст для плашки
      'type' => '', //Объект фильтрации: ID хар-ки или имя поля товара
      'filter' => '' //property или base
    ],
    ......
]

Повысить оценку Понизить оценку

3

Re: Вывод выбранных значений фильтров

Добавить нужно в list_products.tpl и как получить нужные значения параметров фильтров?
И второй момент, будет ли возможность удалить выведенный параметр фильтра, так как это реализовано сейчас в списке ul class="propsContentSelected"?

Повысить оценку Понизить оценку

4

Re: Вывод выбранных значений фильтров

Подскажите, как корректно указать расположение вывода выбранных значений фильтров, чтобы ul class="propsContentSelected" находился в блоке section class="filterSection", а не в div class="filter typeMultiselect"?

var changeMultiSelectCheckedRowsPosition = function (){
               // Если блоки есть
               $(data.options.multiSelectBlock, $this).each(function(){
                   var have_checked = false;
                   var block        = $(this);
                   $('input', $(this)).each(function(){
                        var wrapperLi = $(this).closest(data.options.multiSelectRow); //Обёртка
                        if ($(this).prop('checked')){ //Если установлена галочка
                           have_checked = true;
                           wrapperLi.appendTo($(data.options.multiSelectInsertBlock, block));
                        }else{ //Если характеристика не выбрана, то проверим где-то она находится и поместим обратно в нужный блок, если нужно
                           if ($(this).closest(data.options.multiSelectInsertBlock).length){
                               wrapperLi.prependTo($(data.options.multiSelectRowsBlock, block));
                           }
                        }
                   });
                   //Переключим элементы для отображения
                   toggleMultiSelectHideElements(block, have_checked);
               });
            };

Повысить оценку Понизить оценку