Присвоить несколько категорий товару

Решения искал здесь:
modx.ru/vopros-otvet/info/2292/
и здесь:
dyranov.ru/2015/02/taksonomiya-v-modx-revo-custom-tv-input/
и здесь:
wdevblog.net.ru/blog/mnozhestvennyie-kategorii.html

даже есть доступ к реализованному методу:
[[!pdoPage?
	&element=`ms2GalleryResources`
	&tpl=`TPL.house.item`
	&ajaxMode=`button`
	&ajaxTplMore=`@INLINE`
	&limit=`48`
	&sortdir=`ASC`
	&sortby=`house-meters`
	&parents=`7`
	&hideContainers=`1`
	&typeOfJoin=`left`
	&includeThumbs=`500x376`
	&includeTVs=`house-category,house-action,house-meters,house-cost-[[*introtext]],house-cost-[[*introtext]]-old`
	&tvFilters=`house-category==%[[*id]]%`
]]

В моём случае пытался повторить:
[[!pdoPage?
            &limit=`18`
            &showHidden=`1`
            &tpl=`tovar`
            &includeTVs=`image-tovar,old-price-tovar,price-tovar,sale,date-add`
            &templates=`6`
            &includeContent=`1`
            &tvFilters=`==categories%[[*id]]%`
            [[!Sort]]
        ]]
А в tv categories подставилял так — кат==ID|| кат==ID|| кат==ID||, но судя по всему там ещё что-то прикрученно.

Как можно решить эту задачу, если ни miniShop ни shopKeeper на сайте не использованы?
Семён Лебедев
05 декабря 2015, 21:41
modx.pro
2 287
0

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

Семён Лебедев
06 декабря 2015, 11:02
0
Так заработало:
[[!pdoPage?
&limit=`18`
&showHidden=`1`
&parents=`3`
&tpl=`tovar`
&includeTVs=`categories,image-tovar,old-price-tovar,price-tovar,sale,date-add`
&templates=`6`
&includeContent=`1`
&tvFilters=`categories==%[[*id]]%`
[[!Sort]]
]]


Осталось понять как связать решение моей предыдущей темы(https://modx.pro/help/7221/) с этой :)
    Fi1osof
    06 декабря 2015, 11:48
    +4
    &tvFilters=`categories==%[[*id]]%`
    Вот так не советую делать. Это поиск по любому вхождению в строке. К примеру, в базе данных у вас записаны категории 1011||101. Вашим методом будет успешный поиск для 10 (%10%), 11(%11%) и т.п. % — это любое количество любых символов.
    Киньте через личку доступ в админку, я помогу с составлением запроса.
      Fi1osof
      06 декабря 2015, 13:16
      +2
      Вот подробно ответил. В вашем случае запрос должен выглядеть так:
      [[!pdoPage?
      &limit=`18`
      &showHidden=`1`
      &parents=`3`
      &tpl=`tovar`
      &includeTVs=`categories,image-tovar,old-price-tovar,price-tovar,sale,date-add`
      &templates=`6`
      &includeContent=`1`
      &where=`["1 = 1 AND FIND_IN_SET('[[*id]]', replace(categories, '||', ','))"]`
      [[!Sort]]
      ]]
        Семён Лебедев
        06 декабря 2015, 16:44
        0
        Спасибо, помогло! Работает шустрее, видать из-за того, что в бд порядок :)
          Fi1osof
          06 декабря 2015, 16:48
          +1
          Не за что!

          Ваше быстрее натолкнуло меня на размышление, и я понял, что не все тут так радужно… Сейчас в топике отпишусь и маякну.
            Fi1osof
            06 декабря 2015, 17:04
            +1
            А не, выдыхайте :) Там все ОК. Я думал, что он выполняет один раз JOIN всех ТВешек и что мой способ отметет по условию все остальные, но нет, там сколько ТВшек столько и джоинов, так что и поиск норм, и вывод всех данных на месте.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        6