XIN Mods Admin Panels

Extends Bloomreach XM with easy to use XIN Mods Admin Panels.

Hero background

XIN Mods makes it easier to integrate external tools into the CMS by offering a number of easy to use integration points:

  • Adding buttons to the document toolbar
  • Adding a plugin to the dashboard
  • Adding an administrator panel
  • Adding a reporting panel

What follows is a description of the configuration structures required to create these extension points. Once you have set them up, you can easily create a package to their paths that will allow you to reimport them when you desire.

TOOLBAR PLUGIN

Adding a button to the toolbar of the default workflow can be as easy as following the steps below. Go into the CMS's console and navigate to the path below and add a new node with the following structure:

  • /hippo:configuration/hippo:workflows/default/handle/frontend:renderer

Structure:

toolbar-option1/
    jcr:primaryType = frontend:plugin
    wicket.id = ${item}
    plugin.class = nz.xinsolutions.extensions.XinInjectionToolbarPlugin
    
    # Where to go if the menu item is clicked
    action = http://url/to/go/to?path={path}
    
    # If specified, will show in submenu with that title
    submenu = SubMenuName
    
    title = Label on button
    
    icon = enumeration string from Icon class (default: GEAR)
    
    publishedOnly = true|false
    
    # Only show the option sometimes
    types[] = xinmods:product 

Find a list of possible values for the icon field here.


CONTENT PROPERTIES

The remaining extension points have a common approach to injecting content. Assume the different plugin types below all share these properties.

  • html = 'HTML to render'
  • js = 'Javascript to write on the page'
  • headCSS[] = one or more urls to stylesheets (will be rendered in <head/>)
  • headJS[] = one or more urls to javascripts (will be rendered in <head/>)

DASHBOARD PLUGIN

To add a widget to the dashboard add a node here: /hippo:configuration/hippo:frontend/cms/cms-dashshortcuts

Using the content properties described above create a node as follows:

  • jcr:primaryType = frontend:plugin
  • plugin.class = nz.xinsolutions.extensions.XinInjectionPlugin

ADMIN PANEL

To add an administration panel add a node here: /hippo:configuration/hippo:frontend/cms/cms-admin

Using the content properties described above create a node as follows:

  • jcr:primaryType = frontend:plugin
  • plugin.class = nz.xinsolutions.extensions.XinInjectionAdminPanelDefinition
  • title = Title of admin panel
  • help = Description of admin panel
  • icon = URL to icon for admin panel

REPORTING PANEL

To add a reporting panel add two nodes here: /hippo:configuration/hippo:frontend/cms/hippo-reports

First of all a report definition node (eg. my-new-report) -- it does not need any of the injection properties:

  • jcr:primaryType = frontend:plugin
  • plugin.class = nz.xinsolutions.extensions.XinInjectionReportDefinition
  • service.id = service.report.my-new-report
  • title = Title of reporting panel
  • help = Description of reporting panel
  • icon = URL to icon for reporting panel  

Secondly a report panel plugin node (eg. my-new-report-plugin) -- this one contains the injection properties.

  • jcr:primaryType = frontend:plugin
  • plugin.class = nz.xinsolutions.extensions.nz.xinsolutions.extensions.XinInjectionReportPlugin
  • wicket.id = service.report.my-new-report
  • html = <something to inject>
  • js = 
  • headJS =
  • headCSS =