[РЕШЕНО] mFilter2 - для опций не подключаются темплейты в категории где нет товаров с этими опциями.
Привет коллеги!
Что-то я мозг себе уже поломал, нет идей как сделать.
Вызываю фильтр. На странице где есть товары с требуемыми опциями, всё норм. А вот на страницах где нет товаров с опциями, просто выводится массив текстом (словно не указан чанк, хтоя в этом компоненте вроде как должен дефолтный чанк подставляться если чанк явно не указан).
В общем какой-то церебросекс происходит.
А еще прикол, что если зайти в категорию где есть товары с некоторыми опциями, то они выводятся норм, а остальные текстом :)
Вызов
Странный вывод с одной опцией, товар с указанием которой присутствует в категории :)
Что-то я мозг себе уже поломал, нет идей как сделать.
Вызываю фильтр. На странице где есть товары с требуемыми опциями, всё норм. А вот на страницах где нет товаров с опциями, просто выводится массив текстом (словно не указан чанк, хтоя в этом компоненте вроде как должен дефолтный чанк подставляться если чанк явно не указан).
В общем какой-то церебросекс происходит.
А еще прикол, что если зайти в категорию где есть товары с некоторыми опциями, то они выводятся норм, а остальные текстом :)
Вызов
{$_modx->runSnippet('!mFilter2',[
'paginator'=>'pdoPage',
'parents'=>(('target' | placeholder )?:$res.id),
'element'=>'msProducts',
'limit'=>16,
'ajaxMode'=>'button',
'ajaxTplMore'=>'@INLINE <div class=" text-center"><button class="btn btn-default outline btn-ajax-more">Показать еще</button></div>',
'ajaxElemMore'=>'#pdopage .btn-ajax-more',
'filter_delimeter'=>'|',
'showLog'=>1,
'sortby'=>'price',
'sortdir'=>'ASC',
'includeThumbs'=>'350x216',
'filters'=>'
ms|price:number,
msoption|product_label_action:checkbox,
msoption|product_label_hit:checkbox,
msoption|product_label_new:checkbox,
msoption|product_label_recommend:checkbox,
ms|vendor:vendors,
',
'tplFilter.outer.msoption|product_label_action'=>'tpl.mFilter2.checkbox.outer.start',
'tplFilter.row.msoption|product_label_action'=>'tpl.mFilter2.chekbox.row',
'tplFilter.outer.msoption|product_label_hit'=>'tpl.mFilter2.checkbox.outer',
'tplFilter.row.msoption|product_label_hit'=>'tpl.mFilter2.chekbox.row',
'tplFilter.outer.msoption|product_label_new'=>'tpl.mFilter2.checkbox.outer',
'tplFilter.row.msoption|product_label_new'=>'tpl.mFilter2.chekbox.row',
'tplFilter.outer.msoption|product_label_recommend'=>'tpl.mFilter2.checkbox.outer.end',
'tplFilter.row.msoption|product_label_recommend'=>'tpl.mFilter2.chekbox.row',
'tplFilter.outer.ms|price'=>'tpl.mFilter2.filter.slider',
'tplFilter.row.ms|price'=>'tpl.mFilter2.filter.number.slider',
'tplFilter.outer.ms|vendor'=>'tpl.mFilter2.vendors.select',
'tplFilter.row.ms|vendor'=>'tpl.mFilter2.vendors.option',
])}
Норм выводСтранный вывод с одной опцией, товар с указанием которой присутствует в категории :)
Комментарии: 2
Прям ни у кого нет идей? :)
РЕШЕНИЕ
Открыл сниппет mFilter2 и увидел там вот это:
Я создал чанк с неактивным чекбоксом, в итоге для одного чекбокса получился вот такой вызов:
Открыл сниппет mFilter2 и увидел там вот это:
$tplOuter = !empty($scriptProperties['tplFilter.outer.' . $filter_key])
? $scriptProperties['tplFilter.outer.' . $filter_key]
: $scriptProperties['tplFilter.outer.default'];
$tplRow = !empty($scriptProperties['tplFilter.row.' . $filter_key])
? $scriptProperties['tplFilter.row.' . $filter_key]
: $scriptProperties['tplFilter.row.default'];
$tplEmpty = !empty($scriptProperties['tplFilter.empty.' . $filter_key])
? $scriptProperties['tplFilter.empty.' . $filter_key]
: '';
Это значит что для отсутствующих фильтров можно указать чанк, а не просто отключить вывод пустых результатов параметром'showEmptyFilters'=>false
В документации упоминания о «tplFilter.empty.» не нашел.Я создал чанк с неактивным чекбоксом, в итоге для одного чекбокса получился вот такой вызов:
'tplFilter.outer.msoption|product_label_action'=>'tpl.mFilter2.checkbox.outer',
'tplFilter.row.msoption|product_label_action'=>'tpl.mFilter2.checkbox.row',
'tplFilter.empty.msoption|product_label_action'=>'tpl.mFilter2.checkbox.empty',
И в итоге получил вот такой результат:
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.