Tutorial: taglibs

10/02/2010       Sergio Raposo Vargas       Manuales y tutoriales

cms:user

Este taglib nos proporciona información del usuario logado en OpenCms.
• Uso: <cms:user property="firstname"/>
• Propiedades que puede mostrar:
“name”: Login del usuario
"firstname": Nombre
"lastname": Apellido
"email": Dirección de email
"street": Calle
"zip": Código postal
"city": Ciudad
"description": Descripción
"otherstuff": Pareja key/valor

cms:template

Define bloques de código dentro de una JSP a incluir por otras páginas mediante el
<cms:include>.
• Uso:
<cms:template element="head">
<!—código-->
</cms:template>

cms:include

Se utiliza para incluir archivos del OpenCms VFS dinámicamente en tiempo de
ejecución.
• Atributos:
page|file: Nombre del archivo incluido.
property: Nombre de una propiedad del JSP, que a su vez especifica el
nombre del archivo incluido.
attribute: Clave de la entrada en la hashtable de request, correspondiente
al nombre del archivo incluido.
element: Si la JSP incluida está dividida en elementos mediante el tag
cms:template, solo el elemento especificado de la JSP será incluido. El
atributo element es tratado como un parámetro adicional de request.
suffix: Agrega un sufijo al nombre del archivo.
cachable: Si es false, el archivo incluido no será cacheado por
Flexcache.
• Uso:
Incluir un elemento de la plantilla
<cms:include property="template" element="head" />
Incluir una jsp
<cms:include file="ruta/relativa">
<cms:param name="parametro">parametro</cms:param>
</cms:include>

cms:link

Crea un enlace a una URL de OpenCms interna, permitiendo colocarlas sin necesidad
de agregar el nombre del contexto manualmente.
• Uso
<cms:link>index.html</cms:link>
El tag <cms:label>
Nos permite acceder a propiedades del workplace de OpenCms para textos con multiidioma.
• Uso:
<cms:label>flex.cache.label.title</cms:label>

cms:contentload

Se utiliza para cargar recursos de OpenCms. Dependiendo de los atributos que se le
pasen los cargará de una forma u otra, todos o sólo hasta cierto número.
• Atributos:
collector: Colector para leer los archivos xml. Los colectores existentes son:
singleFile, allInFolder, allInFolderDateReleaseDesc, allInFolderNavPos,
allInSubTree, allInSubTreeDateReleasedDesc, allInSubTreeNavPos,,
allInFolderPriorityDateDesc, allInFolderPriorityTitleDesc,
allInSubTreePriorityDateDesc , allInSubTreePriorityTitleDesc.
param: Da información al colector sobre los recursos a leer. El formato es:
[filename]|[resource type]|[count]
filename: nombre del recurso a leer, se puede usar el macro
%(number) que reemplaza por el siguiente número.
resource type: tipo del recurso
count: recursos a leer
editable: Si soporta el direct edit
preload: Define si el colector precarga los elementos, sirve ver si hay
algún elemento.
• Uso:
Lectura de un fichero
<cms:contentload collector="singleFile" param=“%(opencms.uri)"
editable="true">
...
</cms:contentload>
Lectura de un listado de ficheros
<cms:contentload collector="${property.collector}" param="${property.xmlcontent}
article_${number}.html|11" editable="true" preload="true">
...
</cms:contentload>
Lectura con precarga:
<cms:contentload collector="${property.collector}" param="${property.xmlcontent}
article_${number}.html|11" editable="true">
<cms:contentinfo var="info" />
<c:if test="${info.resultSize > 0}">
<cms:contentload>
……
</cms:contentload>
</c:if>
</cms:contentload>

cms:contentloop

Un recurso puede tener campos múltiples, este tag itera sobre cada uno de los valores
de los elementos.
• Atributos:
element: nombre del item sobre el que iterar
• Uso:
<cms:contentloop element="Teaser">
...
</cms:contentloop>

cms:contentshow

Se utiliza para mostrar el valor de los campos del contenido xml.
• Atributos:
element: nombre del item del que se quiere mostrar el valor.
index: cuando un elemento tiene múltiples calores se puede indicar
utilizando su índice.
• Uso:
Para mostrar el campo title:
<cms:contentshow element="Title" />
Para mostrar la segunda ocurrencia de title:
<cms:contentshow element="Title[2]" />
<cms:contentshow element="Title" index="2"/>
Mostrar todas las ocurrencias de Title
<cms:contentloop element=“Title">
<cms:contentshow />
</cms:contentloop>
El tag <cms:contentinfo>
Se utiliza para obtener información sobre la lista de recursos que se obtiene en el
<cms:contentload>
• Atributos:
var:Define el nombre para acceder el bean de contentinfo.
scope:Define el scope utilizado para almacenar el bean de contentinfo. El valor
por omisión es page.
value:Es un valor macro para acceder a un valor simple del bean. Los valores
provistos por dicho bean son:
name.pageIndex: Índice de la página actual.
name.pageNavEndIndex:Índice de la última página.
name.pageNavStartIndex: Índice de la primer a página
name.resultSize: Número total de recursos.
• Uso:
<cms:contentinfo var="info" />
<c:if test="${info.resultSize > 0}">

cms:property

Nos permite acceder a las propiedades del archivo actual o uno que se le pase como
parámetro o las carpetas contenedoras de los mismos.
• Atributos:
name: nombre de la propiedad.
file: indica dónde leer la propiedad
uri (default): busca la propiedad en el archivo correspondiente a la uri.
search.uri o search: busca la propiedad en todas las carpetas contenedoras,
comenzando con el archivo, y yendo hacia arriba del árbol si no la encuentra.
element.uri: busca la propiedad en el sub-elemento procesado actualmente.
search.element.uri: busca la propiedad en todas las carpetas contenedoras,
comenzando con el archivo del sub-elemento procesado actualmente, y yendo
hacia arriba del árbol si no la encuentra.
{some-file-uri}: busca la propiedad en el archivo exacto del OpenCms VFS.
• Uso:
Leer la propiedad del archivo actual
<cms:property name="Title" />
o también
<cms:property name="Title" file="uri" />
Leer del archivo actual o las carpetas contenedoras
<cms:property name="Title" file="search" />
o también
<cms:property name="Title" file="search.uri" />
Leer de un archivo en concreto
<cms:property name="Title" file="/index.html" />