12 julio, 2014

Template Models en FreeMarker y Alfresco

Alfresco ofrece un modelo por defecto que expone un numero de objetos de raiz (root objects) que estan disponibles en un archivo de template. Este trabaja como los objetos de raiz disponibles en archivos JavaScript en Alfresco.

Puedes usar estos objetos de nivel de raiz en tus templates de FreeMarker en Alfresco e implementar varias vistas o archivos de salida.

Algunos de estos objetos de nivel de raiz son:
  • companyhome: El nodo de plantilla de Company Home
  • userhome: El nodo de plantilla del espacio home del usuario actual
  • person: El nodo de plantilla del usuario actual
  • document: El nodo de plantilla del documento actual sobre el cual el template está corriendo
  • space: El nodo de plantilla del espacio actual sobre el cual el template está corriendo
  • session: Provee un ticket de la sesión actual como el valor de session.ticket
  • url: Renderiza el context path actual del servidor web de Alfresco como url.context
  • workflow: Ofrece varias funcionalidades relacionadas con los flujos de trabajo
Estos objetos vienen con todas las propiedades que puedes usar en los archivos de template.

Cada uno de los nodos de plantilla brindan acceso a los conceptos comunes de Alfresco, tales como propiedades, asociaciones, y aspectos - estos son conocidos como Template API (similar a la JavaScript API).
  • properties: Provee el arreglo de propiedades del nodo; por ejemplo, document.properties.name
  • children: Brinda un arreglo de nodos hijos del nodo del espacio actual
    • url, downloadUrl,displayPath, qnamePath
    • isContainer, isDocument, isCategory, isLocked
    • mimetype, size, type, typeShort
    • permissions, inheritsPermissions, hasPermission
    • childByNamePath, childByXPath
    • versionHistory
El Template API ofrece una API de versiones que incluye propiedades como:
  • id, nodeRef, name
  • createdDate, creator, versionLabel, description, url
  • assignedTasks, pooledTasks, completedTasks
  • getTaskById

OJO: Se observan las similaridades entre los objetos de las API expuestas en JavaScript API y Template API, pero es importante notar que estas dos son diferentes. Si una sintaxis o propiedad trabaja bien en una de estas APIs, esto no garantiza que funcionará de la misma manera en otra la otra.

Antes de comenzar a escribir tus propias plantillas con FreeMarker, necesitas entender la sintaxis de FreeMarker. El manual de FreeMarker tiene documentación bien organizada para ayudar a entender esto. Por favor dale un vistazo http://freemarker.org/docs/

FreeMarker ofrece un rico conjunto de funciones incorporadas que puedes utilizar en tus plantillas - para ver la lista de funciones integradas de FreeMarker, consulta en http://freemarker.org/docs/ref_builtins.html

Es tambien importante familiarizarnos con algunos directivas estandares de programación - para ver la lista de directivas disponibles de FreeMarker, por favor mira http://freemarker.org/docs/ref_directives.html


No hay comentarios.:

Publicar un comentario