Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

How to hide/show content in a wiki page

Wikified August 11, 2011

Other than the hide-if or toggle-cloak macros, is there a way to hide part of a wiki page based on a condition. In this case I want to display one link if the page has a child page and a different link if there is no child page.

The hide-if macro can be set based on a page label value, so if there were a way to toggle the page label that might work.

4 answers

1 accepted

0 votes
Answer accepted
David Peterson
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.
August 11, 2011

Just FYI, the above would be several times faster with the following reporter instead:

{local-reporter:page:children}
  {text-sort:content:title}
  {local-reporter}

{local-reporter} is much faster than {content-reporter}

However, to get a single 'if has child' type query, I'd suggest this instead:

{report-block}
  {local-reporter:page:children}
  {report-header}Has children{report-header}
  {report-empty}Doesn't have children{report-header}
{report-block}

The reason for using {report-header} instead of {report-body} is that the {report-body} will be output for every child, not just if there is 'one or more'.

0 votes
Kevin Buchs
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.
August 11, 2011

I was thinking of the reporting plugin. You can have it generate a link to a child page and other specified content if there is no child page. If this will work, then I can give an example.

{report-block}

{content-reporter:space=@self|types=+page|scope=@self > children}

{text-sort:content:title}

{content-reporter}

{report-body}Child Exists: {report-info:page:title|link=true} \\

{report-body}

{report-empty}No Child: [Go here instead|MyOtherPage]{report-empty}

{report-block}

This does these things

  1. get a list of all children pages of the current page
  2. sort them by their title
  3. for each one found, output its title as a hyperlink to that child page
  4. if none are found, put out a link to MyOtherPage.
Wikified August 11, 2011

Sure - please provide an example.

Thanks!

Kevin Buchs
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.
August 11, 2011

see above.^^

0 votes
Kevin Buchs
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.
August 11, 2011

Do you want the link to point to the child page, if there is one?

0 votes
Jo-Anne MacLeod
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.
August 11, 2011

Take a look at Adaptvists [Theme macro plugin|https://www.adaptavist.com/display/Builder/Macros], specifically builder-show/builder-hide, I believe that it will do what you want.

We use it when we want to display a warning if a user is not logged into Confluence yet.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events