1

私は新しいliferayプラットフォームとフックの使用にかなり慣れていません。現在ログインしているユーザーのメールアドレスを、の名前の横に追加していますDockbar portlet。このメールは、クリックすると、ユーザーが2つのグループのいずれかに属しているかどうかに応じて別のリンクにリンクするようにしたいと思います。

これは私がこれまでフックに書いたものです...

//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";
}

注:themeDisplayLiferayのJSPで利用可能であり、カスタムポートレットで使用するには、<liferay-theme:defineObjects />タグを使用できます。

私があなたの質問を正しく理解し、それに応じて答えたことを願っています。

于 2012-09-20T07:22:42.843 に答える