SessionClicks est un utilitaire qui est utilisé pour sauvegarder l’état d’un élément en fonction de l’utilisateur qui l’utilise (ex : l’état d’un plié déplié…). La sauvegarde peut se faire de deux manières différentes et c’est un outil simple mais efficace et on n’en parle pas assez ;) :
La persistance en base :
Il peut arriver que l’on souhaite garder une information qui dure tout le temps même après une déconnexion, c’est la méthode la plus utilisée dans les sources du portail. La classe SessionClicks sauvegarde les informations dans la table portalPreferences cependant il y a une limite de stockage en base définit par
session.clicks.max.allowed.values=1024
Voici un exemple de fonctionnement:
En java :
SessionClicks.put()/SessionClicks.get()
En Ajax :
A.io.request(
'<%=themeDisplay.getPathMain() %>/portal/session_click',
{
data: {
myParam:'myValue'
}
});
La sauvegarde dans la session du portail :
C’est cette nouveauté qui a motivé mon post ![]()
En effet depuis la 6.1 Liferay propose de sauvegarder les données dans la session portail. Nous n’avons pas beaucoup d’exemple d’utilisation sur le net donc en voici un :
En java :
SessionClicks.get(PortalSessionThreadLocal.getHttpSession(),"param")
En Ajax :
A.io.request(
'<%=themeDisplay.getPathMain() %>/portal/session_click',
{
data: {
myParam:'myValue',
useHttpSession: true
}
});
Le paramètre "useHttpSession" permet de sauvegarder la valeure dans la session de l'utilisateur.
"PortalSessionThreadLocal.getHttpSession()" permet de récuperer la session du portail
