How to display a panel only on a particular page?

Version 10.2 by Eduard Moraru on 2016/06/08

As a user which wants to display a panel (e.g. with some links) only on a particular page (e.g. on "Main.WebHome") you must follow the following:

1. Create or edit the panel

Make sure that the panel's code resembles the following:

{{velocity}}
#if ($doc.fullName == "Main.WebHome")
 #panelheader($services.localization.render('xe.panels.quicklinks'))
  * [[News>>Blog.News]]
  ** [[Iasi>>Blog.Iasi]]
 #if ($xwiki.hasAdminRights())
  [[$services.localization.render('xe.panels.edit')>>path:${xwiki.getURL('Panels.newtwo', 'inline')}]]
 #end
 #panelfooter()
#end
{{/velocity}}

The pages Blog.News and Blog.Iasi (from this example) should already exist, otherwise the links will point to non-existing pages.

The key to deciding if a panel should be displayed or not on a page is the following condition in the code which (in this case) decides that the panel should only be displayer on the homepage:

#if ($doc.fullName == "Main.WebHome")
... panel content here ...
#end

The final panel creation should resemble the following:

newpanel.png

2. Register the panel

Add the panel to the desired column (e.g. to the right column) from Administration > Page Elements > Panels displayed on right column:

addpaneltocolumn.png

3. Navigate to Main.WebHome to see the panel displayed only on the homepage

pageshownonmain.png

In the our example, we have used Main.WebHome as the page where to display the panel but you can use any other page or pages from your wiki and you can make the rule as complex as you want.

Tags:
   

Get Connected