Вызов mFilter2 с параметром &toSeparatePlaceh

Добрый вечер!
Столкнулся со странной работой компонента mSearch2. В частности mFilter2.

Попробовал смоделировать ситуацию на тестовом сайте s6088.test.modx.pro/
Суть такова: При использовании параметра &toSeparatePlaceholders в вызове mFilter2 пропадает выдача результатов.на примере категория 3

Код вызова mFilter2 с параметром &toSeparatePlaceholders
[[!mFilter2?
        	&paginator=`pdoPage`
        	&parents=`4`
        	&hideContainers=`1`
        	&element=`msProducts`
        	&toSeparatePlaceholders =`sep.`
        	&filters=`
                 ms|weight
            	,ms|price:number
        	    ,ms|made_in
        	`
        	&showLog=`1`
        	&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
        	&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
        ]]
        [[$tpl.mFilter2.outer.sep]]
Фильтры выводятся так
[[+sep.ms|price:number]]
			<p>Фильтр веса</p>
			[[+sep.ms|weight]]
            <p>Фильтр страны</p>
			[[+sep.ms|made_in]]
Результат так
[[+sep.results]]
Для наглядности стандартный вывод mFilter2: на примере категория 2
Код вызова mFilter2 в стандартном варианте:
[[!mFilter2?
        	&paginator=`pdoPage`
        	&parents=`4`
        	&hideContainers=`1`
        	&element=`msProducts`
        	&filters=`
                 ms|weight
            	,ms|price:number
        	    ,ms|made_in
        	`
        	&showLog=`1`
        	&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
        	&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
        ]]
И вывод mFilter2 c параметром &toPlaceholders: на примере категория 4

Код вызова mFilter2 с параметром &toPlaceholders
[[!mFilter2?
        	&paginator=`pdoPage`
        	&parents=`4`
        	&hideContainers=`1`
        	&element=`msProducts`
        	&toPlaceholders =`my.`
        	&filters=`
                 ms|weight
            	,ms|price:number
        	    ,ms|made_in
        	`
        	&showLog=`1`
        	&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
        	&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
        ]]
        [[$tpl.mFilter2.outer.my]]
Фильтры выводятся так
[[+my.filters]]
Результат так
[[+my.results]]
Ни кто не сталкивался с похожей ситуацией?
Купчинский Михаил
06 июля 2014, 17:25
modx.pro
2 739
0

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

Василий Наумкин
07 июля 2014, 08:28
0
Параметр toSeparatePlaceholders принимает и сниппет, который выводит результаты. Так что, нужно и выдачу также расфасовать по странице:
[[+sep.0]] [[+sep.1]]

Исходник pdoResources, для примера.
    Купчинский Михаил
    07 июля 2014, 09:01
    0
    да, подставив в выдачу [[+sep.0]] получилось вывести 1 товар. А как тогда вывести список товаров?
    Судя по всему своим самописным снипетом?
      Василий Наумкин
      07 июля 2014, 10:15
      0
      Просто закомментируй в используемом сниппете обработку этого параметра — где искать я уже показал.

      В будущих версиях постараюсь учесть.
        Купчинский Михаил
        07 июля 2014, 11:02
        0
        С закомментированием данного куска кода не получается (может не совсем то комментирую).

        А нельзя как-то вывести [[+sep.0]] [[+sep.1]] в цикле? Общее количество [[+sep.total]] известно
Купчинский Михаил
07 июля 2014, 09:08
0
Василий, и еще не совсем понимаю, почему перестают выводится правильные подписи на странице с включенными параметрами &toPlasholders и &toSeparatePlasholders?
Вот например выводится «mse2_filter_total» вместо «Всего результатов».
s6088.test.modx.pro/index.php?id=11
Вроде в лексиконах эти слова прописаны
    Василий Наумкин
    07 июля 2014, 10:12
    0
    Наверное потому, что плейсхолдеры с лексиконами кэшированные и обрабатываются раньше некэшированного mFilter2. То есть, MODX их обрабатывает до того, как загружен словарь.

    А вот когда mFilter2 сам рендерит чанк — лексикон уже в наличии и все выводится правильно. Или вызывай лексиконовые плейсхолдеры некэшированными, или вообще их не используй, просто пропиши готовые слова в шаблоне.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
8