Выборка ресурсов по родителю + по значению TV
Столкнулся с задачей на вывод ресурсов, прошу помощи)
Что имеется:
1. у некоторых ресурсов имеется TV со списком id ресурсов через запятую, к примеру у одного из ресурсов $tv1 содержит значение «50,51,52»,
на определенной странице есть вывод ресурсов:
Так вот, вывести нужно не только ресурсы с родителем 50, но еще и те у которых в $tv1 есть значение 50. Стандартными средствами pdoResources этого вроде как не сделать, поэтому на ум приходит только написать сниппет, с выборкой id ресурсов сначала по родителю, а потом по совпадению с tv и подставить все эти айдишники в resources. Тут то я и стопорюсь, выборку по родителю сделать не проблема, а по tv не получается, может кто скажет куда копать?
Что имеется:
1. у некоторых ресурсов имеется TV со списком id ресурсов через запятую, к примеру у одного из ресурсов $tv1 содержит значение «50,51,52»,
на определенной странице есть вывод ресурсов:
[[!pdoResources?
&parents=`[[*id]]` //пусть это будет id 50
&where=`{"template":6}`
&tpls=`shortItem`
&tvPrefix=``
]]
Так вот, вывести нужно не только ресурсы с родителем 50, но еще и те у которых в $tv1 есть значение 50. Стандартными средствами pdoResources этого вроде как не сделать, поэтому на ум приходит только написать сниппет, с выборкой id ресурсов сначала по родителю, а потом по совпадению с tv и подставить все эти айдишники в resources. Тут то я и стопорюсь, выборку по родителю сделать не проблема, а по tv не получается, может кто скажет куда копать?
Комментарии: 7
А
не работает?
&tvFilters=`tv1==%50%`
не работает?
Такой вариант рассматривал, но в этом случае если у тв будет значение 500 то оно тоже будет выбрано
Решение в лоб:
&where=`["(tv1 LIKE '50%' OR tv1 LIKE '%50' OR tv1 LIKE '%50,%')"]`
То есть, значение в начале, конце или в середине.
А так тоже выводит не то что надо, срабатывает на 500, 150 и т.п.(
Буду искать другие варианты, возможно с REGEXP как-то получится
Буду искать другие варианты, возможно с REGEXP как-то получится
Не должно такого быть. Включай showLog, смотри какой в итоге выходит SQL запрос.
Почему же не может, tv1 под одно из условий попадает, вот и выводит. Даже под два
Под моё условие ни 150 ни 500 подпадать не должно.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.