mFilter2 + toSeparatePlaceholders + fenom
Столкнулся с вот такой вот проблемой: мне нужно вывести фильтры в разных местах, чтобы категории были в сайдбаре, товары в основном блоке, а фильтры в другом. Почитал документацию, нашел toSeparatePlaceholders. Вроде бы все просто и логично, но не получается сделать так, чтобы работало. Подскажите, что я делаю не так?
Вот код вызова сниппета:
{$_modx->runSnippet('!mFilter2',[
'class'=>'msProduct',
'element'=>'msProducts',
'parents'=>$_modx->resource.id,
'toSeparatePlaceholders'=>'my.',
'filters'=>'ms|price:number, parent:categories',
'limit' =>'40',
'depth' => $dep,
'tpl'=>'itemsOuterTpl',
'tplFilter.outer.ms|price'=>'tpl.socvetieFilterSlider',
'tplFilter.row.ms|price'=>'tpl.mFilter2.filter.number',
'tplFilter.outer.default' => 'tpl.catFiltersOuter',
'tplFilter.row.default' => 'tpl.catFiltersItem',
'sort'=>'ms|price:asc,resource|publishedon:asc',
'ajaxMode'=>'button',
'where'=>'{ "Data.image:!=":"" }',
'filterOptions'=>'{
"more_tpl": "<button class=\"btn btn-default btn_more my\">Загрузить еще</button>"
}'
])}
А вот код вызова чанка tpl.mFilter2.outer:<div class="row msearch2" id="mse2_mfilter">
<form action="{$_modx->resource.id | url}" method="post" id="mse2_filters">
<div class="items-header__filters">
{$my.filters}
</div>
</form>
<div class="col-md-9">
<div id="mse2_results" class="items-list">
{$my.results}
</div>
<div class="mse2_pagination">
{'page.nav' | placeholder}
</div>
</div>
</div>
Если убрать toSeparatePlaceholders и префиксы my из чанка, все прекрасно работает. Комментарии: 6
Надо использовать toPlaceholders = my., toSeparatePlaceholders немного для другого.
Потом в коде просто вызывается либо {$my.results} либо {$_modx->getPlaceholder('my.results')}
Потом в коде просто вызывается либо {$my.results} либо {$_modx->getPlaceholder('my.results')}
Спасибо за ответ. Но у меня тут логика следующая: мне нужно выводить все фильтры буквально по кускам. Чтобы не использовать {$filters} и там пошло. А чтобы можно было вывести отдельно {$filters.price} например.
Фильтры нужно выводить таким образом: {$_modx->getPlaceholder('pls.ms|price')}
Пробую именно так, не выводит отдельно
У вас указано
'toSeparatePlaceholders'=>'my.',
'filters'=>'ms|price:number, parent:categories',
Поэтому не pls, а my{$_modx->getPlaceholder('my.ms|price')}
Большое спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.