0

我有这个 getResourcesCall

[[!getResources? &tpl=GRTpl &includeContent=1 &includeTVs=1 &parents=[[*id]]]]

在 GRTpl 我包括[[+content]]标签,但它们只显示父母的内容,而不是孩子的内容。是什么赋予了!?

更新:

我在 GRTpl 中使用 ModX 输出过滤器。所以我有一个单选列表框,它根据选择显示块。这是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]]` ]]
4

2 回答 2

0

所以我找到了解决方案。在 GRTpl 中,我将一个 var 传递到每个块中:

[[+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]] 中显示子资源的内容。

于 2013-11-14T17:32:19.877 回答
0

上面使用的方法会导致大量的额外处理和较慢的网站。

两种选择:

1) 阅读 Jason Coward 关于条件的优秀文章。

基本问题是上面显示的代码即使不满足条件也会被MODX扩展和处理。

所以而不是:

[[*field:is= 0:then= [[!SomeScript]]:else= [[$SomeChunk]]]]

利用:

[[[[*field: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,您可以执行以下操作:

[[!pdo 资源?&includeTVs= section_type&tplCondition= section_type &conditionalTpls=`{"Type One":"Type One Chunk","Type Two":"Type Two Chunk"} 以此类推。

谷歌“modx pdotools”获取文档。

使用这种方法,我将电视负载的 getResources 调用速度提高了大约 8 倍。

请参阅http://forums.modx.com/thread/90995/performance-question-with-getresources

于 2014-06-24T14:51:24.700 回答