[All Adaptavist Apps]
The builder-show macro is
Excerpt |
---|
used to show content in specific contexts, modes and other filters |
Code Block |
---|
{builder-show:mode=view|context=page|label=meetings|metadata=mykey:myvalue}
stuff to show
{builder-show}
|
...
Property | Required | Default | Notes | Theme Panels Only | Ver | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
decorator | all decorators | n/a | Only show the content when a specific decorator us being used, eg. "printable", etc. |
| |||||||||
action | all actions | n/a | Only show the content for specific action(s), eg. "viewpage". NB: The ".action" part of the action name should not be included. |
| 3.0 | ||||||||
context | all contexts | n/a | Only show the content for specific context(s), eg. "page", "global", etc. |
| |||||||||
mode | all modes | Only show the content for specific modes, eg. "view", "edit", etc. |
| ||||||||||
space | n/a | Only show the content if a specific space (referred to by the Space Key) exists. |
|
| |||||||||
pagespacekey | n/a | current space | The space against which permission checks will be made. Default is current spaceOnly show the content if a specific page (referred to by the page title) exists. |
|
| ||||||||
titlepagetitle | n/a | current page | the page against which permission checks will be made. Default is current pageOnly show the content if the current page has a specific title |
|
| ||||||||
labelexists | n/a | Only show the content if the the current location (page, news, etc) has the specified label(s), eg. "my:favourite", "meetings", etc.a specific page (referred to by the page title) exists. @parent can be used to show data if the page is not at the root level, @child can be used to show data if the page has children. |
|
| |||||||||
spaceLabelspluginkey | n/a | The key of a plugin which must be enabled for the content to be shown |
|
| |||||||||
hastitle | n/a | Only show the content if the current page has a specific title |
|
| |||||||||
label | Only show the content if the the current space has the specified label(s), eg. "meetings", etc. |
| 3.0 | teamLabels | n/a | Only show the content if the the current space location (page, news, etc) has the specified team label(s), eg. "sales,marketingmy:favourite", "meetings", etc. |
| 3.0 | |||||
metadataspacelabel | n/a | Metadata associated with Only show the content if the the current location in the format: "myKey1:myValue1space has the specified label(s), eg. "meetings", etc. |
| 3.0 | |||||||||
userteamlabel | All users | n/a | Only show the content if the the current space has the specified team label(s), eg. "sales,marketing", etcA comma separated list of usernames. Use |
| 3.0 | ||||||||
groupmetadata | n/a | Metadata associated with the current location in the format: "myKey1:myValue1, myKey1:myValue1, etc". when checking for a key with a specific value. To check for the existance of metadata with any value supply a commas separated list of key names, eg: "mykey1, mykey2, mykey3" or mix & match "mykey1, mykey2:myvalue2" |
|
| |||||||||
user | n/a | Matches against the current user (NB: modified by withuser) - A comma separated list of usernames. Use | All groups | A comma separated list of user groups. Use |
| 3.0 | permission | Any permission | A comma separated list of permissions: |
| 3.0 | ||
recursewithuser | false | @current | username that user/group/permission checks should be run against. This includes @anonymous, @creator, @author, @current Should parent pages (if applicable) be checked for title, labels and metadata? |
| 3.0 |
While none of the parameters are mandatory, you must specify at least one of them for this macro to work.
You can specify multiple values for any parameter, for example:
Code Block |
---|
{builder-show:mode=view,edit|context=page,blogpost}
stuff to show
{builder-show}
|
In the example above, "stuff to show" would only be shown if the content is being shown in "view" or "edit" mode and is also either a "page" or "blogpost".
You can determine the context and mode for any page by viewing the page source using your browser. A HTML comment output at the top of all pages shows the context and mode for each page.
...
If you view the HTML source of this web page you'll see the following:
No Format <!-- main.vmd themebuilder : 'com.adaptavist.confluence.sitebuilder.SiteBuilderVelocityHelper@524c9770'/'$themebuilder.initialise' spaceKey : 'USERGUIDE' pageId : '10583' currentURL : '/pages/viewpage.action?spaceKey=USERGUIDE&title=builder-show+macro&focusedCommentId=11666379' contextPath : '' spaceName : 'User Guides' decorator : '$decorator' printable : 'false' mailId : '$mailId' mode : 'view' context : 'page' -->
2.2 | |||||
group | n/a | A comma separated list of user groups that the current user (NB: modified by withuser) should be a member of |
| 3.0 | |
---|---|---|---|---|---|
permission | n/a | A comma separated list of permissions:
|
| 3.0 | |
recurse | false | Should parent pages (if applicable) be checked for title, labels and metadata?
|
| 3.0 | |
restriction | n/a | display content if the page has a restriction in place (none/view/edit/vieworedit/viewandedit - recursable) |
| 3.0 | |
useragent | n/a | A comma separated list of tokens to match against the user agent string of the requesting browser. | 3.2.1 | ||
attachment | n/a | comma separated list of filenames, one of which must be attached to the current page for the content to be displayed. | 3.2.2 | ||
olderthan | n/a | Content is shown if the current page was modified before the given time period from the current date. The date is shown in this format: olderthan=1y6m1d1h (year/month/day/hour) |
| 3.3.0 | |
newerthan | n/a | Content is shown if the current page was modified after the given time period from the current date. The date is shown in this format: newerthan=1y6m1d1h (year/month/day/hour) |
| 3.3.0 | |
flag |
| Content is shown if one or more of the specified flags are set. See Working with Flags for more details. | 3.3.6 | ||
notflag |
| Content is shown if none of the specified flags are set. See Working with Flags for more details. | 3.3.6 |
While none of the parameters are mandatory, you must specify at least one of them for this macro to work.
You can specify multiple values for any parameter, for example:
Code Block |
---|
{builder-show:mode=view,edit|context=page,blogpost}
stuff to show
{builder-show}
|
In the example above, "stuff to show" would only be shown if the content is being shown in "view" or "edit" mode and is also either a "page" or "blogpost".
You can determine the context and mode for any page by viewing the page source using your browser. A HTML comment output at the top of all pages shows the context and mode for each page.
Expand | ||||
---|---|---|---|---|
| ||||
If you view the HTML source of this web page you'll see the following:
|
You can specify multiple contexts and modes by separating them with commas as shown in the usage example earlier. For the macro content to show, all contexts and modes specified must match.
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
You can specify multiple contexts and modes by separating them with commas as shown in the usage example earlier. For the macro content to show, all contexts and modes specified must match.
Expand | Display content on news items | Display content on news items | ||
---|---|---|---|---|
| ||||
Expand | ||||
Display content on pages and news items | Display content on pages and news items |
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
| Specific modes within specific contexts | Specific modes within specific contexts |
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
Expand | ||||
| ||||
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
| ||||||
Expand | ||||||
Display content based on existence of a page | Display content based on existence of a page |
| ||||
Expand | Display content if the page has a parent | Display content if the page has a parent | ||||
| ||||||
Expand | Display content for specific page titles | Display content for specific page titles | ||||
| ||||||
Expand | Displaying content based on metadata | Displaying content based on metadata | ||||
|
Not applicable for this macro.
You can use this macro, and the associated builder-hide macro to customise navigation and panel content depending on what the user is looking at.
When using either the mode, context or decorator parameters, remember that they only work if used within a panel of the Builder theme. If you put them inside a normal page, etc., they won't work. Even if you use the move-to macro to move something from a page in to a panel, it still won't work - the mode, context and decorator settings will only work if the macro is actually in the panel notation in the theme cofiguration settings.
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Expand | ||||
---|---|---|---|---|
| ||||
|
Not applicable for this macro.
You can use this macro, and the associated builder-hide macro to customise navigation and panel content depending on what the user is looking at.
When using either the mode, context or decorator parameters, remember that they only work if used within a panel of the Builder theme. If you put them inside a normal page, etc., they won't work. Even if you use the move-to macro to move something from a page in to a panel, it still won't work - the mode, context and decorator settings will only work if the macro is actually in the panel notation in the theme cofiguration settings.
If you need to show or hide content with more complex conditions, there are extra aliases builder-show2 -> builder-show9 which may be used for nesting.
Multiple conditions are combined in AND mode, so all of the applied conditions need to be true for the content to be shown.
To apply conditions in an OR mode you should use several copies of the show macro, each with separate conditionsIf you need to show or hide content based on the privileges within a space, use the show-if or hide-if macros that be found in the Visibility Plugin.
...