我在liferay 门户中有一个要求,允许用户在特定页面上添加一些特定的portlet。同样可以通过两种方式完成:
这将需要插入一些自定义代码添加面板代码
创建一个将出现在页面左侧并允许在页面上添加和拖动 portlet 的自定义 portlet。
- 在添加 portlet 时,它会检查页面是否可以具有此 portlet 并相应地删除它
我的问题是应该使用这两种方法中的哪一种,以及如何使用?
注意:我在谷歌上也找不到很多关于这个的信息
我在liferay 门户中有一个要求,允许用户在特定页面上添加一些特定的portlet。同样可以通过两种方式完成:
这将需要插入一些自定义代码添加面板代码
创建一个将出现在页面左侧并允许在页面上添加和拖动 portlet 的自定义 portlet。
我的问题是应该使用这两种方法中的哪一种,以及如何使用?
注意:我在谷歌上也找不到很多关于这个的信息
我相信 Liferay 权限系统足够强大,可以表达您的需求。
“添加更多portlet”菜单中显示的portlet 列表可以通过常规角色进行定制。有关详细信息,请参阅如何自定义要在“添加更多 portlet”菜单中显示的 portlet。
要限制单个页面(或多个页面)的选项,请修改其权限,以便只有新的常规角色才能对其进行更新。
根据您对 Tomáš Piňos 的回答的评论,我的建议是创建一个使用 Liferay 的 API 并让您能够做到这一点的自定义 portlet:在可用的页面上,使用它来启用/禁用您想要的 portlet通过使用 Liferay 的 API 来实现。当您在寻找旧的 Sevencogs 示例时,您会发现相当多的示例(遗憾的是,它不再编译,但总的来说 API 只发生了微小的变化)。最新的资源以及与古代代码的进一步链接是这2篇博客文章。
关于您的第三个选项(正如您在评论中询问的那样):是的,有可能:您可以覆盖 Liferay 的服务以及对模型更改做出反应。这意味着您可以添加自己的更新检查。但是,我觉得提供添加任何 portlet 的选项只是为了在用户确实使用所提供的选项时禁止它是不合适的。这就是为什么我没有在最初的答案中包含此选项的原因。