我对新的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>
代码,我该如何实现这一目标?或者有人可以举例说明吗?
答案 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 />
标记。
希望我能正确理解你的问题并做出相应的回答。