Где правильнее вызвать сниппет - чанк или content?
        Здравствуйте.
Недавно услышал рекомендацию, что лучше перенести вызов сниппетов в чанки.
Появилась у меня привычка сделать универсальный шаблон для вывода [*content*]. И уже делаю ресурсы с этим шаблон, внутри ресурса вызываю сниппеты. И всё работает.
Это правильно или не рекомендуется? Почему?
    
    
                                                                                
            Недавно услышал рекомендацию, что лучше перенести вызов сниппетов в чанки.
Появилась у меня привычка сделать универсальный шаблон для вывода [*content*]. И уже делаю ресурсы с этим шаблон, внутри ресурса вызываю сниппеты. И всё работает.
Это правильно или не рекомендуется? Почему?
Комментарии: 8
                Не знаю как с технической стороны правильнее, но нет ли страха, что менеджер или текстовый редактор что-нибудь сломают?            
                    
                Да нет страха, т.к. есть два правила для всех:
1. Вошел в систему = сразу сделал бэкап.
2. Трогай только те ресурсы, с которыми тебе сказали работать.
                    1. Вошел в систему = сразу сделал бэкап.
2. Трогай только те ресурсы, с которыми тебе сказали работать.
                Во-первых, содержимое ресурса выводится так:
                    [[*content]]Во-вторых, почему бы не вызывать сниппеты в шаблоне по условиям? (Документация: https://docs.modx.pro/system/the-basics/filters-input-and-output#Условные-модификаторы-вывода)            
                1. У человека Evolution — там именно [*content*]
2. Для вывода по условиям нужно поставить PHx.
                    2. Для вывода по условиям нужно поставить PHx.
                Вообще интересует и Evolution, и Revolution. Работаю с обеими системами.            
                    
                Имеется в виду, что шаблон один на всех и в нем куча условий (вызовы чанков или сниппетов) в зависимости от номера id, например?            
                    
                Да, только в Revo их лучше прописывать не так:
Во втором же варианте будут обработаны только текстовые строки и пустые [[$]], если условие не выполнено.
Но если используете Fenom, то можно не извращаться, поскольку там парсер работает по-другому:
                    [[*id:is=`15`:then=`[[$chunk]]`]]а так:[[$[[*id:is=`15`:then=`chunk`]]]]Это из-за того, что парсер сначала выполняет все чанки на странице, а потом только выводит нужные в соответствии с условиями. Во втором же варианте будут обработаны только текстовые строки и пустые [[$]], если условие не выполнено.
Но если используете Fenom, то можно не извращаться, поскольку там парсер работает по-другому:
{if $_modx->resource.id == 15}{$_modx->getChunk('chunk')}{/if}            
                По сути парсеру по барабану где ты вызываешь сниппет, это больше нацеленно на удобочитаемость кода. Если я не ошибаюсь в evo могут возникать проблемы с вложенностью сниппетов. А сниппет в чанке вполне нормально. Если тебе удобно почему бы и нет?            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.