COMO MODIFICAR LA PAGINACIÓN POR DEFECTO DE LISTADOS EN LIFERAY 6.2

Como modificar la paginación por defecto de listados en Liferay

Una entrada corta, pero que puede ser muy útil, ya que puede hacernos ganar tiempo a la hora de, por ejemplo, buscar un contenido, una plantilla, una estructura, etc., en uno de los típicos listados que nos muestra Liferay. Así que en esta ocasión veremos como modificar la paginación por defecto de listados en Liferay.
Lógicamente, podemos hacer uso de la utilidad de buscar…, pero por experiencia, no siempre nos devuelve el resultado que se espera (al menos hasta la versión 6.2) y se hace necesario buscar página a página por los listados. Por defecto, Liferay establece un máximo de 75 elementos a la hora de paginar un listado:
Como modificar la paginación por defecto de listados en Liferay 6.2. Rangos por defecto para listados
Esto sin embargo, es muy fácil de cambiar, como puede verse en la anterior figura, donde se muestra un valor de 200 elementos por página, que además, hemos hecho que sea el rango a mostrar por defecto.
Para lograrlo, editamos el fichero portal-ext.properties que encontraremos en /webapps/ROOT/WEB-INF/classes (usando Tomcat como servidor de aplicaciones). Añadimos estas líneas:

Finalmente, reiniciamos el servidor de aplicaciones. Puede verse una muestra del resultado en la siguiente imagen:
Como modificar la paginación por defecto de listados en Liferay. Nuevos posibles rangos para la paginación del listado

Otros posibles usos

Sin embargo, tal vez no nos hayamos percatado de los rangos de listados que aparecen en Liferay: a todos ellos afecta este cambio. Ejemplo: el publicador de contenidos permite mostrar un número determinado de contenidos, seleccionables en su configuración. También quedaría afectado este rango tal como se indica en este otro artículo:
LIFERAY. VER UN CONTENIDO WEB COMPLETO EN UN PUBLICADOR DE CONTENIDOS DE OTRA PÁGINA
Otro ejemplo. En Liferay 6.2 nos vamos a [Panel de control]/[Configuración]/[Administración del servidor]/[Niveles de trazas], accederemos a todas las clases Java que usa Liferay y son monitoreadas para lanzar trazas y en el nivel que se indican. Lógicamente podemos buscar pero veremos que aquí también tenemos rangos de listados que quedarán afectados por el cambio sugerido en este artículo.
Nada más, saludos cordiales y hasta la próxima.

INTEGRAR IMAGEMAGICK CON LIFERAY 6.2

Integrar Imagemagick con Liferay

A fecha de hoy, Liferay utiliza un software llamado PDFBox para realizar previsualizaciones de documentos que pueden apreciarse si subimos un documento .pdf a Documentos y Multimedia. Es por eso que esta entrada está dedicada a integrar Imagemagick con Liferay.
En el log de arranque de Liferay, podemos apreciar un texto similar (todo depende de nuestra versión de Liferay) a:
Liferay is not configured to use ImageMagick for generating Document Library previews and will default to PDFBox. For better quality previews, install ImageMagick and enable it in portal-ext.properties.
Donde se nos insta a utilizar ImageMagick como alternativa a PDFBox para obtener unas previsualizaciones mejores. El proceso está descrito en la documentación online de la comunidad de Liferay, como puede verse aquí.
Sin embargo, el proceso de integración de ImageMagick con Liferay, puede no ser tan simple como se indica en el citado artículo, teniendo en cuenta además, que han habido bugs relacionados, aunque solucionados en versiones más recientes.
Describo en esta entrada el proceso de integración, de una forma más detallada para evitar posibles quebraderos de cabeza, aunque orientado a sistemas windows, por ser la plataforma más extendida.

Instalando GhostScript e Imagemagick

El primer paso es descargar e instalar GhostScript.
Integrar Imagemagick con Liferay. Ghostscript download
Seleccionamos la opción indicada y en la siguiente pantalla…
Integrar Imagemagick con Liferay. Ghostscript Licencias
Pulsamos en la versión adecuada para descargar el fichero conveniente para nosotros…
Instalamos GhostScript en el lugar que queramos. Una vez instalado, añadimos la ruta hasta la carpeta bin (ejemplo: $RUTA_INSTALACIÓN_GHOSTSCRIPT/GS9.14/BIN), en la variable de entorno PATH. Con esto facilitamos el acceso a GhostScript.
Hecho esto, vamos al segundo paso que es instalar ImageMagick. Descargamos el software adecuado para nosotros, de alguno de los mirrors indicados en la siguiente página, o bien un instalador (más cómodo): http://www.imagemagick.org/script/binary-releases.php#windows.
Si nos hemos decidido por la primera opción, de entre todas las posibilidades, pulsamos en la que necesitamos (en este caso, windows). Aparece otra pantalla ofreciéndonos diferentes opciones. Elegiremos la indicada para nosotros.
Integrar Imagemagick con Liferay. ImageMagick Download Mirrors
Descomprimimos el fichero en la carpeta de nuestra elección y, al igual que hicimos con GhostScript, añadimos a la variable de entorno PATH (recordamos que hemos orientado el artículo a Windows) la ruta de la carpeta donde hemos instalado ImageMagick, para hacernos más cómodo todo el proceso. En el anterior enlace se indica como instalar y comprobar si ésta es correcta.
En este punto debemos estar seguros de que todo ha ido bien: tanto GhostScript como ImageMagick deben estar perfectamente instalados y funcionando.
Nos vamos a la carpeta donde tengamos instalado Liferay y editamos el fichero portal-ext.properties (que estará probablemente en $CARPETA_LIFERAY/WEBAPPS/ROOT/WEB-INF/CLASSES).
En este tercer paso, añadimos las siguientes líneas:

Nótense las rutas con dobles barras y que se indican tanto la ruta a la carpeta bin de GhostScript, como la ruta de instalación de ImageMagick.
En el cuarto paso, arrancamos nuestro Liferay y, logados como administrador nos vamos al Panel de Control:
Integrar Imagemagick con Liferay 6.2. Menú de Administración de Sitio Actual
Seguidamente pulsamos en Administración del servidor:
Integrar Imagemagick con Liferay 6.2. Panel de Control. Administración del servidor
Pulsamos en Servicios externos, nos aseguramos de activar la casilla de verificación correspondiente y poner las rutas (tanto la ruta a la carpeta bin de GhostScript como a la carpeta de instalación de ImageMagick):
Integrar Imagemagick con Liferay 6.2. Administración de servicios externos

Finalizado

Hecho todo esto, reiniciamos el servidor asegurándonos que hemos eliminado cualquier caché. Al subir un fichero .pdf por ejemplo, se nos mostrará una viñeta previsualizándolo.
Espero que este artículo ayude a integrar esta herramienta con Liferay más fácilmente. En próximas entradas veremos como lograr lo mismo con Xuggler.
Un cordial saludo y hasta otra.

ORGANIZACIONES CON PAÍS. LIFERAY 6.2.

Localizaciones de tipo organización normal con Liferay 6.2

Esta herramienta nos permite tener organizaciones con país tal y como se comportan las localizaciones. La ventaja es que además pueden tener organizaciones hijas. Las localizaciones no pueden tenerlas.
En esta entrada en particular, toco un tema que recientemente ha aparecido en uno de los proyectos en los que colaboré con Tracom Consulting S.L. en este caso. Fue necesario planificar con extremo detenimiento el sistema jerárquico que utilizará Liferay en el proyecto. Un grupo de empresas, diferentes localizaciones, organizaciones que contienen a otras, sitios web privados por organización…
Aquí Liferay se ha prestado de manera excepcional para abordar el proyecto gracias a su sistema de sitios, organizaciones, roles, usuarios, etc.
Aún así, nos encontramos con el problema de que no podíamos usar una localización para un país concreto, por el hecho de que una organización normal en Liferay no permite tener organizaciones hijas, un requisito que necesitábamos. La solución: por supuesto usar una organización.
Pero esto nos lleva a otro problema. Por defecto, Liferay no permite asignar un país a una organización normal (regular) y era un requerimiento importante.

Finalmente, organizaciones con país

Podemos modificar esto desde el fichero portal-ext.properties mediante la propiedad:

El valor entre corchetes [regular-organization], indica el tipo de organización sobre el que tendrá efecto este cambio. En este caso, la organización normal de Liferay.
Como era un requisito imprescindible, también hicimos uso de otra propiedad más, que hace que indicar el país para la organización sea necesario:

Para que los cambios realizados sobre portal-ext.properties tengan efecto reiniciamos el servidor de aplicaciones, como siempre.
El proyecto nos exigía igualmente obtener el país asignado a la organización, desde un contenido web, por lo que desde una plantilla Velocity, teníamos que obtenerlo:

Teniendo en cuenta que existen variables en el contexto de Velocity que están reservadas en los contenidos web, modificamos otra de las propiedades de portal-ext.properties (con el correspondiente reinicio del servidor de aplicaciones):

Con esto, ya no estarán restringidas y todo lo que necesitábamos quedará cubierto.
Importante:

A partir de la versión 6.2, la propiedad journal.template.velocity.restricted.variables ya no existe.
Actualización realizada el 22/01/2015

La propuesta para sustituir la anterior línea obsoleta es esta:

Organizaciones con paísHasta la fecha solamente una entrada adorna este blog. La siguiente entrada pretendía ser una apología al software libre y un reconocimiento público hacia la herramienta Liferay. Sin embargo, he preferido desestimar la idea y reservar esa entrada para otro momento aunque ello suponga tardar un poco más en publicar una nueva entrada. Quería ofrecer algo práctico, útil, que es para lo que realmente decidí crear el blog.

Un cordial saludo y hasta otra ocasión.