Creación de temas con Liferay 7

En este tutorial veremos la creación de temas personalizados con Liferay 7.

Índice

Liferay permite la opción de crear temas propios mediante dos opciones: el SDK de Liferay o con un generador de temas hecho con Yeoman y Gulp. Nosotros optaremos por la segunda opción, ya que nos da herramientas modernas de desarrollo web y mucha más rapidez a la hora de ejecutar tareas.

1. Introducción

Primero hay que distinguir entre lo que son temas y lo que son themelets. Los temas son el look and feel de un sitio o página. Los themelets son la apariencia y funcionalidad de los componentes que conforman nuestro sitio, pudiendo componer un tema mediante themelets, lo que haría de nuestra arquitectura mucho más modular, ya que los themelets se pueden distribuir en varios temas.

Los temas pueden heredar a su vez de otros temas, siendo lo más común que hereden de los temas base provistos por Liferay:

Text
styled

y

Text
unstyled

. Es recomendable heredar de uno de los dos, ya que si decidimos crear un tema desde cero podríamos romper la funcionalidad de Liferay.

Para la generación del tema han de ocurrir primero una serie de pasos:

  1. Transpilar Sass a CSS
  2. Generar el tema en formato .war
  3. Hacer deploy a Tomcat

De todo esto se encargará Gulp de forma muy simple como veremos en un apartado posterior. Vamos con la instalación.

2. Entorno

  • Hardware: Portátil MacBook Pro 17' (2.66 Ghz Intel Core I7, 8GB DDR3).
  • Sistema Operativo: Mac OS Sierra 10.12.4
  • Entorno de desarrollo: iTerm2 y VSCode
  • Liferay 7.0 CE GA 3
  • Java JRE 1.8.0.131
  • NodeJS 7.10.0
  • NVM 0.33.2
  • Yeoman 1.8.5
  • Gulp 3.9.1
  • Ruby 2.0.0p648
  • Sass 3.4.23
  • Compass 1.0.3

3. Instalación

Antes de nada es necesario haber seguido el tutorial de Javier para crear un workspace. Como habremos visto, desarrollar dentro del workspace nos ayuda mucho.

  1. Instalar NodeJS.
  2. Instalar Gulp y Yeoman globalmente:
    
    
    Text
     $ npm install -g yo gulp
  3. Instalar globalmente el generador de temas de Liferay:
    
    
    Text
     $ npm install -g generator-liferay-theme
  4. Instalar sass y compass:
    
    
    Text
     $ gem install sass compass

En algunos casos será necesaria la instalación de git.

Nota: Si estás en Windows necesitarás instalar Ruby y seguir una serie de pasos descritos aquí.

4. Generación del tema

Desde el directorio de nuestro

Text
liferay-workspace

dentro de la carpeta

Text
themes

introducimos el siguiente comando:


Text
$ yo liferay-theme

Elegimos el nombre de nuestro tema. Éste es el nombre "público".

El id del tema tiene que ser todo en minúsculas, con caracteres comunes y los espacios sustituidos por guiones.

Elegiremos la versión de Liferay que usamos, en nuestro caso la 7.0:

Liferay - Yeoman versión de Liferay

Añadimos el directorio donde tenemos Tomcat y el puerto donde se lanzará Liferay:

Liferay - Yeoman generador tema Liferay servidor

Y si vamos a la carpeta de nuestro tema veremos que se han generado una serie de directorios y ficheros.

5. Estructura


Text
build/                  // Directorio donde se genera la compilación del tema
dist/                   // Directorio donde se genera el .war
node_modules/           // Directorio de módulos de npm del proyecto
src/                    // Directorio de desarrollo del tema
.gitignore              // Fichero de git para ignorar ciertas carpetas o ficheros
.yo-rc.json             // Información de Yeoman
gulpfile.js             // Fichero de gulp donde se especifican tareas
liferay-theme.json      // Información de nuestro tema
package.json            // Información de nuestro paquete npm

6. Desarrollo del tema

El desarrollo lo haremos en la carpeta

Text
src

. Para comprobar que nuestro tema funcione correctamente probaremos a poner al

Text
body

un color de fondo. Para ello vamos a

Text
src/css/_custom.scss

y escribimos lo siguiente:


Text
/* These inject tags are used for dynamically creating imports for themelet styles, you can place them where ever you like in this file. */

/* inject:imports */
/* endinject */

/* This file allows you to override default styles in one central location for easier upgrade and maintenance. */
body {
  background-color: #cecece;
}

