Dynamic GetResource,动态父级。

Dynamic GetResource,动态父级。,dynamic,parent-child,modx,Dynamic,Parent Child,Modx,我的问题如下。我目前正在用get page、get resources、form it和wayfinder制作一个博客页面。这个问题需要对Modx和snippits有相当多的了解。我有页码和所有工作,我有一个模板页面,里面有我所有的调用(称为weblogTemplate)。此模板中包含以下wayfinder调用: [[!getResources? &parents=`5` &limit=`5` &tpl=`blogPost`]] [[!getPage?

我的问题如下。我目前正在用get page、get resources、form it和wayfinder制作一个博客页面。这个问题需要对Modx和snippits有相当多的了解。我有页码和所有工作,我有一个模板页面,里面有我所有的调用(称为weblogTemplate)。此模板中包含以下wayfinder调用:

[[!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`
          ]]
[[!getResources?&parents=`5`&limit=`5`&tpl=`blogPost`]
[[!getPage?
&elementClass=`modSnippet`
&element=`getResources`
&父母=`4`
&深度=`2`
&限制=`5`
&pageNavOuterTpl=`[+第一个][[+上一个][[+页面][[+下一个][+最后一个]]`
&pageVarKey=`page`
&pageFirstTpl=`
  • ` &pageLastTpl=`
  • ` &pagePrevTpl=`
  • ` &pageNextTpl=`
  • ` &includeTVs=`1` &includeContent=`1` &tpl=`blogListPost` ]]
    如您所见,父项在此处设置为id号5。这对于主页来说很好,但是博客页面中连接的任何子页面也使用相同的模板,因此也将具有与父页面相同的菜单。您可以使用修复程序为一个页面创建一个模板,并继续使用不同的getResource调用,但请记住,这是一个博客im,不断添加新页面。用户不能(甚至不理解)制作模板和编辑任何代码。我想到的一个解决方案是将父id设置为动态的,这样它就可以根据当前所在的页面进行调整。例如,如果它位于id号为12的页面上,则会将父调用设置为12,从而显示id号为12的所有内容。如果有人有任何想法/想法/解决方案,我将非常感谢听取他们的意见


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

    &parents=`[[*id]]`
    
    用户的问题通过在系统设置中设置
    default\u模板来解决。

    这对我很有效:

    [[!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`
                  ]]
    
    [[!getPage?
    &elementClass=`modSnippet`
    &element=`getResources`
    &父母=`[*id]]`
    &深度=`0`
    &限制=`10`
    &pageNavOuterTpl=`[+第一个][[+上一个][[+页面][[+下一个][+最后一个]]`
    &pageVarKey=`page`
    &pageFirstTpl=`
  • ` &pageLastTpl=`
  • ` &pagePrevTpl=`
  • ` &pageNextTpl=`
  • ` &includeTVs=`1` &includeContent=`1` &tpl=`blogListPost` ]]

    感谢Vasis提供的帮助。

    我现在应该如何处理深度?如果我将其设置为1,它仍然显示所有页面。使用任何深度,只需按模板进行筛选:
    &where=`{“template:=”:8}
    `我仍然没有完全得到你的答案。你能通过一个例子详细说明你的答案吗?在博客模板中使用:
    [!getResources?&parents=`[*id]`&where=`{“template:=”:8}&limit=`5`&tpl=`blogPost`]
    -将8更改为模板id