2010-10-18 23 views
3

Disons que j'ai un objet Organisation. Comment créer une URL pointant vers les pages publiques de cette organisation?Création de liens vers des pages d'organisation/communauté dans Liferay 6

Il existe un NavItem de classe qui crée des liens vers des mises en page données, mais dont la «première page» est non documentée (entre autres choses). Puis il y a PortletURLImpl qui peut être utilisé (de manière alambiquée) pour cela au moins tant que l'utilisateur est membre de la communauté.

Répondre

6

Une URL vers une page Liferay obéisse au format suivant:

/[web|group]/[group-friendly-url]/[page-friendly-url] 
  • La première partie décide de créer un lien vers le public (Web) ou pages privées (groupe). Vous pouvez également modifier ces chaînes dans portal.properties (recherchez layout.friendly.url.private.group.servlet.mapping et layout.friendly.url.public.servlet.mapping). Dans ce cas, vous devez utiliser les chaînes configurées au lieu des chaînes par défaut.
  • La deuxième partie est l'URL amicale du groupe. Comme vous le savez, chaque organisation de Liferay est associée à un groupe. Donc, vous pouvez faire quelque chose comme ceci: organization.getGroup(). GetFriendlyURL()
  • La dernière partie est l'URL amicale de la page que vous voulez visiter. Si vous ne spécifiez aucune page, Liferay redirigera automatiquement vers la première page du groupe.

Dans votre cas, il serait donc suffisant pour faire:

String url = "/web"+organization.getGroup().getFriendlyURL(); 

Bonne chance!

+2

Vous pouvez également utiliser PortalUtil.getGroupFriendlyURL (groupId, false, themeDisplay) si vous avez accès à une variable ThemeDisplay. – fimez

+0

de quoi ai-je besoin pour obtenir "/ web" ou "/ group" par programme? – Manticore

+0

/web -> themeDisplay.getPathFriendlyURLPublic(),/groupe -> themeDisplay.getPathFriendlyURLPrivateGroup() –