Como podemos observar, la extensión del fichero no es

Text
css

, si no

Text
scss

. Los temas de Liferay usan una tecnología muy extendida en frontend llamada Sass o Scss (ver aquí la diferencia), que es un lenguaje que se transpila a css y nos permite cosas muy interesantes como variables de css, mixins, funciones, loops y mucho más.

Una vez hecho esto, tenemos que hacer la transpilación y construcción del

Text
.war

. Desde el terminal:


Text
$ cd autentia-theme
$ gulp build

Comprobamos que tenemos lanzada la instancia de Liferay y desplegamos a Tomcat con:


Text
$ gulp deploy

Esta tarea lo que hace es copiar el fichero

Text
.war

de nuestro tema a la carpeta de

Text
liferay-workspace/bundles/deploy

. Este directorio lo usa Liferay para aplicar en caliente los cambios.

Nota:

Text
gulp deploy

hace

Text
gulp build

por debajo.

7. Seleccionar nuestro tema

Por último hay que elegir el tema. Con lo que seguimos los siguientes pasos:

Vamos a aplicar el tema a la página de inicio de nuestro sitio. Para ello pulsamos sobre los tres puntos y pinchamos en

Text
configurar página

:

Liferay - Configurar página

Pulsamos sobre definir un

Text
look and feel

de nuestra página y seguidamente le damos a

Text
cambiar tema actual

:

Liferay - Temas por defecto

Aquí se debería ya ver una miniatura con el nombre de nuestro tema:

Liferay - Elegir tema

Elegimos nuestro tema y le damos a guardar. Ahora podremos comprobar que se ha aplicado el tema después de recargar la página (si no se aplica, prueba a recargar sin caché

Text
cmd/ctrl + shit + r)

:

Liferay - Tema de Liferay aplicado

Si todo ha ido bien, veremos el color de fondo de la página en gris.

Prueba a cambiar el color otra vez y hacer

Text
gulp deploy

, verás que tras hacer el deploy el tema se actualiza solo tras recargar la página. ?

8. Conclusión

Las tecnologías usadas por Liferay para la generación de temas son muy novedosas y han sido probadas exhaustivamente por una amplia comunidad de desarrolladores, con lo que es un ecosistema bastante maduro. Además, es un desarrollo rápido, cómodo y fácil.

9. Referencias

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Información básica acerca de la protección de datos

  • Responsable: IZERTIS S.A.
  • Finalidad: Envío información de carácter administrativa, técnica, organizativa y/o comercial sobre los productos y servicios sobre los que se nos consulta.
  • Legitimación: Consentimiento del interesado
  • Destinatarios: Otras empresas del Grupo IZERTIS. Encargados del tratamiento.
  • Derechos: Acceso, rectificación, supresión, cancelación, limitación y portabilidad de los datos.
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad

Nómada Digital y Artesano del Software de España | JavaScript es mi pasaporte al mundo. En Autentia, me centro en crear aplicaciones web robustas usando React, Angular y Vue, con un énfasis especial en pruebas y TypeScript para asegurar la calidad y mantenibilidad. Como ponente internacional y miembro y embajador del comité de Codemotion, disfruto compartiendo mis conocimientos y aprendiendo de la comunidad tecnológica global. Cuando no estoy programando, puedes encontrarme explorando el mundo, presentando Colivers Club; un podcast para nómadas digitales, escalando, jugando juegos de mesa o aprendiendo un hobby nuevo.

¿Quieres publicar en Adictos al trabajo?

Te puede interesar

02/03/2026

José Antonio Sánchez Segovia

Zephyr es un RTOS open source respaldado por la Linux Foundation que permite desarrollar dispositivos embebidos conectados, eficientes y escalables, facilitando el paso de prototipo a producto final con una arquitectura mantenible.

23/02/2026

Enrique Casado Díez

LoRa y LoRaWAN son tecnologías clave en el ecosistema IoT cuando se requiere largo alcance y bajo consumo energético. En este artículo analizamos su funcionamiento, Spreading Factor, link budget, arquitectura de red, frecuencias y clases de dispositivos, con un caso práctico real.

19/02/2026

Juan José Díaz Antuña

Copilot Chat es la forma más sencilla y segura de empezar a usar IA en Microsoft 365. En este artículo vemos cómo funciona, cómo activarlo y en qué se diferencia de Microsoft 365 Copilot, Copilot Studio y los Agentes Inteligentes, con ejemplos prácticos y una comparativa clara.