Liferay - Dockbar中的链接依赖于使用钩子的用户组

时间:2012-09-19 03:39:28

标签: hook liferay

我对新的liferay平台和使用钩子相当新。我在Dockbar portlet的名称旁边添加了当前登录用户的电子邮件。我希望这封电子邮件在点击时链接到另一个链接,具体取决于用户是否属于两个组中的任何一个。

这就是我到目前为止所写的内容......

//if user is in "group1" show this link

<aui:a cssClass='<%= "user-email"  %>' href="link1" title="Gmail">
    <%= "(" + HtmlUtil.escape(user.getDisplayEmailAddress() + ")") %>
</aui:a>

//if user is in "group2" show this link

<aui:a cssClass='<%= "user-email"  %>' href="link2" title="Outlook">
    <%= "(" + HtmlUtil.escape(user.getDisplayEmailAddress() + ")") %>
</aui:a>

如果我使用<c:if>代码,我该如何实现这一目标?或者有人可以举例说明吗?

1 个答案:

答案 0 :(得分:2)

您可以检索停靠栏的jsp中可用的scopeGroupId,然后您可以检索Group实例。

然后检查用户当前在哪个组的页面,并相应地更改href

或者您也可以在JSP中使用以下代码:

Group group = null;
if(themeDisplay.getLayout().getGroup().isSite()) { // this will tell if the Group is a site or not
    group = themeDisplay.getLayout().getGroup(); // fetching the site group instance
}

String href;
if (themeDisplay.getLayout().getGroup().getName().equalsIgnoreCase("group1")) {
    href = "group1_link";
} else {
    href = "group2_link";
}

注意:themeDisplay在Liferay的JSP中可用,并且要在您的自定义portlet中使用,您可以使用<liferay-theme:defineObjects />标记。

希望我能正确理解你的问题并做出相应的回答。