Выборка элементов через ТВ параметр.

Всем привет!
Постараюсь быть краток и изложить верно суть проблемы.
Структура сайта, приблизительно, выглядит так:
Портфолио(23)
  • Товар№1(24)
  • Товар№2(25)
  • Товар№3(26)
  • Товар№4(27)
  • ...
Категория№2(28)
  • Товар№1(29)
  • Товар№2(30)
  • Товар№3(31)
  • ...
О нас(32)
Услуги(33)
Работа(34)
Города(35)
  • Москва(36)
  • Киев(37)
  • Санкт-Петербург(38)
  • ...
Товары должны быть взаимосвязаны с городом, что бы можно было отсеивать. Решение: я создал тв-поле с типом select, в возможных параметрах я указал:
@EVAL return $modx->runSnippet('pdoResources',array('parents'=>35,'limit'=>10,'tpl'=>'@INLINE [[+pagetitle]]==#[[+id]]#','outputSeparator'=>'||'));
Благодаря этой, нехитрой манипуляции, в товарах появилась возможность выбрать город.
Нужно что бы происходила фильтрация по тв полю, допустим: я нажимаю на ссылку Киев(36) и мне выводит 10 первых товаров, а мне нужно, что бы товар выводился только тот у которого в параметрах указан «Киев». Вызов шаблона и поля:
[[!pdoResources:default=`К сожалению, ничего не найдено`?
&parents=`24,25,26,27,251`
&showUnpublished = `0`
&includeContent = `1`
&includeTVs=`image,url,ChooseCity`
&tvFilters=`ChooseCity==[[*id]]`
&tpl =`CityTemplate`
]]

Шаблон CityTemplate:
<div class="title_holder">
            <div class="container1">
                <div class="container_inner clearfix">
                    <div class="title_on_bottom_wrap">
                        <div class="title_on_bottom_holder">
                            <div class="title_on_bottom_holder_inner" >
                                <h1 style="color:#ffffff" ><span>[[+tv.ChooseCity]]</span></h1>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
<div class="wpb_row vc_row-fluid" style="text-align:left;">
    <section class="section  grid_section" style=" padding-top:50px; padding-bottom:60px;">
        <div class="section_inner clearfix">
            <div class="vc_span12 wpb_column column_container">
                <div class="wpb_wrapper">
                    <div class="wpb_row vc_row-fluid" style="text-align:left;">
<h2 style="color: #0570f9;">[[pdoField?id=`[[+id]]`&field=`pagetitle`]]</h2>
<p><a class="lightbox" href="[[+tv.image]]"><img style="width: 30%; float: right; margin: 0 0 0 100px;" src="[[+tv.image]]"  width="245" height="245"></a>[[pdoField?id=`[[+id]]`&field=`content`]]</p>
<h3> </h3>
<p><a class="qbutton tiny checkout_form fastorder" style="margin-right: 25px;" href="[[+tv.url]]">Посмотреть в портфолио </a><a class="qbutton tiny checkout_form fastorder" href="zakaz.html?data-name='Вы заказываете сайт'" data-fancybox-type="iframe"> Заказать такой сайт</a></p>
                    </div>
                </div> 
            </div> 
        </div>
    </section>
</div>
Надеюсь на вашу помощь. Если будут вопросы задавайте.
Yaroslav
15 октября 2017, 13:06
modx.pro
1 355
0

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

Илья Уткин
15 октября 2017, 19:09
+1
Попробуйте
&tvFilters=`ChooseCity==#[[*id]]#`
    Yaroslav
    15 октября 2017, 19:18
    0
    Спасибо за ответ. К сожалению, такой вариант тоже не работает.
    Арсений
    15 октября 2017, 21:05
    0
    А что в id хранится? как я понял это id страницы, а сам город ведь записан словом?
    я делал подобное и у меня это было так:
    [[!pdoResources?
                            &parents=`61`
                            &limit=`4`
                            &tpl=`obj-kv-4`
                            &select=`id,pagetitle,introtext,content`
                            &includeTVs=`kv_rooms,cost,rayon,sq`
                            &showHidden=`1`
                            &sortby=`RAND()`
                            &sortdir=`DESC`
                            &where=`[{"rayon":"[[*pagetitle]]"}]`
                        ]]
    тоесть страница, на которой должен быть вывод товаров для москвы имеет pagetitle = «Москва», и это значение я передавал в сниппет.
      Yaroslav
      15 октября 2017, 21:26
      0
      Спасибо за ответ. Совершенно верно, город записан словом. Работает по такой вот схеме:

      Ваш вариант обязательно попробую.
      Yaroslav
      16 октября 2017, 21:13
      0
      Спасибо за ответы. Нужно вызывать шаблон таким образом
      [[pdoResources:default=`Ничего не нашел, ищи лучше`?
                              &parents=`0`
                              &resources=`[[*ChooseCity]]`
                              &tpl=`CityTemplate`
                              &tplOdd=`CityTemplate2`
                              &includeTVs=`image,url`
                          ]]
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        5