mFilter2

Добрый вечер. Помогите решить проблему.
В чанке каталога идет вызов такого рода:
[[$product]]
					<aside id="sidebar" class="col-lg-3 col-md-3 col-sm-12 col-sx-12">
						<div class="row">
							<!-- widget selection-->
							[[!mFilter2?
                            &element=`msProducts`
                            &tplOuter=`filter`
					        &showHidden=`1`
                            &limit=`6`
                            &parents=`[[*id]]`
					        ]]
$product — выводит каталог товара в каталоге и вопрос следующий. Как можно связать фильтр и каталог товара, так чтобы в вывод mFilter2 не попадали товары. Если просто то мне нужен вывод только блока со списком, и чекбоксами. Если указать &element=`msProducts` то весь дизайн сайта рушиться. Если в чанке [[$product]] также рушиться. Не могу понять каким образом правильно сформировать вывод.
Александр
15 марта 2016, 15:17
modx.pro
1 789
+1

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

Максим Кузнецов
16 марта 2016, 06:11
+1
Т.е. вам нужна возможность фильтрации только для категорий товаров?

В таком случае попробуйте использовать параметр &where:
&where=`{"class_key":"msCategory"}`
    Александр
    16 марта 2016, 10:07
    0
    Нет, и видимо не до конца правильно объяснил суть вопроса.
    Дело в том что каталог товаров вызывается в одном месте а сам фильтр в другом. Могу ли как то вызвать блок каталога в одном а фильтр в другом через плейсхолдеры или как то иначе?
    Если делать классический вызов используя mfilter то он стили и функционал располагает слева… мне как то нужно стилизовать все это и вызвать чекблксы вверху
      Максим Кузнецов
      16 марта 2016, 14:18
      +1
      Если я вас правильно понял, вам подойдет параметр &toPlaceholders (в запущенных случаях &toSeparatePlaceholders) и дальше раскидать требуемые детали mFilter2 в нужные места верстки.
      Александр
      16 марта 2016, 12:27
      0

      Как можно блок фильтра переместить в левый блок в самый верх?
        Максим Кузнецов
        16 марта 2016, 14:17
        +1
        Прописать там плейсхолдер для него — [[+filters]].
          Александр
          16 марта 2016, 14:33
          0
          если правильно понял то в конструкции:
          [[!mFilter2?
                      &element=`msProducts`
                      &showHidden=`1`
                      &tpl=`product_tpl`
                      &limit=`6`
                      &includeTVs=`price`
                      &tvPrefix=`tv.`
                      &parents=`0`
                      &sortdir=`DESC`
                      &tplPageActive=`@INLINE <li class="active"><a href="[[+href]]">[[+pageNo]]</a></li>`
                      &tplPagePrev=`@INLINE <li class="btn-prev"><a href="[[+href]]" aria-label="Previous"><i class="fa fa-angle-left"></i><em>Назад</em></a></li>`
                      &tplPagePrevEmpty=`@INLINE`
                      &tplPageNext=`@INLINE <li class="btn-next"><a href="[[+href]]" aria-label="Next"><em>Вперед</em><i class="fa fa-angle-right"></i></a></li>`
                      &tplPageNextEmpty=`@INLINE`
                      &tplPageWrapper=`@INLINE <nav class="them-pagination haslayout"><ul class="pagination">[[+prev]][[+pages]][[+next]]</ul></nav>`
                      
                      &filters=`parent:categories`
                      &tplOuter=`mfilter`
                      &toPlaceholders=`[[+filters]]`
                      ]]
              [[!+page.nav]]
              </div>
          </div>
          а дальше [[+filters]] кидай в любое место верстки и блок выводиться там?
          Так как написал сделал и товар вообще не выводиться
            Максим Кузнецов
            16 марта 2016, 14:40
            +1
            Посмотрите все-таки документацию, что я скинул.

            В сниппете дописать параметр («my.» взят для примера, можно прописать любой):
            &toPlaceholders=`my.`

            В html прописать:
            <div class="это просто любой ваш контейнер, куда нужно запихнуть фильтры">
            	[[+my.filters]]
            </div>
              Александр
              16 марта 2016, 14:45
              0
              Спасибо. Сделал так и читал официальную документацию. Но проблема встала следующая. Блок стал там где и нужно и стили прописал для него. Но товара в каталоге нет… он просто не вывелся.
              Где мог допустить ошибку?
                Максим Кузнецов
                16 марта 2016, 14:47
                +1
                Для всех остальных плейсхолдеров ([[+results]], [[+total]], ...), относящихся к mFilter2, нужно тоже прописать новый префикс «my.».
                  Александр
                  16 марта 2016, 16:47
                  0
                  заменить нужно только в своих чанках оформления или во всех, включая стандартные?
                  и по какой то причине не работает внутри чанка вызов [[+ms.results]]
                  вне чанка работает…
      Александр
      16 марта 2016, 17:59
      0
      Спасибо. Разобрался что к чему:)
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        11