Utiliser l’héritage de thèmes de Liferay

Dans un projet Liferay, le thème contient généralement l’ensemble des fichiers constituant le thème (template, css, images).

Ce principe oblige la reprise du thème complet lors d’une montée de version et ne permet pas d’avoir une vision claire des modifications effectuées.

Afin d’éviter cela, il est préférable de mettre en place l’héritage de thème.

Pour se faire, on utilise la configuration maven suivante :

<groupId>com.liferay.maven.plugins</groupId>
<artifactId>liferay-maven-plugin</artifactId>
<executions>
	<execution>
		<phase>generate-sources</phase>
		<goals>
			<goal>theme-merge</goal>
			<goal>build-css</goal>
			<goal>build-thumbail</goal>
		</goals>
	<execution>
</executions>
<configuration>
	<pluginType>theme</pluginType>
	<themeType>vm</themeType>
	<parentTheme>classic</parentTheme>
</configuration>

Ce paramétrage est standard et fait partie des bonnes pratiques usuelles.

Mais il est souvent requis de produire un nouveau thème, celui-ci n’étant qu’une variante du premier.

Idéalement, il faudrait hériter de celui-ci et seulement implémenter les différences. Or au premier abord il est seulement possible d’hériter de _unstyled, _styled, classic ou control_panel.

Mais, il est également possible d’hériter de n’importe quel thème ! Pour cela, il faut utiliser la syntaxe groupId:artifactId:version

Par exemple:

<groupId>com.liferay.maven.plugins</groupId>
<artifactId>liferay-maven-plugin</artifactId>
<executions>
	<execution>
		<phase>generate-sources</phase>
		<goals>
			<goal>theme-merge</goal>
			<goal>build-css</goal>
			<goal>build-thumbail</goal>
		</goals>
	<execution>
</executions>
<configuration>
	<pluginType>theme</pluginType>
	<themeType>vm</themeType>
	<parentTheme>com.mycompany.liferay:core-theme:1.0.0</parentTheme>
</configuration>

L’héritage entre les deux thèmes du projet est alors actif.

 

— Update le 15/06/2015

En fonction de la version du liferay-maven-plugin (à partir de la version 6.2) il est possible de définir le theme parent comme suit:

<groupId>com.liferay.maven.plugins</groupId>
<artifactId>liferay-maven-plugin</artifactId>
<executions>
	<execution>
		<phase>generate-sources</phase>
		<goals>
			<goal>theme-merge</goal>
			<goal>build-css</goal>
			<goal>build-thumbail</goal>
		</goals>
	<execution>
</executions>
<configuration>
	<pluginType>theme</pluginType>
	<themeType>vm</themeType>
        <parentThemeArtifactGroupId>org.sedona.factory</parentThemeArtifactGroupId>
        <parentThemeArtifactId>factory-theme</parentThemeArtifactId>
        <parentThemeArtifactVersion>1.2.7</parentThemeArtifactVersion>
        <parentThemeId>factory</parentThemeId>
</configuration>

 

You may also like...

Laisser un commentaire