Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Count number of pages based on labels in a certain parent page

Haydn Jones
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 16, 2020

Hello everyone,

I'm not well versed in HTML but I am trying to count the number of pages in a set location based on a label, so far my code is:

## @Param ParentPage:title=Page|type=confluence-content|required=true|desc=Select a page for which to count the children
## @Param Label:title=label|type=string|required=true|desc=Specify a label to count #set($pageCount = 0)
#set ( $colonIndex = $paramParentPage.indexOf(":") )
#if ( $colonIndex == -1 )
#set ( $parentSpaceKey = $space.key )
#set ( $parentPageName = $paramParentPage )
#else
#set ( $parentSpaceKey = $paramParentPage.substring(0, $colonIndex) )
#set ( $parentPageNameIndex = $colonIndex + 1 )
#set ( $parentPageName = $paramParentPage.substring($parentPageNameIndex) )
#end
#set ( $parentPage = $pageManager.getPage($parentSpaceKey, $parentPageName) )
#foreach( $child in $parentPage.descendents )
#foreach( $childlabel in $child.labels )
#if($childlabel.name == $paramLabel )
#set($pageCount = $pageCount +1)
#end
#end
#end
<p>Under $parentPageName there are $pageCount pages with the label $paramLabel</p>

 

But with that all I am receiving is this:

error.PNGCan anyone help me identify the issue?

1 answer

0 votes
Stephen Deutsch
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.
December 16, 2020

Hmm, looks like something I wrote :)

It's not super efficient, but it should work. Looks like your main issue is that #set($pageCount=0) is on the wrong line. Maybe try this:

## @Param ParentPage:title=Page|type=confluence-content|required=true|desc=Select a page for which to count the children
## @Param Label:title=label|type=string|required=true|desc=Specify a label to count
#set ( $pageCount = 0 )
#set ( $colonIndex = $paramParentPage.indexOf(":") )
#if ( $colonIndex == -1 )
#set ( $parentSpaceKey = $space.key )
#set ( $parentPageName = $paramParentPage )
#else
#set ( $parentSpaceKey = $paramParentPage.substring(0, $colonIndex) )
#set ( $parentPageNameIndex = $colonIndex + 1 )
#set ( $parentPageName = $paramParentPage.substring($parentPageNameIndex) )
#end
#set ( $parentPage = $pageManager.getPage($parentSpaceKey, $parentPageName) )
#foreach ( $child in $parentPage.descendants )
#foreach ( $childLabel in $child.labels )
#if ( $childLabel.name == $paramLabel )
#set ( $pageCount = $pageCount + 1 )
#break

#end
#end
#end
<p>Under $parentPageName there are $pageCount pages with the label $paramLabel</p>

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events