ModX 3 - вывод чанка в зависимости от раздела
        Вечер добрый. Собственно сабж.
Например есть сайт и там 3 направления — Ракеты, Арбузы, Магия.
Соответственно в каждом разделе и вложенных ресурсах будет своя информация.
Есть 3 чанка с параметрами внутри них.
Как сделать, что бы для ресурса с id = 1 и всех вложенных ресурсов выводился чанк arbuzi
А для ресурса с id = 25 и вложенных ресурсов был вывод чанка raketi
И следовательно для id=100 шел вывод чанка magic…
Находил варианты вывода, но, увы, они вызывают ошибку 500 в modx 3…
    
    
                                                                                
            Например есть сайт и там 3 направления — Ракеты, Арбузы, Магия.
Соответственно в каждом разделе и вложенных ресурсах будет своя информация.
Есть 3 чанка с параметрами внутри них.
Как сделать, что бы для ресурса с id = 1 и всех вложенных ресурсов выводился чанк arbuzi
А для ресурса с id = 25 и вложенных ресурсов был вывод чанка raketi
И следовательно для id=100 шел вывод чанка magic…
Находил варианты вывода, но, увы, они вызывают ошибку 500 в modx 3…
Комментарии: 10
                Если глубина вложенности равна 1, то просто проверяй родителя. Если нужна произвольная глубина вложенности лучше сделать у ресурсов доп.поле в котором хранить информацию о нужно чанке.            
                    
                Очередной TV для проверки на Феноме, что этот ресурс содержит указание — какой блок выводить… эх…
Глубина вложенности неопределенная, от 2 до…
                    Глубина вложенности неопределенная, от 2 до…
                Вообще есть компонент ExtraFields который позволяет легко расширить модель ресурса и не использовать ТВ.
Так же можно написать свой модификатор, который будет получать на вход id родителя и id ресурса и проверять есть родитель в ответе метода $modx->getParentIds($rid). Есть два нюанса. Во-первых я не знаю есть ли такой метод в тройке. Во-вторых если построение карты ресурсов будет отключено в системных настройках, то работать модификатор перестанет.
                    Так же можно написать свой модификатор, который будет получать на вход id родителя и id ресурса и проверять есть родитель в ответе метода $modx->getParentIds($rid). Есть два нюанса. Во-первых я не знаю есть ли такой метод в тройке. Во-вторых если построение карты ресурсов будет отключено в системных настройках, то работать модификатор перестанет.
                Для получения 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}            - Ракеты (1)
- Подкатегория 1 (2)
- Товар 1 (3)
 - Товар 2 (4)
 - Товар 3 (5)
 - Подкатегория 2 (6)
- Товар 4 (7)
 - Товар 5 (8)
 
 
 
 - Подкатегория 1 (2)
 
                Это видел, а вот как работать с теми ресурсами, что вложены в Арбузы, Ракеты и Магию…            
                    
                Так в них и выводите. В $category будет ID не родителя, а категории первого уровня.
То есть если у Вас так:…
                    То есть если у Вас так:…
                Понял, отлично. Спасибо!)            
                    
                Протестировал. Ошибка 500            
                    
                Это у Вас что-то не так ).
Смотрите логи сервера.
                    Смотрите логи сервера.
                Да, почему то феном в чанке не хочет…            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.