我有一个要求,如果用户未登录,我必须在网络内容中显示登录网址,如果用户登录,还需要显示,我必须显示注销超链接。我已经在某处搜索了 $is_signed_in 用于检查用户是否登录。之后,我将以下代码添加到我的要求中。即使用户是否已登录,它也会显示"要了解更多信息,请登录"。为什么条件失败?以及如何在Liferay速度中检查用户是否登录?我观察到我没有获得$is_signed_in,$sign_in_url,$sign_out_url
的值 #if(!$is_signed_in)
To know more please <a href="$sign_in_url">Sign In</a>
#else
click here to <a href="$sign_out_url">Sign Out</a>
#end
$is_signed_in
在主题中可用,而不是在Web内容模板中可用。
尝试
#set ($themeDisplay = $httpServletRequest.getAttribute("THEME_DISPLAY"))
$themeDisplay.isSignedIn()
这应该适用于网络内容模板。
(感谢@Gonzalo使用前提醒初始化$themeDisplay
)
在您的主题 _diff/templates/portal_normal.vm 中,您已经添加了此代码。
if ($is_signed_in)
<!-- user dropdown starts -->
<div class="btn-group pull-right" >
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user"></i><span class="hidden-phone"> $user_name </span>
<span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="$sign_out_url">Logout</a></li>
</ul>
</div>
<!-- user dropdown ends -->
#end
检查下面的链接 -
https://www.liferay.com/community/forums/-/message_boards/message/25175535
尝试在门户扩展属性中添加此代码
journal.template.velocity.restricted.variables=