@vikin_glory

Как вывести список подкатегорий в боковое меню при помощи mFilter2?

Здравствуйте!
Нашёл у себя досадную ошибку.
На странице посредством mFilter2 выводится каталог продукции c фильтрацией по цвету, размеру и цене. А в столбце слева необходимо вывести кликабельный список с названиями подкатегорий каталога. В паре с pdoMenu не работает, выводятся сразу все товары для всех категорий. Предполагаю, что лечится это выводом параметра mFilter2 parent:categories вместо pdoMenu. Но как это реализовать технически, ума не приложу. То есть разделить фильтры между собой для вывода на странице по отдельности: в боковом меню - фильтр подкатегорий (да ещё в виде обычных ссылок, а не чекбоксов), а в основном столбце оставить фильтрацию по цвету, размеру, цене.
Помогите, пожалуйста, решить проблему, неделю топчусь на одном месте.
60a02501eb320639012236.png
  • Вопрос задан
  • 579 просмотров
Пригласить эксперта
Ответы на вопрос 1
an-tar
@an-tar Куратор тега MODX
Full stack web developer
Примерно так, подправьте под себя рабочий пример - в чанках ниже будут категории:
[[!mFilter2?
                        	&parents=`0`
                        	&limit=`24`
                        	&element=`msProducts`
                        	&sort=`favorite:desc`
                        	&aliases=`
                                ms|price==price,
                                ms|vendor==vendor`
                        	&filters=`
                        		ms|price:number
                        		,parent:categories
                        		,msoption|tags
                        		,ms|vendor:vendors
                        		,ms|old_price:boolean
                        		,ms|made_in
                        	`
                        	&showLog=`0`
                        	&tpls=`productSectionItemTplNew`
                        	&class=`msProduct`
                        	&where= `{ "class_key":"msProduct", "Data.popular:!=":"1"}`
                        	&tplOuter=`searchResutlsFilterTpl`
                        	&tplFilter.outer.price=`filterPriceOuterTpl`
                        	&tplFilter.row.price=`filterPriceInnerTpl`
                        	&tplFilter.outer.ms|made_in=`filterMadeInOuterTpl`
                        	&tplFilter.row.ms|made_in=`filterMadeInInnerTpl`
                        	&tplFilter.outer.ms|old_price=`filterOldPriceOuterTpl`
                        	&tplFilter.row.ms|old_price=`filterOldPriceInnerTpl` 
                        	&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
		                    &tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
                        	&tplFilter.outer.resource|parent=`filterCategoriesOuterTpl`
                        	&tplFilter.row.resource|parent=`filterCategoriesInnerTpl`
                        	&tplFilter.outer.ms|vendor=`filterVendorsOuterTpl`
                        	&tplFilter.row.ms|vendor=`filterVendorsInnerTpl`
                        	
                        ]]


а в filterCategoriesOuterTpl:

<div class="filter-options-item filter-options-categori">
    <div class="filter-options-title filter_title">[[%mse2_filter_[[+table]]_[[+filter]]]]</div>
    <div class="filter-options-content">
        <ol class="items mse2_number_inputs" id="mse2_[[+table]][[+delimeter]][[+filter]]">
            [[+rows]]
        </ol>
    </div>
</div>


а в filterCategoriesInnerTpl:
<li class="item [[+disabled]]" >
    <label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]">
        <input type="checkbox"name="[[+filter_key]]" id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]" value="[[+value]]" [[+checked]] [[+disabled]]><span>[[+title]] <span class="count">([[+num]])</span></span>
    </label>
</li>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы