Чтобы создать ссылку с тем же поведением, что и по умолчанию Вход , необходимо использовать плагин Liferay.SignInModal
.
Сначала необходимо создать h:ouputLink
, который указывает на /c/portal/login
и включает идентификатор макета. * Если JavaScript по какой-то причине не работает, эта ссылка обеспечит хорошее аварийное поведение, отправив пользователя на страницу входа через GET и перенаправив его обратно на текущую страницу послепользователь входит в систему.
<h:outputLink id="logInLink" binding="#{logInLink}"
value="/c/portal/login?p_l_id=#{bean.getPlid(request)}">
<h:outputText value="Log In/Register" />
</h:outputLink>
Далее вам нужно вставить модальный знак в эту ссылку:
<h:outputScript>
AUI().use('liferay-sign-in-modal', 'event-outside', 'transition', function(A) {
A.one('##{logInLink.clientId}'.replace(/:/g,'\\:'))
.plug(Liferay.SignInModal);
});
</h:outputScript>
Теперь ваша ссылка для входа / входа будет вести себя точно так же, как по умолчаниюверсия.Всплывающее окно должно закрыться, как только пользователь войдет в систему.
* Чтобы получить текущий идентификатор макета, используйте такой метод:
public long getPlid(PortletRequest portletRequest) {
ThemeDisplay themeDisplay =
(ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);
Layout layout = themeDisplay.getLayout();
return layout.getPlid();
}