ModX getResources — фрагменты в tpl отображают родительский контент

У меня есть этот getResourcesCall

[[!getResources? &tpl=GRTpl_2[[!getResources? &tpl=3[[!getResources? &tpl=4_[[*id]]]]

В GRTpl я включаю теги [[+content]], но они отображают только родительский контент, а не дочерний. Что дает!?

ОБНОВЛЕНИЕ:

Я использую выходные фильтры ModX в GRTpl. Итак, у меня есть список с одним выбором, который отображает фрагменты на основе выбора. Вот GRTpl:

[[+tv.section_type:eq=`Type One`:then=`[[$Type One Chunk]]` ]]

[[+tv.section_type:eq=`Type Two`:then=`[[$Type Two Chunk]]` ]]

[[+tv.section_type:eq=`Type Three`:then=`[[$Type Three Chunk]]` ]]

[[+tv.section_type:eq=`Type Four`:then=`[[$Type Four Chunk]]` ]]

person symlink    schedule 14.11.2013    source источник


Ответы (2)


Итак, я нашел решение. В GRTpl я передаю переменную в каждый фрагмент:

[[+tv.section_type:eq=`Type One`:then=`[[$Type One Chunk? &content=`[[+content]]` ]]` ]]

[[+tv.section_type:eq=`Type Two`:then=`[[$Type Two Chunk? &content=`[[+content]]` ]]` ]]

[[+tv.section_type:eq=`Type Three`:then=`[[$Type Three Chunk? &content=`[[+content]]` ]]` ]]

[[+tv.section_type:eq=`Type Four`:then=`[[$Type Four Chunk? &content=`[[+content]]` ]]` ]]`

Затем в чанках [[+content]] отображается содержимое дочернего ресурса.

person symlink    schedule 14.11.2013

Метод, использованный выше, приведет к большому количеству дополнительной обработки и замедлению работы веб-сайта.

Два варианта:

1) Прочтите прекрасную статью Джейсона Кауарда об условных выражениях.

Основная проблема заключается в том, что код, показанный выше, будет расширен и обработан MODX, даже если он не соответствует условию.

Итак, вместо:

[[*поле:is=0:then=[[!SomeScript]]:else=[[$SomeChunk]]]]

Использовать:

[[[[*поле:is=0:then=!SomeScript:else=$SomeChunk]]]]

См. http://modx.com/blog/2012/09/14/tags-as-the-result-or-how-conditionals-are-like-mosquitoes/, чтобы узнать подробности.

2) Для дальнейших улучшений замените getResources на pdoResources и используйте его превосходные условные шаблоны, что означает, что вам вообще не нужно использовать условные выражения.

С помощью pdoResources вы можете сделать следующее:

[[!pdoResources? &includeTVs=section_type &tplCondition=section_type &conditionalTpls=`{"Type One":"Type One Chunk","Type Two":"Type Two Chunk"} и так далее.

Google "modx pdotools" для документов.

Используя этот метод, я ускорил вызов getResources, загруженный телевизором, примерно в 8 раз быстрее.

См. http://forums.modx.com/thread/90995/performance-question-with-getresources

person James    schedule 24.06.2014