如何自定义要在“添加更多 portlet”菜单中显示的 portlet

Posted

技术标签:

【中文标题】如何自定义要在“添加更多 portlet”菜单中显示的 portlet【英文标题】:How to customize which portlets to show in "Add more portlets" menu 【发布时间】:2012-05-19 10:18:25 【问题描述】:

我需要自定义“添加更多portlet菜单”中出现的portlet,如下图所示:

我需要根据登录的用户或站点(社区)来限制此菜单中显示的 portlet 的数量。因此,站点所有者或站点管理员将只能将那些 portlet 添加到他们的页面中,这些 portlet 由omni-admin 为他们决定。

Liferay 是否提供任何此类功能(通过配置或其他方式)还是我必须创建一个新的 portlet 和一个挂钩来实现这一点?

环境: Liferay 6.1 CE GA2

任何想法将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

以下是 Liferay 论坛中针对同一问题的answer:

您可以从管理端限制哪些 portlet 可以添加到页面中,而不必进行任何开发。

但是,您需要创建一个角色并在其中添加所有人。以下是实现此目的的步骤:

    让用户成为您希望他们添加 portlet 的组织或站点的一部分。 转到Control Panel -> Roles并担任常规角色(不是组织或站点角色) 在定义权限下拉菜单中,转到Portal -> Site -> Page -> 并检查Update 作为已定义权限。 再次转到Define-permissions 下拉菜单并转到Site Application ->(选择您希望用户添加到页面的Portlet 名称)-> Add to page。 如有必要,如果您希望用户添加其他 portlet,请重复第 4 步。 将此角色添加到您的用户:转到Control Panel -> User and Organizations。点击您的User 并转到Roles。 最后你需要去Server Administration并执行Clean Up Permissions来清除GuestPower Users角色的权限。

现在应该这样,无论用户附加到该角色,他们都会在左下角看到一个“添加”按钮,并且只能添加您在角色权限中指定的 portlet。

【讨论】:

您还可以创建一个新用户组并将新角色分配给该组。这样,属于该用户组的所有用户都将默认继承该角色。 @Prakash - 可以使用代码完成相同的操作,可以使用代码完成创建角色我们可以使用 java 代码执行步骤 3,4 吗? @Varun 是的,它可以通过编程方式完成,毕竟这是您点击提交后发生的事情:)【参考方案2】:

您需要为要允许的 portlet 授予 ADD_TO_PAGE 权限。默认情况下,社区管理员对所有 portlet 拥有相当广泛的权限。检查“定义权限”中的“社区管理员”角色(控制面板/角色/社区管理员/操作/定义权限)。

我建议查看允许社区管理员做什么并创建自定义角色,定义其权限并使您的“受限”管理员成为该角色的成员,而不是默认的社区管理员。

【讨论】:

我不知道 ADD_TO_PAGE 用于此,将尝试。站点(社区)管理员或站点所有者也没有“定义权限”操作。谢谢 @Olaf Kock,我需要一个我在以下链接中发布的查询建议,***.com/questions/28813244/…。请给点建议,让网站管理员可以访问控制面板创建用户..【参考方案3】:

还有更好的办法。 在其权限表中检查所有 portlet 权限。 转到 portlet 管理器并首先取消选中所有“用户”

所以它没有显示“添加更多 portlet 菜单”

【讨论】:

以上是关于如何自定义要在“添加更多 portlet”菜单中显示的 portlet的主要内容,如果未能解决你的问题,请参考以下文章

如何在 lapply (R) 中显式定义附加参数

夺命雷公狗---微信开发14----用网页调试工具调试自定义菜单接口

如何自定义排序要在 json.dumps 中使用的 dict 列表

如何通过单选菜单组合多个 Google CSE?

如何自定义 Chrome 右键菜单

如何添加微信自定义菜单