Recorrer recursivamente un espacio con Freemarker

cancel
Showing results for 
Search instead for 
Did you mean: 
fegor
Senior Member

Re: Recorrer recursivamente un espacio con Freemarker

Consejo, mejor usad JavaScript para todo el recorrido ya sea recursivamente o no y pasáis el recorrido en "model" a la plantilla FreeMarker, se ahorran muchos quebraderos de cabeza…  :lol:

Se tiende a intentar "codificar" en FreeMarker como si de un lenguaje de scripting se tratase y no es así.

Un saludo.
berenicestr69
Member II

Re: Recorrer recursivamente un espacio con Freemarker

Gracias!!


Muchas gracias, habeis sido de gran ayuda!!! La he adaptado y funcionando correctamente!!! y pasandolo como model el objeto.


Por cierto, tengo una duda mientras intentaba adaptarla, he intentado realizar un import por ejemplo:  import java.util.ArrayList; al principio en la primera linea, y me salta excepción, no me lo reconoce…

No se pueden añadir import de clases predefinidas??

Muchas gracias, un saludo!
berenicestr69
Member II

Re: Recorrer recursivamente un espacio con Freemarker

Sois de gran ayuda…

Smiley Wink
cristinamr
Advanced

Re: Recorrer recursivamente un espacio con Freemarker

Buenas berenicestr69.

Disculpa la tardanza en responder. En contestación a tu pregunta: En javascript no puedes importar como en java clases por eso te lanza esa excepción. He visto que has intentado importar el java.util.ArrayList: Si lo que quieres es hacer una array, en JS se hace poniendo directamente lo siguiente:

var tabla1 = new Array();

De todas formas, si no sabes mucho de JavaScript ojéate éste manual online y también ten a mano siempre la API de JavaScript del propio Alfresco Smiley Wink

De todas formas, sé que se pueden importar clases de java en JS por el tema de que RHINO te lo permite, para más información consulta esta página. Exactamente esta página creo que te servirá de ayuda. Te resalto la parte de importación de clases:

If your scripts access a lot of different Java classes it can get awkward to use the full package name of the class every time. Rhino provides a top-level function importPackage that serves the same purpose as Java's import declaration. For example, we could import all of the classes in the java.io package and access class java.io.File using just the name File:

importPackage(java.io)
File [JavaClass java.io.File]


Un saludo!!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
nemrp
Member II

Re: Recorrer recursivamente un espacio con Freemarker

Hola CristinaMR.

He probado el código de recorrido y me ha funcionado perfectamente en un Alfresco 3.4.0. Pero me planteo dos cuestiones que no consigo solucionar (estoy empezando en el desarrollo de plantillas). La primera es si se puede hacer uso de la plantilla llamando a otro espacio que no sea el que hace uso de la plantilla. Y la segunda es si es posible volcar el resultado (la tabla html) en un archivo (excel mejor, pero si no puede ser pues en uno de texto -plano o no-).

Un saludo y muchas gracias CristinaMR.
nemrp
Member II

Re: Recorrer recursivamente un espacio con Freemarker

Vale, ya he conseguido indicar el espacio donde quiero que empiece a funcionar el código de la plantilla. Se realiza con la siguiente línea:


companyhome.childByNamePath["XXXXXX"]

Entendiendo "XXXXXX" coo el nombre del espacio donde se quiere empezar.

Ahora me queda resolver el guardado de la documentación en un archivo, que no se si se podrá hacer.
cristinamr
Advanced

Re: Recorrer recursivamente un espacio con Freemarker

Muy buenas.

Claro que se puede ^^ , de hecho si vas a empezar a trastear los ftls un consejillo: Ten siempre cerca el cookbook de templates de Freemarker que hay publicado en la wiki de alfresco (aquí).

En respuesta a tus preguntas:

1. Puedes hacerlo directamente con el ChildByName (o el childByNamePath que no lo recuerdo bien) o puedes hacerlo con lucene tal que así:

<table>
<#list companyhome.childrenByLuceneSearch["TEXT:alfresco* AND TEXT:tutorial*"] as child>
    <tr><td><a href="/alfresco${child.url}" target="new">${child.properties.name}</a></td></tr>
</#list>
</table>

De hecho, ese ejemplo es el que se llama Using Lucene Full-Text Search aunque tienes varios en la wiki, todo es cuestión de ir viendo cual te va bien y probar (vamos lo que viene siendo el treasteo Smiley Very Happy).

A lo segundo, tengo que investigar… Dame tiempo y te comento  :mrgreen:  (ya también por culturilla general).

Te comento cuando de con algo =)
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
cristinamr
Advanced

Re: Recorrer recursivamente un espacio con Freemarker

No he encontrado nada referente a ftl sin embargo sí que he leído mucho de webscripts. Me da que es porque no se puede hacer porque a fin de cuentas es una plantilla. ¿No puedes hacer un js? ¿O crearte una acción usando POI para darle formato al excel?  :roll:
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
nemrp
Member II

Re: Recorrer recursivamente un espacio con Freemarker

de hecho si vas a empezar a trastear los ftls un consejillo: Ten siempre cerca el cookbook de templates de Freemarker que hay publicado en la wiki de alfresco (aquí).
Si, es lo que he estado usando para ir añadiendo funcionalidad (que muestre más datos) a la plantilla.

1. Puedes hacerlo directamente con el ChildByName (o el childByNamePath que no lo recuerdo bien)
Es "childByNamePath", tal y como puse en en post anterior. Lo de lucene está interesante también.

No he encontrado nada referente a ftl sin embargo sí que he leído mucho de webscripts. Me da que es porque no se puede hacer porque a fin de cuentas es una plantilla. ¿No puedes hacer un js? ¿O crearte una acción usando POI para darle formato al excel?
Eso mismo me ha pasado a mi. No he encontrado nada. Supongo que tendrá que ver también con lo que dice más arriba fgonzalez.

Consejo, mejor usad JavaScript para todo el recorrido ya sea recursivamente o no y pasáis el recorrido en "model" a la plantilla FreeMarker, se ahorran muchos quebraderos de cabeza… :lol:

Se tiende a intentar "codificar" en FreeMarker como si de un lenguaje de scripting se tratase y no es así.
En cualquier caso, si que puedo usar webscripts, aunque aún no he hecho ninguno y no se cómo funcionan exactamente. Elegí la opción de hacerlo con ftl por su sencillez. Y con lo de POI me pasa algo parecido. Realmente lo que buscada es desarrollar el recorrido de espacios de manera rápida y sin que tuviera que estar una semana (o más)con ello. ¿Podría hacerlo con webscripts rápido y sencillo?.

Un saludo y muchas gracias CristinaMR.
cristinamr
Advanced

Re: Recorrer recursivamente un espacio con Freemarker

Mejor Javascript Smiley Very Happy Rápido, sencillo y para toda la familia jaja

Hace unos meses hice un tuto de js, para aprender a ejecutar un script y a usar la consola de debug nativa de alfresco.. Creo que te vendrá de perlas. Pincha aquí y le echas un vistazo. Vamos siempre que tengas dudas pregunta sin problemas que todo el mundo empezamos igual  :mrgreen: 

El script de ejemplo que viene en ese capitulo recorre y te guarda un log en txt… Hace algún tiempo vi cómo se guardaba en xls, a priori, si cuando creas el txt lo llamas nombre_log.xls te lo debería crear sin problemas (ojea este post por si te sirve en un futuro cercano).

¡Un saludo!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc