Frage

Ich möchte einen Link in einem Portlet erstellen, damit ich zu einer anderen Seite im Liferay -Portal navigieren kann. Ich befreie, dass ich nach einer API suche (kann Liferay -spezifisch sein), die einen Seitennamen bei der URL zurückgeben (es kann auch die Friendlyurl sein).

War es hilfreich?

Lösung

Die API zum Zugriff auf Seiten in Liferay ist der Layoutservice. Seitennamen sind jedoch in Liferay nicht eindeutig und werden außerdem internationalisiert. Sie benötigen also eine einzigartige Eigenschaft für eine Seite, um ihre URL neben ihrem Namen abzurufen.

Wenn Sie wirklich nur den Seitennamen haben, können Sie LayoutLocalServiceutil.getLayouts (...) verwenden, um alle Layouts zu überschreiten und nach einer Eigenschaft (in diesem Fall seinen Namen) zu überprüfen.

Andere Tipps

Portalseiten in Liferay werden in der Tat genannt Layouts In API- und DB -Tabellen. Sie sind identifiziert von plid Feld, kann mit Verwendung erhalten werden LayoutLocalServiceUtil und verwandte APIs und auch von einigen anderen Anrufen wie themeDisplay.getLayout().

Um jedoch eine Saite mit URL zu einer Seite zu erstellen /web/guest/home - web ist Portal -URL für öffentliche Seiten, guest ist standardmäßig eine freundschaftliche URL der Gästebruppe und home ist eine freundliche URL von Homepage/Layout standardmäßig). Dies kann schwierig sein, da Sie überprüfen müssen, ob es sich um eine öffentliche oder eine private Seite usw. handelt.

Und sobald Sie anfangen, virtuelle Hosts mit freundlichen URLs für Gruppen zu verwenden, ändern sich die Dinge. Das ist also kein guter Weg.

Um manuelles Erstellen von URLs zu vermeiden und URLs zu haben, die garantiert korrekt sind, sollten Sie verwenden com.liferay.portal.util.PortalUtil.getLayoutFriendlyURL(Layout layout, ThemeDisplay themeDisplay) eine statische Methode von PortalUtil - Es wird alle notwendigen Arbeiten für Sie erledigen. Sie müssen jedoch auch bereitstellen ThemeDisplay und nicht nur Layout.

Zumindest in Liferay 6.1.20 kann man "Link -Portlet -URLs zu Seite" verwenden, um Links auf die Antoher -Seite in Ihrem Portal fortzusetzen. Es befindet sich unter dem Menüpunkt Ihres Portlets. Für mich funktioniert das gut.

Prost

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top