1

我对新的 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>标签来实现这一点?或者有人可以举例说明吗?

4

1 回答 1

2

您可以scopeGroupId在停靠栏的 jsp 中检索可用的,并从中检索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 />tag。

希望我已经正确理解了您的问题并做出了相应的回答。

于 2012-09-20T07:22:42.843 回答