我要求我必须在webcontent中显示登录URL,如果用户未登录并且还需要显示用户是否已登录我必须显示登出超链接。我搜索了某个地方有$ 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
答案 0 :(得分:4)
$is_signed_in
在主题中可用,而不在webcontent模板中。
尝试
#set ($themeDisplay = $httpServletRequest.getAttribute("THEME_DISPLAY"))
$themeDisplay.isSignedIn()
这应该适用于webcontent模板。
(感谢@Gonzalo提醒您在使用前初始化$themeDisplay
)
答案 1 :(得分:2)
在您的主题_diff / templates / portal_normal.vm中,您已添加此代码。
<!-- 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
答案 2 :(得分:1)
检查以下链接 -
https://www.liferay.com/community/forums/-/message_boards/message/25175535
尝试在portal-ext.properties
中添加此代码journal.template.velocity.restricted.variables=