我正在尝试使用getResources
为我的网站构建主导航。我如何告诉getResources
从当前上下文开始并立即查看当前上下文下的所有资源?
我看到我可以指定以下参数;
- 父母
- 资源
我已经设置了父母0
,但这不起作用。我不知道id
上下文的资源,所以我不能为资源参数指定它。
我不能做我想做的事getResources
吗?我错过了什么?
我正在尝试使用getResources
为我的网站构建主导航。我如何告诉getResources
从当前上下文开始并立即查看当前上下文下的所有资源?
我看到我可以指定以下参数;
我已经设置了父母0
,但这不起作用。我不知道id
上下文的资源,所以我不能为资源参数指定它。
我不能做我想做的事getResources
吗?我错过了什么?
在http://rtfm.modx.com/display/ADDON/Wayfinder上构建导航,他有一个参数来处理上下文。
使用 &context,来自 rtfm.modx.com 上的文档“应该在哪个上下文中搜索。默认为当前上下文。”
所以你的最小 getResources 调用可能看起来像:
[[getResources? &parents=0 &tpl=menuTpl ]]
您不必指定上下文,而且 getResources 是服务器资源密集型的,除非您有特定的理由不这样做,否则请按照 Vasis 的建议使用寻路器。
我知道这有点晚了,但我只是想出了这个,测试并在 Revo 2.2.10 上工作。
您告诉 getResources 从当前上下文开始的方式是将父级设置为当前文档的 ID。
这将进入您的模板:
<ul>
[[getResources? &parents=`0` &depth=`0` &limit=`0` &sortby=`menuindex` &sortdir=`ASC` &tpl=`tpl_Navigation`]]
</ul>
然后在用作getResources(tpl_Navigation)模板的Chunk中:
<li>
<a href="[[~[[+id]]]]">[[+menutitle:default=`[[+pagetitle]]`]]</a>
[[getResources? &parents=`[[+id]]` &depth=`0` &totalVar=`numChildren[[+id]]` &limit=`0` &tpl=`tpl_Navigation` &sortby=`menuindex` &sortdir=`ASC` &toPlaceholder=`children[[+id]]`]]
[[+numChildren[[+id]]:gt=`0`:then=`<ul>[[+children[[+id]]]]</ul>`:else=``]]
</li>
如果要使用 getResource 从当前上下文顶部生成菜单,还需要添加&depth=`0` &context=`[[*context_key]]`
参数。
但是对于 modx 中的简单菜单生成,我建议您使用安装了 getResource 的Wayfinder插件。