Question

Je veux créer un lien dans un portlet afin que je puisse accéder à une autre page dans le portail Liferay. J'ordonne de le faire que je suis à la recherche d'une API (peut être spécifique Liferay) qui donne un nom de page, renverrait URL (il peut être le friendlyURL aussi bien).

Était-ce utile?

La solution

L'API aux pages d'accès à Liferay est le LayoutService. Cependant, les noms de page ne sont pas uniques dans Liferay et de plus ils sont internationalisés. Donc, vous avez besoin d'une propriété unique pour une page pour récupérer son URL, en plus de son nom.

Si vous avez vraiment que le nom de la page, vous pouvez utiliser LayoutLocalServiceUtil.getLayouts (...) à boucle sur tous les modèles et vérifier certains biens (dans ce cas, son nom).

Autres conseils

Les pages du portail dans Liferay sont en effet appelés Layouts dans les tableaux API et DB. Ils sont identifiés par champ plid, peuvent être obtenus en utilisant les API de LayoutLocalServiceUtil et connexes, ainsi que de quelques autres appels comme themeDisplay.getLayout().

Cependant, pour construire Chaîne contenant l'URL vers une page vous devrez concaténer URL conviviale du portail, le groupe et lui-même mise en page (c.-à-/web/guest/home - web est URL du portail pour les pages publiques, guest est URL conviviale du groupe invité par défaut et home est URL amicale de page d'accueil / mise en page par défaut). Cela peut être difficile, comme vous devez vérifier si cela est une page publique ou privée, etc.

Et une fois que vous commencez à utiliser des hôtes virtuels avec des URL conviviales pour les groupes, changent les choses. Donc, ce n'est pas une bonne façon.

Pour éviter de créer manuellement les URL et des URL qui sont garantis pour être correcte, vous devez utiliser com.liferay.portal.util.PortalUtil.getLayoutFriendlyURL(Layout layout, ThemeDisplay themeDisplay) une méthode statique de PortalUtil - il fera tout le travail nécessaire pour vous. Bien que vous devez également fournir ThemeDisplay et non seulement la mise en page.

Au moins dans Liferay 6.1.20 on peut utiliser « Lien URL portlets à la page » pour établir des liens procéder à antoher page dans votre portail. Il est sous le point de menu'look et feel' de votre portlet. Pour moi, cela fonctionne très bien.

hourras

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top