Configure a Guided Drill Path

Introduction

Goal

Configure a guided drill path in a faceted tree.

Background

By default, the way in which the facets in a faceted tree are traversed is completely free. Facets can be combined in any order and it is even possible to select the same facet multiple times to combine different values of the that facet.

For use cases which require a more restricted navigation, it is possible to configure guided drill paths.

Configuration

To restrict the order in which facets become available for selection, add the after parameter to a facet name in hippofacnav:facetnodenames to configure after which selected facet it should become available.

Month${after:'Year'}

To hide a facet when a facet is selected, add the hide parameter to hippofacnav:facetnodenames:

Month${hide:'Year'}

The hide parameter accepts multiple values:

Month${hide:['Month', 'Year']}

Example

Suppose you have a standard implementation project created from the Maven archetype with the News feature added.

You have configured a faceted tree with three human-readable date facets: Year, Month, and Day (of the Month).

You only want Month to become available after Year has been selected, and Day to become available after Month has been selected. You also want to leave out redundant facets.

This can be achieved by adding the after and hide configuration parameters to the relevant values of hippofacnav:facetnodenames:

/content/documents/myproject:
  /faceted-news:
    jcr:primaryType: hippofacnav:facetnavigation
    hippo:docbase: d2b1775c-fb97-4080-bd66-ede4ac874b5a
    hippofacnav:facets: [ myproject:date$year,\
      \ myproject:date$month,
      \ myproject:date$day ]
    hippofacnav:facetnodenames: [ "Year${hide:'Year'}",\
      \ "Month${after:'Year', hide:['Month','Year']}",\
      \ "Day${after:'Month', hide:['Day','Month','Year']}" ]

The result is a faceted tree as in the example below:

/content/documents/myproject:
  /faceted-news [30]:
    /Year [27]:
      /2016 [18]:
        /Month [18]:
          /8 [9]:
            /Day [9]:
              /12 [3]:
              /17 [3]:
              /23 [3]:
              /hippo:resultset [9]:
            /hippo:resultset [9]:
          /9 [6]:
          /6 [3]:
          /hippo:resultset [18]:
        /hippo:resultset [18]:
      /2017 [6]:
      /hippo:resultset [27]:
    /hippo:resultset [30]:

 

To make the navigation even more user-friendly you can combine this with sorting on facet values:
    hippofacnav:facetnodenames: [ "Year${hide:'Year', sortby:'facetvalue', sortorder:'descending'}",\
      \ "Month${after:'Year', hide:['Month','Year'], sortby:'facetvalue', sortorder:'descending'}",\
      \ "Day${after:'Month', hide:['Day','Month','Year'], sortby:'facetvalue', sortorder:'descending'}" ]

 

Did you find this page helpful?
How could this documentation serve you better?
On this page
    Did you find this page helpful?
    How could this documentation serve you better?