ModX 3 - вывод чанка в зависимости от раздела

Вечер добрый. Собственно сабж.

Например есть сайт и там 3 направления — Ракеты, Арбузы, Магия.

Соответственно в каждом разделе и вложенных ресурсах будет своя информация.

Есть 3 чанка с параметрами внутри них.

Как сделать, что бы для ресурса с id = 1 и всех вложенных ресурсов выводился чанк arbuzi
А для ресурса с id = 25 и вложенных ресурсов был вывод чанка raketi
И следовательно для id=100 шел вывод чанка magic…

Находил варианты вывода, но, увы, они вызывают ошибку 500 в modx 3…
Матвей
02 марта 2025, 23:25
modx.pro
173
0

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

Артур Шевченко
02 марта 2025, 23:51
0
Если глубина вложенности равна 1, то просто проверяй родителя. Если нужна произвольная глубина вложенности лучше сделать у ресурсов доп.поле в котором хранить информацию о нужно чанке.
    Матвей
    03 марта 2025, 00:00
    0
    Очередной TV для проверки на Феноме, что этот ресурс содержит указание — какой блок выводить… эх…
    Глубина вложенности неопределенная, от 2 до…
      Артур Шевченко
      03 марта 2025, 10:04
      0
      Вообще есть компонент ExtraFields который позволяет легко расширить модель ресурса и не использовать ТВ.

      Так же можно написать свой модификатор, который будет получать на вход id родителя и id ресурса и проверять есть родитель в ответе метода $modx->getParentIds($rid). Есть два нюанса. Во-первых я не знаю есть ли такой метод в тройке. Во-вторых если построение карты ресурсов будет отключено в системных настройках, то работать модификатор перестанет.
    Павел Романов
    03 марта 2025, 10:40
    0
    Для получения id верхней категории можно использовать pdoField, а дальше разводить. Если Ракеты, Арбузы, Магия находятся в корне (уровень указывается в topLevel), то так:
    {var $category = 'pdoField' | snippet : ['topLevel' => 1, 'field' => 'id']}
    {$category == 1}
        {include 'arbuzi'}
    {elseif $category == 25}
        {include 'raketi'}
    {elseif $category == 100}
        {include 'magic'}
    {else}
    {/if}
      Матвей
      03 марта 2025, 21:48
      0
      Это видел, а вот как работать с теми ресурсами, что вложены в Арбузы, Ракеты и Магию…
        Павел Романов
        03 марта 2025, 22:41
        0
        Так в них и выводите. В $category будет ID не родителя, а категории первого уровня.
        То есть если у Вас так:…
        • Ракеты (1)
          • Подкатегория 1 (2)
            • Товар 1 (3)
            • Товар 2 (4)
            • Товар 3 (5)
            • Подкатегория 2 (6)
              • Товар 4 (7)
              • Товар 5 (8)

        … то для всех подкатегорий и товаров $category будет 1 (ID Ракеты) вне зависимости от вложенности.
          Матвей
          03 марта 2025, 23:15
          0
          Понял, отлично. Спасибо!)
        Матвей
        03 марта 2025, 22:34
        0
        Протестировал. Ошибка 500
          Павел Романов
          03 марта 2025, 22:42
          0
          Это у Вас что-то не так ).
          Смотрите логи сервера.
            Матвей
            03 марта 2025, 23:15
            0
            Да, почему то феном в чанке не хочет…
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        10