LIFERAY 6.2: INTRODUCCIÓN A LA HERRAMIENTA. WEBINAR GRATIS.

EN BREVE

Estoy editando la grabación del webinar para hacerlo más orientativo aún y ponerlo a disposición
de todos.


¡¡ Atentos a los próximos días !!

Logo LiferaySi no conoces Liferay, te ofrezco una oportunidad para conocer esta herramienta que cada día cuenta con mayor expansión y ofrece jugosas oportunidades laborales.

El webinar es totalmente gratuito y se desarrollará mediante la herramienta Webex, en la cual tendremos que crearnos una cuenta, igualmente gratuita. De todas formas, las personas interesadas recibirán una invitación que simplificará el proceso, siempre, sin coste para el invitado.

ATENCIÓN:

PLAZAS LIMITADAS: quedan 6 plazas libres.
FECHA: 12 de diciembre de 2016
HORA DE COMIENZO: 17:00 (Horario de España). 1 hora de duración.
PUNTOS A TRATAR:
– ¿Qué es Liferay?
– Obtener e instalar la herramienta.
– Conocimiento básico de la interfaz.
– Creación de un sitio web básico.
– Comentarios finales.
¿Cómo obtener una invitación? Escribe un mensaje en el formulario de contacto detallando las razones por las que te gustaría conocer esta herramienta y tus conocimientos actuales en el mundo de la web.
Las solicitudes se atienden por orden de llegada. Se tendrán en cuenta tus conocimientos actuales, por lo que si tienes un curriculum online y una manera de demostrar estos conocimientos, mucho mejor.
PLAZAS CERRADAS.

Y eso es todo. Hasta el lunes 12, ¡¡recibe un cordial saludo!!

VER UN CONTENIDO WEB COMPLETO EN UN PUBLICADOR DE CONTENIDOS DE OTRA PÁGINA

Ver un contenido web completo en un publicador de contenidos de otra página, con Liferay

liferay ver un contenido web completo en un publicador de contenidos de otra páginaAunque Liferay tiene un amplio abanico de posibilidades, son muchos los usuarios de esta herramienta que la usan únicamente para gestión de contenidos (no olvidemos que Liferay en realidad es un gestor de portales). Antes o después acaban usando el portlet Publicador de contenidos. En este artículo vamos a aprender como ver un contenido web completo en un publicador de contenidos de otra página.
Sabemos que entre otras cosas, este portlet permite una presentación preliminar o resumen de un contenido web que incluye un botón para ver el contenido completo. El comportamiento por defecto es que al pulsar ese botón, se cargue el contenido web completo.
La presentación preliminar o resumen, aparece de una forma bastante simple y se puede cambiar, pero eso lo dejo para otra entrada.

Otro uso del publicador de contenidos

Es frecuente la necesidad de que queramos ver el contenido web completo en una página distinta de la que está mostrando el resumen. Caso real: un portal con noticias, donde en la página principal del portal hay un listado con los resúmenes de las noticias más recientes y cada resumen tiene un enlace o botón que lleva a la noticia completa, en otra página.
Esto es algo que podemos hacer con Liferay pero que tal vez no sea tan simple si no se conoce bien el proceso. No es algo complejo aunque hay que dar varios pasos y olvidar el detalle más pequeño hará que no funcione. Por eso en los cursos que imparto, solemos hacer varios ejercicios al ver esta funcionalidad.
Veamos entonces como hacerlo mediante un ejercicio:

Crear las páginas

Creamos dos páginas. A una la llamamos origen y a otra destino.

Liferay, dos nuevas páginas. Liferay ver un contenido web completo en un publicador de contenidos de otra página

Creación del contenido de ejemplo

Creamos un contenido web básico con bastante contenido. Así nos aseguramos de que en la vista previa no se verá todo. Para ello habrá que pulsar en el botón correspondiente para mostrar el contenido web completo.

Liferay, nuevo contenido básico. Liferay ver un contenido web completo en un publicador de contenidos de otra página

Clasificando el contenido

Aunque no es necesario, vamos a establecer una clasificación al contenido, para que pueda ser seleccionado desde el publicador de contenidos de forma dinámica.

