«

»

jun
29
2009

Site Map con OpenCMS

El segundo de los elementos reutilizables que vamos a ver es la generación de un mapa del sitio web que estamos desarrollando (Site Map para los amigos).

Utiizaremos prácticamente los mismos elementos del API usados para la miga de pan. Un ejemplo sencillo pero del que no tendremos que volver a perder tiempo en lo sucesivo, sólo en preparar los estilos de los elementos de listas anidados que genera el ejemplo.

El código del elemento de la plantilla e_SiteMap es:


<%@ page session="true" %>
<%@ page import="org.opencms.jsp.*, org.opencms.file.CmsResource, java.util.*" %>
<%!
private String nivelInterior(CmsJspNavElement elementoActual, CmsJspNavBuilder nav,CmsJspActionElement cms){
 java.lang.StringBuffer dev = new java.lang.StringBuffer();
 List navItems = null;
 navItems = nav.getNavigationForFolder(elementoActual.getResourceName());
 Iterator i = navItems.iterator();
   dev.append("<ul>");
 while( i.hasNext() ) {
  CmsJspNavElement navElementInt = ( CmsJspNavElement )i.next();
    String link = cms.link( navElementInt.getResourceName() );
    String titulo = navElementInt.getNavText();
  dev.append("<li><a href="" + link + "">" + titulo + "</a>");
  if (navElementInt.isFolderLink())
    {
     dev.append(nivelInterior(navElementInt,nav,cms));
    }
  dev.append("</li>");
    }
   dev.append("</ul>");
 return dev.toString();
}
%>
<%
try{
 CmsJspActionElement cms = new CmsJspActionElement( pageContext, request, response );
 CmsJspNavBuilder navigation = cms.getNavigation();�
 out.println(nivelInterior(navigation.getNavigationForResource("/"),navigation,cms));

}
catch (Exception e){
 for (int x=0;x<e.getStackTrace().length;x++)
 {
  out.println(e.getStackTrace()[x].toString());
 }
}

%>

Enlace permanente a este artículo: http://blog.jromay.es/2009/06/29/site-map-con-opencms/

Deja un comentario

Tu email nunca se publicará.

Puedes utilizar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>