如何告诉MODX wayFinder检测它当前所在的资源ID

时间:2013-08-23 15:32:09

标签: modx

我是WayFinder的新手,但我一直在使用它,它对我很有用,但我需要一些更有活力的东西,我不知道该怎么做。

我的网站有5页,每页有另一个侧面菜单,但所有五种资源的每个菜单都会略有不同

我需要寻路器来检测当前ID是什么,然后显示相应的菜单

我尝试了几件事,但不能让我开始工作:

[!如果? & subject = [[*28]]& then = [[Wayfinder? &startId= 27 &excludeDocs= 28,29,30,31,32,33,89 ]]]]

所以我需要说一下,如果ID是=到28,则显示此菜单,如果ID = = 29则显示此菜单,依此类推。

我也尝试了& idIs = 28以及其他一些变体,但实际上找不到任何可以帮助我解决这个问题吗?有没有其他人有任何想法如何让这项工作?谢谢。

4 个答案:

答案 0 :(得分:3)

使用解决方案排版建议,每次都会调用寻路器,从而导致无法为您的站点加载时间。这将更快,因为只有当id = 28时才会调用wayfinder。

[[[[*id:is=`28`:then=`Wayfinder? &startId=27 &excludeDocs=28,29,30,31,32,33,89`:else=``]]]]

点击此处了解详情:http://modx.com/blog/2012/09/14/tags-as-the-result-or-how-conditionals-are-like-mosquitoes/

答案 1 :(得分:1)

您可以将输出过滤器用于条件调用。他们的文档是here

您的代码看起来像这样:

[[*id:is=`28`:then=`[[Wayfinder? &startId=27&excludeDocs=28,29,30,31,32,33,89]]`:else=``]]

答案 2 :(得分:0)

如果菜单需要从当前ID开始,那么您将使用     &安培; startId =`[[* ID]]`

如果您希望它显示当前文件夹中的所有资源,您可以使用UltimateParent,所以     &安培; startId =`[[UltimateParent]]`

希望这有帮助!

答案 3 :(得分:0)

这应该有效。主题只是您要比较的参数,因此它不应包含值。

[[!If?
   &subject=`[[*id]]`
   &operator=`EQ`
   &operand=`28`
   &then=`[[Wayfinder? &startId=`27` &excludeDocs=`28,29,30,31,32,33,89`]]`
]]