一般liferay
有一個用於顯示可用的portlet ADD
選項。方法在portlet中顯示可用的portlet的列表
我希望他們能夠出現在下拉列表,這應該是一個自定義插件的portlet,所以我正在尋找在API哪種方法檢索可用的portlet,但我沒有發現任何。
請幫我在這,因爲我堅持了這一點,也從下拉Portlet應該被添加到頁面中選擇。
一般liferay
有一個用於顯示可用的portlet ADD
選項。方法在portlet中顯示可用的portlet的列表
我希望他們能夠出現在下拉列表,這應該是一個自定義插件的portlet,所以我正在尋找在API哪種方法檢索可用的portlet,但我沒有發現任何。
請幫我在這,因爲我堅持了這一點,也從下拉Portlet應該被添加到頁面中選擇。
「添加...更多」是由停靠欄的Portlet顯示的對話框。您可以在Liferay的源代碼portal-web/docroot/html/portlet/dockbar/add_panel.jsp
中找到此UI部分的實現,其中還包括view_category.jsp
在同一目錄中。
雖然這JSP代碼是不是最漂亮的,你會很容易發現,PortletLocalService
就是你找到的相關信息之一,如何按類別訪問portlet的列表中選擇實際樣品一起,根據對它們進行排序當前用戶的語言環境等
至於你問更具體的指針:在add_panel.jsp
你可以找到:
for (PortletCategory curPortletCategory : categories) {
if (curPortletCategory.isHidden()) {
continue;
}
request.setAttribute(WebKeys.PORTLET_CATEGORY, curPortletCategory);
request.setAttribute(WebKeys.PORTLET_CATEGORY_INDEX, String.valueOf(portletCategoryIndex));
%>
<liferay-util:include page="/html/portlet/dockbar/view_category.jsp" />
<%
portletCategoryIndex++;
}
%>
和一些摘錄view_category.jsp
:
<%
PortletCategory portletCategory = (PortletCategory)request.getAttribute(WebKeys.PORTLET_CATEGORY);
int portletCategoryIndex = GetterUtil.getInteger((String)request.getAttribute(WebKeys.PORTLET_CATEGORY_INDEX));
// ...
Set<String> portletIds = portletCategory.getPortletIds();
// ...
for (String portletId : portletIds) {
Portlet portlet = PortletLocalServiceUtil.getPortletById(user.getCompanyId(), portletId);
if ((portlet != null) && PortletPermissionUtil.contains(permissionChecker, layout, portlet, ActionKeys.ADD_TO_PAGE)) {
portlets.add(portlet);
// ... and so on
希望這段摘錄有所幫助。查看文件的其餘部分,瞭解您可以對結果列表實際執行的操作。另外,如果您需要更多詳細信息,Portlet的界面可能會有所幫助。
你能否詳細說明你的答案。我沒有發現任何有用的東西適用於我的要求。 – 2013-04-29 20:02:05
沒有必要在你的問題中添加簽名。也學會使用格式來提高你的問題的可讀性。 – Apurv 2013-04-27 19:11:50