如何通过编程方式动态添加portlet实例,并在单击按钮时将portlet安装到仪表板页面



我有一个动态创建的liferay portlet实例,并以编程方式添加到布局中,如下所示

String portletId = objUtil.addPortlet("/prj/reports", "XYZPortlet_WAR_ecpmportlet", "column-2",groupId, "type: " + getSelectedType());

因此它将portlet添加到/reports页面。
我想在portlet下面添加一个名为的按钮发送到仪表板单击按钮时,我想将此portlet永久地安装到用户仪表板。

注意:可以将任意数量的portlet实例添加到/report s页面。

如您所见,XYZPortlet是在liferay-portlet.xml、liferay-display.xml中定义的portlet的id,它对于我添加到报告页面的所有portlet保持相同。

我想动态地为portlet实例分配一个新Id,并将其永久地安装到仪表板布局中。

谁能建议一种方法来做到这一点?

谢谢

获取全局portletId并将其添加到用户主页:

LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) userlayout.getLayoutType();
String portletInstanceId = layoutTypePortlet.addPortletId(0, portletId, columnId, -1, false);
LayoutLocalServiceUtil.updateLayout(userlayout.getGroupId(), userlayout.isPrivateLayout(), userlayout.getLayoutId(), userlayout.getTypeSettings());

相关内容

  • 没有找到相关文章

最新更新