我正在尝试创建一个自动索引,其中将显示空间中的所有页面。就像是:
- 空间 1(公共)
- 第 1 页(公开)
- 第 2 页(私人)
- 第 2.1 页(公开)
- 空间2(公共)
- 页面 A (私人)
- B页(公开)
在哪里:
- 公共:(权利:)
Read=True
用户可以点击访问内容。 - 私人:(权利:)
Read=False
用户可以看到标题但不能点击。
如果用户对页面没有权限,read
我希望他至少可以看到页面的标题,因为我可以继续列出能够read
在孩子中看到的页面。
我有的:
#foreach($space in $xwiki.spaces)
#set($WebHome = $space + ".WebHome")
#getChildrenOf($WebHome)
#end
现在递归getChildrenOf
宏是:
#macro(getChildrenOf, $docName)
#foreach($name in $xwiki.searchDocuments('where doc.parent = ? or doc.parent = ? order by doc.name', [$docName, "xwiki:$docName"]))
#if($xwiki.hasAccessLevel('view', "xwiki:$name"))
[[$xwiki.getDocument($name).getPlainTitle()>>$name]]
#else
$xwiki.getDocument($name).getPlainTitle()
#end
#getChildrenOf($name)
#end
#end
结果:
在
else
我得到一个显示功能$xwiki.getDocument($name).getPlainTitle()
而不是页面标题的纯文本。如果我只写我得到的是:
$name
而不是第 2 页的标题。else
Space_1.Page_2
为什么会这样?我该如何解决?