Как исключить в where дедушку?

Здравствуйте!

Подскажите пожалуйста, как в 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`
]]
Lori
24 апреля 2021, 19:27
modx.pro
881
-1

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

Роман
25 апреля 2021, 11:32
0
[[getResources? &resources=`-615`
    Lori
    26 апреля 2021, 06:02
    0
    это исключает только этот ресурс, а мне нужно исключить всех потомков этого ресурса, которые более 50
      Роман
      26 апреля 2021, 09:02
      -1
      Вы код предоставьте, &parents=`-615`
        Lori
        26 апреля 2021, 09:05
        0
        в getresources так парент не исключается, а только через where
          Роман
          26 апреля 2021, 09:10
          -1
          Ну значить нужно получить все значения этого родителя и передать их в
          &resources=`-12,-23,-24`
            Lori
            26 апреля 2021, 09:13
            0
            омг… так я же написал, что их на текущий момент только 50 и еще будут пополняться в будущем. поэтому я наверное и спрашиваю решению «как исключить дедушку», а не «как перечислить все ресурсы»
              Роман
              27 апреля 2021, 00:29
              0
              Минус за что поставил? Я дал направление, как реализовать. Понятно, что руками каждый раз не нужно это делать. Вызови сниппет, получи всех потомков, и добавь в исключение.
                Lori
                27 апреля 2021, 04:36
                0
                За то, что я написал вопрос, что мне Конкретно требуется, а не такой подгон в виде простого перечисления ресурсов. И где тут направление омг? Об этом даже догадываться не надо, чтобы понимать, что есть такой вариант решения. Только наверное если бы я мог свой сниппет написать — уже бы сделал, а раз я вопрос тут задал, то наверное не могу, к сожалению, знания не позволяют. А ты тут предлагаешь 50+ ресурсов (и это пока) перечислить в сниппете, а потом ещё контент менеджеру каждый раз при добавлении страницы, исключать ее из этого сниппета — это же велосипед. А вот ты, обиженное дитя, взял и вопросу просто так в ответ поставил минус, хотя мне в принципе пофиг.
                  Роман
                  27 апреля 2021, 10:58
                  0
                  Могут быть ошибки, не проверял
                  Сниппет: 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]]`
          Lori
          26 апреля 2021, 09:19
          0
          вот код. только сомневаюсь, что он вам подскажет как исключить дедушку в 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`
          ]]
            Алексей
            26 апреля 2021, 16:31
            0
            Используй pdoResources &parents=`-615` или так попробуй в getResources &where=`{«parents:!=»:615}`
              Lori
              27 апреля 2021, 07:39
              0
              сайт не мой, дали задание реализовать возможность исключения дедушки именно с getresources
                Lori
                27 апреля 2021, 07:52
                0
                Пробовал так через where — не работает. Просто ресурс с id 615 — это дедушка, а у него есть куча дочерних, у которых куча своих дочерних ресурсов.
          Lori
          27 апреля 2021, 07:35
          0
          интересное решение, надеюсь еще актуальное. благодарю
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          15