Snippets for CMIS content viewer portlet, a Liferay plugin to query and render CMIS objects from an Alfresco CMIS repository

Siguiendo con el artíclo que escribió cesar sobre el visualizador de contenidos CMIS usando groovy vamos a exponer dos ejemplos de uso que nos han parecido interesantes.

El primero consiste en mostrar un listado de todos los pdfs de una carpeta del gestor documental. Una lista con su nombre descripción y un enlace para la descarga.

Lo primero que habría que definir es la query CMIS que se va a utlizar

SELECT * FROM cmis:document WHERE cmis:contentStreamMimeType LIKE 'application/pdf'

y lo segundo el script de groovy que se va a encargar de la presentación de los objetos devueltos por la query CMIS

html.append("<table style=\"width: 640px;\">");
  html.append("<tr>");
      html.append("<th style=\"width:5%;\"></th>");
      html.append("<th style=\"width:25%;\">Nombre</th>");
      html.append("<th style=\"width:20%;\">Creado por</th>");
      html.append("<th style=\"width:20%;\">Modificado por</th>");
  html.append("</tr>");

  for (CMISObject doc : listaObjetos) {
    html.append("<tr>");
    html.append("<td><img alt=\"PDF\" src=\"/html/themes/_unstyled/images/file_system/small/pdf.png\" ></td>");
    html.append("<td><a href=\"#\">" + doc.getName() + "</a></td>");
    html.append("<td>" + doc.getCreatedBy() + "</td>");
    html.append("<td>" + doc.getLastModifiedBy() + "</td>");
    //html.append("<td>" + doc.getType().getDescription() + "</td>");
    html.append("</tr>");
  };
 
html.append("</table>");

 

 

 

El segundo ejemplo consiste en lista un conjunto de contenidos custom, es decir en el gestor de contenidos se define un modelo documental por ejemplo una noticia, que tiene una serie de propiedades personalizadas. La idea es presentar una lista de esas noticias mostrando los datos personalizados. Además en se va a usar el sistema variables para las querys de CMIS para ver como un dato de la sesión de liferay se puede usar para filtrar (en tiempo de ejecución) los datos que visualiza el usuario en el portal. En este caso solo se van a mostrar las noticias que el mismo ha creado.

Lo primero que habría que definir es la query CMIS que se va a utlizar

SELECT * FROM zylk-new:noticia WHERE zylk-new:status LIKE 'Published' AND cmis:createdBy LIKE '[$SCREENNAME$]'

y lo segundo el script de groovy que se va a encargar de la presentación de los objetos devueltos por la query CMIS

for (CMISObject obj : listaObjetos) {
    html.append("<h2>" + obj.getProperty("zylk-new:title").getValueAsString() + "</h2>");
    html.append("<br />");
    html.append(obj.getProperty("zylk-new:description").getValueAsString());
    html.append("<br />");
    html.append("<hr />");

};

 

para más información sobre el portlet contacta con nosotros

00

Más entradas de blog

Añadir comentarios