AnsweredAssumed Answered

Recorrer recursivamente un espacio con Freemarker

Question asked by cristinamr Moderator on May 19, 2010
Latest reply on Apr 13, 2011 by nemrp
Buenas.

Llevo varios días haciendo un desarrollo con Freemarker para una vista personalizada (custom view) y la verdad es que he tenido bastantes problemas a la hora de ver cómo podía recorrer un espacio recursivamente con Freemarker y que te contara el número de documentos que tiene ese espacio y sus hijos, así como el tamaño total de los mismos.
A simple vista es bastante sencillo según explico lo que quiero hacer en el desarrollo, pero todo es ponerse y darse cuenta de que para nada es sencillo, sobre todo si no estás familiarizado con el lenguaje de freemarker, no sabes muy bien como enfocarlo y apenas tener ejemplos en internet sobre esto (lo típico de buscar algo y no encontrarlo por ningun lado, vamos :P).

Estuve mirando en foros, google, y demás y nada así que aquí dejo mi granito de arena por si a alguien le sirve en un futuro (al menos que lo tenga un poco más fácil ;) ):


<#assign contador  = 0 >
<#assign tamanio  = 0 >
<#list space.childrenByXPath[".//*"]  as child>
   <#if child.isDocument>
      <#assign contador  = contador+1 >
     <#assign tamanio  = tamanio + child.size>
   </#if>
</#list>
<#assign tamanio = (tamanio/1024)/>
<#assign tamanio = (tamanio/1024)/>
<table border="0" celpadding="0" cellspacing="0">
<tr><td>Numero de docs en el espacio: ${contador}</td></tr>
<tr><td>Tamaño de los documentos: ${tamanio}</td></tr>
</table>

La idea es que metas el código en un ftl y lo ejecutes desde el mismo espacio en el que quieras ver el custom view ;)
Por cierto un apunte: Divido el tamaño dos veces entre 1024 para que te lo escale a megas sino da demasiadas cifras :S

Un saludooo!! ^^

Outcomes