[РЕШЕНО] 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',
])}
Норм вывод


Странный вывод с одной опцией, товар с указанием которой присутствует в категории :)
Boris Akimenko
03 декабря 2018, 01:12
modx.pro
1
1 664
0

Комментарии: 2

Boris Akimenko
04 декабря 2018, 23:52
0
Прям ни у кого нет идей? :)
    Boris Akimenko
    14 декабря 2018, 12:43
    1
    0
    РЕШЕНИЕ
    Открыл сниппет 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',
    И в итоге получил вот такой результат:
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      2