How do I restrict child pages listed by the Children Display macro to those with a specific label?

mike.howells May 23, 2012

I have a bunch of parent pages where I want to list the child pages of each, but I want to have a separate list for each label.

The Children Display macro produces the output I want, but it doesn't have a parameter to specify a label. There may be a parameter that isn't shown in the dialog but I don't know how to get to the old markup syntax.

12 answers

1 accepted

1 vote
Answer accepted
heidi lund November 29, 2012

It's the Reporting Plugin from Customware:

http://wiki.customware.net/repository/display/AtlassianPlugins/Reporting+Plugin

I've used it in this markup to produce a bulleted list of titles of pages that contain the specified label:

{report-list} {local-reporter:content:children|source=PAGE TITLE} {text-sort:content:title} {content-filter:@self|labels=+LABEL} {local-reporter} {report-body}{report-info:content:title|link=true}{report-body} {report-list}

I've also used the following markup to produce a page that includes the full wiki pages (rather than just titles) of those children pages that contain the specified label(s):

{report-list} {local-reporter:content:children|source=PAGE TITLE} {text-sort:data:Author} {content-filter:@self|labels=+LABEL,+LABEL2} {local-reporter} {report-body}{report-info:content:body|render=wiki}{report-body} {report-empty}_There are no reports this week._{report-empty}{report-list}

It can also be used to produce a list of children that contain one label OR another label - the example below will produce any children that contain LABEL1 AND either LABEL2 or LABEL3:

{report-list} {local-reporter:content:children|source=PAGE TITLE} {text-sort:data:Author} {content-filter:@self|labels=+LABEL1,+(LABEL2,LABEL3)} {local-reporter} {report-body}{report-info:content:body|render=wiki}{report-body} {report-empty}_There are no reports this week._{report-empty}{report-list}

Hope that helps!

0 votes
Matteo Gubellini _SoftComply_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
February 28, 2021

Hi,

I am by no means a developer, but this piece of code does exactly this. You can modify it to show the links too.

## @param noShowLabel:title=Label|type=string|desc=Label of pages to exclude

#macro(childrenList $parentPage)
#set($childpagesSub = $parentPage.getSortedChildren())
#set($childrenN = $childpagesSub.size())
#if($childrenN > 0)
<ul>
#foreach($page in $childpagesSub)
#set($noShow=0)
#set($pageLabels = $page.getLabels())
#foreach($pageLabel in $pageLabels)
#if($pageLabel == $paramnoShowLabel)
#set($noShow=1)
#end
#end
#if($noShow==0)
<li>$page.getTitle()</li>
#childrenList($page)
#end
#end
</ul>
#end
#end

#childrenList($content)
0 votes
Stefan Mueller November 3, 2019

would it be possible to manipulate the result of the Children Display Macro using JaveScript in the HTML Macro?

May these sources could help to find a solution:

Anyone there who can asses this and tell whether that could be done?

0 votes
Frederick Martin April 5, 2019

insert CQL Search macro with: label=<label> AND parent=<parentID>

But you get list of pages and space, no excerpt.

Mark Stephan October 10, 2019

Do you create this in User Macro? If so can you give all the details on how you did it? So we can recreate it.

0 votes
Mike McGowan September 17, 2013

I searched the Confluence JIRA project and found this Feature Enhancment -- https://jira.atlassian.com/browse/CONF-11535 -- similar but not quite right. Does anyone know there is an Enhancement Request? I will happily vote for it.

0 votes
Andreas April 23, 2013

Ok, thanks for the reply.

0 votes
Mike Howells April 23, 2013

No, there's no easy way to filter a list of child pages by label. I've worked around it by listing all child pages with excerpts, so people can work out what they relate to without a label.

0 votes
Andreas April 22, 2013

Hi, did you find a solution? I have the same issue.

0 votes
mike.howells September 5, 2012

Those macros don't work in my Confluence. :(

What plug-in is that? What does the rendered list look like?

0 votes
heidi lund September 4, 2012

Not sure if this is exactly what you're looking for but I've used this to list a page's children pages with the label foo:

{report-list} {local-reporter:content:children} {text-sort:content:title} {content-filter:@self|labels=+foo} {local-reporter} {report-body}{report-info:content:title|link=true}{report-body} {report-list}

Stefan Mueller November 2, 2019

where did you use this? In the HTML Macro?

0 votes
mike.howells May 24, 2012

I tried the Checklist macro which can be restricted to child pages with a label, but the excerpt is not rendered properly (you can see HTML mark-up as plain text) and it's a table rather than a bullet list.

0 votes
Joerg Bencke
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 23, 2012
Hi, I have been looking for the same. All I found ware following approaches : a) Using the page family tree plugin from adaptavist - beware, it has a performance-issue, wether it will work for you depends on the sice of the pagetree b) Using "content by label" in combination with pagetree-unique labels ( :-( ) c) (Maybe, just had the idea) Search macro with "ancestor-ID = XXXX and <tagname>" Let us know how you solved this. Josh
mike.howells May 24, 2012

I tried the Advanced search macro (had to enter as wiki input because the forms don't allow mandatory fields to be entered) but I can't get the excerpts.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events