1

我想以编程方式将我的自定义 portlet 添加到控制面板。我该怎么做 ?

4

2 回答 2

1

您可能已经知道要在 ControlPanel 中提供哪个 portlet(您编写的 portlet 数量有限,对吗?)您不需要使其完全编程,但实际上可以像您拥有的任何其他 ControlPanel Portlet 一样声明它. (有关信息,请参阅您的其他问题

但是,为了使您的管理 portlet 基于动态信息出现/消失,您可以使用此元素的声明(取自http://www.liferay.com/dtd/liferay-portlet-app_6_0_0.dtd

<!--
The control-panel-entry-class value must be a class that implements
com.liferay.portlet.ControlPanelEntry and is called by the Control Panel to
decide whether the portlet should be shown to a specific user in a specific
context. The default value is set in portal.properties.

See:

http://docs.liferay.com/portal/6.0/javadocs/portal-service/com/liferay/portlet/ControlPanelEntry.html
-->
<!ELEMENT control-panel-entry-class (#PCDATA)>
于 2012-12-30T22:47:32.077 回答
0

我认为这在编程上是不可能的,因为:

  1. 控制面板页面上的 portlet 不像门户中的其他页面那样存储在数据库中,其中 portlet 存储typeSettingsLayout表中。

  2. 相反,控制面板页面上的 portlet 由表示标记值的字段的值确定_controlPanelEntryCategory,并且该值是通过我认为仅在服务器启动时每次调用的方法为每个 portlet 设置的(in ) 或部署一个 portlet (in )。PortletImpl<control-panel-entry-category>liferay-portlet.xmlPortletLocalServiceImpl#_readLiferayPortletXMLinitEAR()initWAR()

因此需要在liferay-portlet.xml不同的<control-panel-entry-*>标签中有一个条目才能将portlet 添加到控制面板。这在编程上是不可能的。

这是根据我的推理和理解,但如果这可能的话,我想听听 Liferay 大师的意见。

于 2012-12-28T14:44:05.317 回答