pdoResource c несколькими родителями

В pdoResources в parents хочу передать два параметра — один обычный, а другой исключающий. То есть я хочу сделать выборку ресурсов по стране, но исключить текущий регион:

{set $countryOffices = 'pdoResources' | snippet : [
        'parents' => '-' ~ $currentRegionId ~ ',' ~ $currentCountryId,
        'sortby' => 'createdon',
        'sortdir' => 'DESC',
        'hideContainers' => '1',
    ]}
Но оба условия игнорируются. Может я что-то не так делаю? Буду благодарен за пинок подсказку ))
Konstantin
26 января 2025, 18:54
modx.pro
442
0

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

Konstantin
28 января 2025, 10:13
1
0
Сам написал сам ответил ))

оказалось что pdoresources не умеет отсекать родительские ветки как я полагал, поэтому нужно использовать конструкции с where

[[pdoResources?
    &parents=`0`
    &where=`{"parent:!=": "ID_ИСКЛЮЧАЕМОГО_РОДИТЕЛЯ"}`
    &tpl=`rowTpl`
]]
или так если несколько отсечений

[[pdoResources?
    &parents=`0`
    &where=`{"parent:NOT IN": [ID_РОДИТЕЛЬ1, ID_РОДИТЕЛЬ2]}`
    &tpl=`rowTpl`
]]
    alex.shabun
    28 января 2025, 15:47
    0
    Всё нормально «отсекается» в pdoresources если указывать параметр parents
    Другое дело что у тебя скорее всего currentRegionId для исключения нужно указывать не в parents, а в resources
    Наумов Алексей
    28 января 2025, 10:38
    0
    Есть параметр resources, где можно указать список ресурсов для добавления или исключения.
      Дмитрий Середюк
      30 января 2025, 19:57
      0
      {set $countryOffices = 'pdoResources' | snippet : [
              'parents' => $currentCountryId,
              'sortby' => 'createdon',
              'sortdir' => 'DESC',
              'hideContainers' => '1',
              'return'           =>'json',
          ]|json_decode}
      {foreach $countryOffices  as $v}
          {if $v.parent != $currentRegionId}
              {* Исключаем регионы  / Выводим страны *}
          {/if}
      {/foreach}
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4