Liferay控制面板菜单portlet

时间:2014-08-06 09:57:40

标签: liferay

liferay如何列出要在控制面板菜单中显示的portlet? 任何正文都可以列出所涉及的类和JSP吗?

2 个答案:

答案 0 :(得分:1)

请参阅liferay来源中位于\portal-web\docroot\html\portlet\control_panel_menu\view.jsp

的文件

您将了解liferay如何显示其控制面板菜单。

Link获取此jsp的代码。

答案 1 :(得分:0)

在部署portlet时,所有portlet都保存在portlet表中。然后,一旦访问控制面板,liferay就会加载所有具有控制面板条目的portlet。有关更好的说明,请参阅

中的以下代码
com.liferay.portal.util.PortalImpl

@Override
public Set<Portlet> getControlPanelPortlets(long companyId, String category)
    throws SystemException {

    Set<Portlet> portletsSet = new TreeSet<Portlet>(
        new PortletControlPanelWeightComparator());

    if (Validator.isNull(category)) {
        return portletsSet;
    }

    List<Portlet> portletsList = PortletLocalServiceUtil.getPortlets(
        companyId);

    for (Portlet portlet : portletsList) {
        String portletCategory = portlet.getControlPanelEntryCategory();

        if (category.equals(portletCategory) ||
            (category.endsWith(StringPool.PERIOD) &&
             StringUtil.startsWith(portletCategory, category))) {

            portletsSet.add(portlet);
        }
    }

    return portletsSet;
}

@Override
public List<Portlet> getControlPanelPortlets(
        String category, ThemeDisplay themeDisplay)
    throws SystemException {

    Set<Portlet> portlets = getControlPanelPortlets(
        themeDisplay.getCompanyId(), category);

    return filterControlPanelPortlets(portlets, themeDisplay);
}

调用上面的代码
\portal-web\docroot\html\portlet\control_panel_menu\view.jsp 
Map<String, List<Portlet>> siteAdministrationCategoriesMap = PortalUtil.getSiteAdministrationCategoriesMap(request);

pankaj-kathiriya回答的帮助。谢谢你。