Uso del tag cms:navigation en OpenCms 8

21/02/2013       Sergio Raposo Vargas       OpenCms 8, Programación

El tag cms:navigation nos va permite mostrar los elementos navegables de nuestro sites. La forma más genérica de usar este tag es:

<cms:navigation type="treeForFolder" startLevel="1" endLevel="4" var="nav"/>
<c:forEach items="${nav.items}" var="elem">
<c:set var="link"><cms:link>${elem.resourceName}</cms:link></c:set>
<a href="${link}"
<c:if test="${nav.isActive[elem.resourceName] and !elem.navigationLevel }"> class="current" </c:if> >${elem.navText}</a>
</c:forEach>

Este tag está programado para recibir algunos parámetros que nos permiten configurar como queremos obtener la nvegación. A continuación repasamos los distintos parámetros:

  • type: indica el tipo de recorrido que queremos hacer. Hay 5 posibles valores:
    • forFolder: Obtiene la navegación de una carpeta
    • forSite: Obtiene la navegación en árbol de todo el sites. Se le puede indicar el nivel final donde parar con el parámetro endLevel.
    • forResource: Lee tanto carpetas como recursos de otro tipo que tengan navegación
    • treeForFolder: Obtiene la navegación de forma recursiva de forma que podemos indicarle dos parámetros, el startLevel y el endLevel para indicar exactamente que niveles de menú queremos
    • breadCrumb: Obtiene el rastro de miga en base a la página actual. Se le puede configurar el nivel de inicio y el nivel de fin.
  • resource: Por defecto, si este parámetro no se indica, se toma el raíz del sites como carpeta base. En el caso que queramos cambiarla, tenemos que indicar el pathBase con este parámetro.
  • startLevel: Nivel de inicio, solo válido para los tipos: treeForFolder y breadCrumb
  • endLevel: Nivel fin de navegación, solo válido para los tipos: forSite, treeForFolder y breadCrumb
  • var: Nombre de la variable donde se cargará la información para ser recorrida posteriormente. Una vez cargados los elementos de navegación debemos recorrerlos mediante el tag c:forEach <c:forEach items="${nav.items}" var="elem"> …<c:forEach>

 

También disponemos de funciones útiles para crear nuestros menús, como por ejemplo, saber si un elemento es el elemento actvio:

${nav.isActive[elem.resourceName]}
 

 OpenCms 8, taglibs, navigation