Как исключить в where дедушку?
Здравствуйте!
Подскажите пожалуйста, как в where getresources исключить дедушку ресурсов?
Т.е. должно быть условие «where id дедушки не равен 615»
Текущий код:
Подскажите пожалуйста, как в where getresources исключить дедушку ресурсов?
Т.е. должно быть условие «where id дедушки не равен 615»
Текущий код:
[[!pdoPage@news?
&elementClass=`modSnippet`
&showHidden=`0`
&element=`getResources`
&parents=`0`
&depth=`10`
&where=`{"template:=":3}`
&limit=`12`
&pageVarKey=`page`
&includeTVs=`1`
&includeContent=`1`
&tpl=`news2`
]]
Комментарии: 15
[[getResources? &resources=`-615`
это исключает только этот ресурс, а мне нужно исключить всех потомков этого ресурса, которые более 50
Вы код предоставьте, &parents=`-615`
в getresources так парент не исключается, а только через where
Ну значить нужно получить все значения этого родителя и передать их в
&resources=`-12,-23,-24`
омг… так я же написал, что их на текущий момент только 50 и еще будут пополняться в будущем. поэтому я наверное и спрашиваю решению «как исключить дедушку», а не «как перечислить все ресурсы»
Минус за что поставил? Я дал направление, как реализовать. Понятно, что руками каждый раз не нужно это делать. Вызови сниппет, получи всех потомков, и добавь в исключение.
За то, что я написал вопрос, что мне Конкретно требуется, а не такой подгон в виде простого перечисления ресурсов. И где тут направление омг? Об этом даже догадываться не надо, чтобы понимать, что есть такой вариант решения. Только наверное если бы я мог свой сниппет написать — уже бы сделал, а раз я вопрос тут задал, то наверное не могу, к сожалению, знания не позволяют. А ты тут предлагаешь 50+ ресурсов (и это пока) перечислить в сниппете, а потом ещё контент менеджеру каждый раз при добавлении страницы, исключать ее из этого сниппета — это же велосипед. А вот ты, обиженное дитя, взял и вопросу просто так в ответ поставил минус, хотя мне в принципе пофиг.
Могут быть ошибки, не проверял
Сниппет: allparent
Сниппет: allparent
$array_ids = $modx->getChildIds($input,1,array('context' => 'web'));
if (!$array_ids) return '';
array_walk($array_ids, function(&$val){ $val *= -1;});
return implode(',', $array_ids);
Затем добавляешь в свой код:&resources=`[[allparent? &input=615]]`
вот код. только сомневаюсь, что он вам подскажет как исключить дедушку в where
[[!pdoPage@news?
&elementClass=`modSnippet`
&showHidden=`0`
&element=`getResources`
&parents=`0`
&depth=`10`
&where=`{"template:=":3}`
&limit=`12`
&pageVarKey=`page`
&includeTVs=`1`
&includeContent=`1`
&tpl=`news2`
]]
Используй pdoResources &parents=`-615` или так попробуй в getResources &where=`{«parents:!=»:615}`
сайт не мой, дали задание реализовать возможность исключения дедушки именно с getresources
Пробовал так через where — не работает. Просто ресурс с id 615 — это дедушка, а у него есть куча дочерних, у которых куча своих дочерних ресурсов.
интересное решение, надеюсь еще актуальное. благодарю
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.