我想检查启用宏的页面中的标签名称及其子项。这是可以使用自定义宏吗?我按照本教程: https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-confluence-hello-world-macro/
查看了其他一些文档,但无法验证。
答案 0 :(得分:1)
通过Page课程,您可以访问网页的所有标签(通过A
)和所有网页的儿童(通过getLabels()
,但请注意< em>没有权限检查已完成)。我现在没有Java开发环境,但我能够在用户宏中显示当前页面及其子项的标签(通过getChildren()
变量):
$content
答案 1 :(得分:0)
我有两种方法可以想到 -
1)自定义插件
我正在介绍如何获得所需结果的高级细节。在实际尝试执行此操作时,您可能会遇到一些错误。所以GOOGLE是你最好的朋友。
首先,您必须使用SQL查询
检索带有宏的所有页面SELECT c.contentid, c.contenttype, c.title, s.spacekey
FROM CONTENT c
JOIN BODYCONTENT bc
ON c.contentid = bc.contentid
JOIN SPACES s
ON c.spaceid = s.spaceid
WHERE c.prevver IS NULL
AND c.contenttype IN ('PAGE', 'BLOGPOST')
AND bc.body LIKE '%ac:name="<macro_name>"%';
然后使用以下内容获取带有标签的所有页面:
SELECT * FROM CONTENT
WHERE CONTENTID IN (SELECT CONTENTID FROM CONTENT_LABEL
WHERE LABELID IN (SELECT LABELID FROM LABEL
WHERE NAME='<label name>'));
使用内容ID将两者的结果合并在一起,或者您也可以拨打一个电话来获取已加入的输出。
你有这些页面。
您可以使用其他查询(例如
)让他们的孩子 SELECT c.contentid, c.title FROM CONFANCESTORS a JOIN CONTENT c ON a.descendentid = c.contentid WHERE a.ancestorid = '<parent_page_id>'
2)休息电话
这有点复杂,我不推荐,但步骤类似于自定义插件。