将portlet移动到liferay 7中的控制面板部分?

时间:2016-11-03 13:22:59

标签: liferay liferay-7

如何将自定义portlet添加到“控制面板”部分?我看过各种教程,但都是liferay 6.2。如何在liferay 7中完成它? Thanx提前..

2 个答案:

答案 0 :(得分:3)

在Liferay 7中,如果您使用的是捆绑包(例如,通过Blade tools创建),则可以使用面板应用。面板应用程序将portlet映射到控制面板中的位置。

假设您有一个由Blade生成的portlet,如下所示:

PanelApp

现在您只需创建另一个实现@Component( immediate = true, property = { "panel.app.order:Integer=10000", // Defines position in list "panel.category.key=" + PanelCategoryKeys.SITE_ADMINISTRATION_CONTENT // To appear in the "Content" session }, service = PanelApp.class ) public class CpPanelApp extends BasePanelApp { @Override public String getPortletId() { return "cpportlet"; // Same name of the portlet. } @Override @Reference( target = "(javax.portlet.name=cpportlet)", unbind = "-" ) public void setPortlet(Portlet portlet) { super.setPortlet(portlet); } } 服务的OSGi组件:

PanelApp

要编译它,您将依赖于“应用程序列表应用程序”API - 我们在那里找到build.gradle类。因此,只需将此依赖项添加到dependencies { compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.0.0" compileOnly group: "javax.portlet", name: "portlet-api", version: "2.0" compileOnly group: "org.osgi", name: "org.osgi.compendium", version: "5.0.0" compileOnly group: "com.liferay", name: "com.liferay.application.list.api", version: "2.0.0" // Dependency added } ,如下所示:

{{1}}

现在部署它,portlet将出现在列表中:

enter image description here

这只是基本的想法 - documentation非常有启发性。

答案 1 :(得分:1)

您可以按Component的属性定义控制面板类别: com.liferay.portlet.control-panel-entry-category=<String> com.liferay.portlet.control-panel-entry-weight=<double>

请参阅此处列出的地图: https://dev.liferay.com/develop/reference/-/knowledge_base/7-0/portlet-descriptor-to-osgi-service-property-map