MODx Wayfinder &level=2 排除除一个之外的所有

MODx Wayfinder &level=2 exclude ALL but one

我正在尝试编写一个 Wayfinder 调用 2 级,它排除了除一个 2 级文档 (id=39) 之外的所有 2 级文档(因此必须包括所有 1 级文档)。如何实现?

[[Wayfinder? &startId=`0` &level=`2` excludeDocs=`3,4,5,6,7,8,9` &outerTpl=`menu`]]

我能想到的最好办法是列出所有要排除的 2 级文档,这不是一个很好的解决方案。也尝试使用 PHx 但没有成功。

您可以通过给它一个特定的模板并使用 'where' 参数来包含单个二级资源:

[[Wayfinder? &startId=`0` &level=`2` &where=`{"template:IN":[1,2,3]}` &outerTpl=`menu`]]

您还必须为您想要包含的其他资源添加模板 ID。

我能看到的唯一其他方式是调用 2 个寻路器,一个用于顶层,一个用于 2 级并使用 &includeDocs。

结构:

-Resource 1
-Resource 2
    -Resource 3
    -Resource 4
-Resource 5
    -Resource 39 (just inc this resource)
-Resource 7

1级:

[[Wayfinder?
&startId=`0`
&level=`1`
&outerTpl=`menu`]]

二级:

[[Wayfinder?
&startId=`2,5`
&level=`1`
&includeDocs=`39`
&outerTpl=`menu`]]

要从 Wayfinder(或 getResources)中排除整个目录的内容并保持在自动菜单构建意图的自然边界内,请考虑使用 Weblink 资源作为您希望其子目录的父目录的代理隐藏,然后简单地从菜单中隐藏实际的父目录。

  1. 标记您希望隐藏其子目录的父目录 "Hide from Menus"
  2. 创建返回父目录的网络链接资源,并将其显示为返回该目录的代理

实际的父目录保持整洁。其中的所有子项(即使是新的)仍然井井有条,并且 "proxy" 网络链接可以作为一种方式来表示它,但您希望在菜单中使用它。