GetResource,动态父级。

时间:2013-04-29 06:41:05

标签: dynamic parent-child modx

我的问题如下。我目前正在制作一个包含get-page,get-resources,form-it和wayfinder的博客页面。这个问题需要大量关于Modx和snippits的知识。我有页码和所有工作,我有一个模板页面,其中包含我的所有调用(称为weblogTemplate)。此模板中包含以下寻路者呼叫:

[[!getResources? &parents=`5` &limit=`5` &tpl=`blogPost`]]
          [[!getPage?
             &elementClass=`modSnippet`
             &element=`getResources`

             &parents=`4`
             &depth=`2`
             &limit=`5`
             &pageNavOuterTpl=`[[+first]][[+prev]][[+pages]][[+next]][[+last]]`
             &pageVarKey=`page`
             &pageFirstTpl=`<li class="controlFirst"><a[[+classes]][[+title]] href="[[+href]]">Eerste pagina</a></li>`
             &pageLastTpl=`<li class="controlLast"><a[[+classes]][[+title]] href="[[+href]]">Laatste pagina</a></li>`
             &pagePrevTpl=`<li class="controlPrev"><a[[+classes]][[+title]] href="[[+href]]">&lt;&lt;</a></li>`
             &pageNextTpl=`<li class="controlNext"><a[[+classes]][[+title]] href="[[+href]]">&gt;&gt;</a></li>`

             &includeTVs=`1`
             &includeContent=`1`

             &tpl=`blogListPost`
          ]]

正如您所看到的,父级在此处设置为ID号5.这对于主页很好,但在博客页面中连接的任何子页面也使用相同的模板,因此也将具有与父级相同的菜单。您可以使用修复程序为页面创建1个模板并继续使用不同的getResource调用,但请记住,它是一个正在制作的博客,新页面不断添加。用户不能(甚至不会理解)制作模板和编辑任何代码。我想到的一个解决方案是将父ID设置为动态,因此它会调整到当前所在的页面。因此,例如,如果它在ID为12的页面上,它将使父调用设置为12,因此显示id编号为12的所有内容。如果有人有任何想法/想法/解决方案,我将非常感谢听到他们。

(a link about wayfinder that i used.)

2 个答案:

答案 0 :(得分:1)

最好的解决方案是使用两个模板 - 一个用于主页面,一个用于博客页面并用于博客模板:

&parents=`[[*id]]`

通过在系统设置中设置default_template,解决了用户的问题。

答案 1 :(得分:0)

这对我有用:

[[!getPage?
                 &elementClass=`modSnippet`
                 &element=`getResources`

                 &parents=`[[*id]]`
                 &depth=`0`
                 &limit=`10`
                 &pageNavOuterTpl=`[[+first]][[+prev]][[+pages]][[+next]][[+last]]`
                 &pageVarKey=`page`
                 &pageFirstTpl=`<li class="controlFirst"><a[[+classes]][[+title]] href="[[+href]]">Eerste pagina</a></li>`
                 &pageLastTpl=`<li class="controlLast"><a[[+classes]][[+title]] href="[[+href]]">Laatste pagina</a></li>`
                 &pagePrevTpl=`<li class="controlPrev"><a[[+classes]][[+title]] href="[[+href]]">&lt;&lt;</a></li>`
                 &pageNextTpl=`<li class="controlNext"><a[[+classes]][[+title]] href="[[+href]]">&gt;&gt;</a></li>`

                 &includeTVs=`1`
                 &includeContent=`1`

                 &tpl=`blogListPost`
              ]]

感谢Vasis提供的帮助。