2011-03-14 1 views
1

Vous vous demandez simplement s'il est possible d'assigner un thème à une page en cours d'exécution au lieu de l'heure de configuration? Je veux dire la même page s'affiche avec des thèmes différents, en fonction de certaines conditions. Ce que je voudrais faire est ceci: j'ai trois pages: «page 1», «page 2» et «page d'inscription». La "page 1" et la "page 2" sont des pages normales accessibles depuis le menu de navigation. "Page 1" et "page 2" ont des thèmes différents. La "page d'inscription" n'est pas visible dans le menu de navigation, cependant, il y a des liens à la fois dans "page 1" et "page 2". Je veux que la "page d'inscription" s'affiche avec le thème "page 1" quand on accède à partir de "page 1", et le thème de "page 2" lorsqu'on y accède à partir de là.Définir un thème pour une page Liferay Portal en cours d'exécution (par rapport à configurer l'heure)?

Évidemment, je peux créer deux versions de "page d'inscription" avec des thèmes différents, mais en réalité j'ai une dizaine de thèmes (variations de thème) et environ cinq pages comme "page d'inscription".

J'utilise Liferay Portal EE 5.2.5

-k6ps

Répondre

1

La réponse courte est qu'un portlet n'est pas une page, et au moment où un portlet est affiché sur le thème a déjà été décidé donc vous ne pouvez pas le faire dans un portlet. Désolé si c'est évident pour vous mais je travaille juste à travers le problème. La réponse la plus longue est que Liferay étant conçu en pensant à la personnalisation, tout est possible, tout dépend de la façon dont cela peut être fait. Dans ce cas, ma meilleure estimation est que vous avez besoin de quelque chose à déclencher juste avant que la servlet Liferay ne construise la page, et en regardant dans le fichier portal.properties il y a un point d'extension désigné servlet.service.events.pre. D'abord, vous avez besoin d'un moyen de stocker la sélection de la page initiale, mais une fois que vous avez, vous pouvez le lire dans votre classe personnalisée et modifier le thème de cette instance. Peut être.

Je suppose que vous serez obligé de stocker la sélection de thème dans HttpSession, mais il est également possible que vous puissiez passer la sélection de thème dans l'URL en tant que paramètre HTTP ou même utiliser l'en-tête HTTP REFERRER valeur pour trouver d'où ils viennent.

Utile?

+0

Merci 'je vais vérifier ça :) – k6ps

Questions connexes