EDITADO 12/01/2017

Insisto en que este punto no es necesario. Solamente se muestra como práctica muy común en el trabajo de selección de contenidos que mostrar en el publicador de contenidos de forma dinámica.

Publicador de contenidos de destino

Ahora vamos a preparar la página que contendrá el publicador de contenidos que mostrará el contenido de forma completa: es decir, la página de destino. Para ello, lo primero es añadir un publicador de contenidos a la página.

Liferay, publicador de contenidos, añadir. Liferay ver un contenido web completo en un publicador de contenidos de otra página
Liferay, publicador de contenidos, configuración. Liferay ver un contenido web completo en un publicador de contenidos de otra páginaTras añadir el publicador de contenidos, nos dedicaremos a configurarlo adecuadamente:

Debemos establecer varias opciones de configuración.

Liferay, publicador de contenidos, selección dinámica. Liferay ver un contenido web completo en un publicador de contenidos de otra páginaLo primero es indicar que la selección de contenidos, sea dinámica:

EDITADO 12/01/2017

Tampoco es obligatorio, salvo que, siguiendo el ejercicio, nos basemos en la Clasificación para seleccionar el/los contenidos a buscar.
Lo siguiente es que el tipo de contenido, sea contenido web:

Liferay, publicador de contenidos, tipo de contenido. Liferay ver un contenido web completo en un publicador de contenidos de otra página
Ahora hay que establecer el filtro seleccionando todos y añadiendo la etiqueta que asignamos al contenido web que creamos.

Liferay, publicador de contenidos, filtro. Liferay ver un contenido web completo en un publicador de contenidos de otra página
Indicamos como estilo de presentación: contenido completo, número de elementos a mostrar: 1. Y el punto más importante: marcar la opción establecer como publicador de contenidos por defecto para esta página.

Liferay, publicador de contenidos, establecer por defecto. liferay ver un contenido web completo en un publicador de contenidos de otra página

Página de visualización de destino

En este punto, volvemos al contenido web que creamos en el punto 2, lo editamos y nos vamos a la opción de página de visualización:

Liferay, contenido web, página de visualización. Liferay ver un contenido web completo en un publicador de contenidos de otra página

Una vez en este apartado de página de visualización, seleccionamos la página que utilizará el contenido para ser mostrado al completo. Esa página debe tener un publicador de contenidos configurado para ser el que por defecto, en esa página, muestre los contenidos. Se indica en el último paso del punto anterior.

Liferay, contenido web, página de visualización, selección. Liferay ver un contenido web completo en un publicador de contenidos de otra página

Únicamente nos ha permitido seleccionar la página Destino. Es la única que tiene un publicador de contenidos establecido por defecto. De otro modo, no podremos seleccionar la página

Preparar la página de origen

En este último punto realizamos algunos pasos que ya hemos visto anteriormente, sólo que ahora vamos a hacerlos en la página de origen:

  • Añadir un publicador de contenidos y pasamos a configurarlo.
  • Escogemos selección de contenidos dinámica.
  • Tipo de contenido web.
  • Filtro: todos y etiqueta del contenido web (ejercicio, en el que he hecho yo).
  • Estilo de presentación: resúmenes.
  • Número de elementos a mostrar: 1.
EDITADO 12/01/2017

En Liferay 6.2 no es necesario el paso, tanto en la página destino como en la de origen, donde indicamos el número de elementos a mostrar. De todas formas, si queremos indicarlo, veremos que el rango de selección de elementos a mostrar puede cambiar entre versiones (incluyendo versiones GA.X). Si queremos modificar esos rangos, en el artículo COMO MODIFICAR LA PAGINACIÓN POR DEFECTO DE LISTADOS EN LIFERAY 6.2.
Ahora, otro punto muy importante. Comportamiento del enlace entre contenidos: Ver en el portlet específico.
Liferay ver un contenido web completo en un publicador de contenidos de otra página
Esta opción, junto con la de publicador de contenidos por defecto para la página más la selección de la página de visualización para el contenido web, son la clave para que esta funcionalidad se pueda utilizar adecuadamente.
Nada más, un cordial saludo y hasta otra.

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.