Добавление портлета в панель управления программно

Я хочу добавить программный портлет в панель управления. Как мне это сделать ?

1
добавлено
Просмотры: 1

2 ответы

Поскольку вы, вероятно, уже знаете, какой портлет должен быть доступен в ControlPanel (имеется только ограниченное количество портлетов, которые вы пишете, верно?), Вам не нужно делать его полностью программным, но может фактически объявить его, как и любой другой портлет ControlPanel, который у вас есть , (см. другой вопрос )

Однако, чтобы ваш административный портлет отображался/исчезал на основе динамической информации, вы можете использовать объявление этого элемента (взятое из 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
-->

1
добавлено
Хорошее объяснение, я не видел этого с этой точки зрения ( Как вы, наверное, уже знаете, какой портлет будет доступен в ControlPanel ). Таким образом, для панели управления на самом деле не требуется «добавлять» ее программно, а следует показывать/скрывать ее программно. Ну, для конечного пользователя я не думаю, что это будет иметь значение. Я бы отметил это как ответ.
добавлено автор Prakash K, источник

Я думаю, что это программно не возможно , поскольку:

  1. The portlets on Control Panel page are not stored in database as is the case for other pages in the portal in which the portlets are stored as typeSettings in the Layout table.

  2. Instead the portlets that go on the control-panel page are determined by the value of the field _controlPanelEntryCategory in PortletImpl which denotes the value of tag in liferay-portlet.xml and this value is set for each portlet by the PortletLocalServiceImpl#_readLiferayPortletXML method which I think is only called everytime either when the server starts (in initEAR()) or a portlet is deployed (in initWAR()).

So it is required to have an entry in the liferay-portlet.xml for the different tags to be able to add the portlet to control panel. And this is not possible programmatically.

Это по моим рассуждениям и пониманию, но я хотел бы услышать от мастеров Лиферэй, если это вообще возможно.

0
добавлено