我有一个基于结构和模板的Liferay WebContent。我想将作者图片(来自Liferay UserProfile)显示为模板的一部分。
有没有办法通过Velocity访问该信息?
我找到了这个变量:
$reserved-article-author-id
但是,是否有一种使用AuthorID获取图片的简单方法?
在个人资料页面中,图片以这种方式显示:
imgid与userid不同。是否有一种从用户ID获取imgid的简单方法?
Liferay版本是6.1。
答案 0 :(得分:1)
这应该适用于6.1:
#set ($userLocalService = $serviceLocator.findService("com.liferay.portal.service.UserLocalService"))
#set ($user = $userLocalService.fetchUserById($getterUtil.getLong($reserved-article-author-id.data)))
#set ($profilePicUrl = $request.theme-display.path-image + "/user_")
#if ($user.isFemale())
#set ($profilePicUrl = $profilePicUrl + "female")
#else
#set ($profilePicUrl = $profilePicUrl + "male")
#end
#set ($profilePicUrl = $profilePicUrl + "_portrait?img_id=")
#set ($profilePicUrl = $profilePicUrl + $user.getPortraitId())
<img src="$profilePicUrl" />
请注意,journal.template.velocity.restricted.variables=
文件中必须有portal-ext.properties
才能访问$serviceLocator
答案 1 :(得分:1)
谢谢你的回答,帮帮我了!
只是一件小事
#set ($profilePicUrl = $request.theme-display.path-image + "/user_")
在liferay 6.2 GA2中没有为我工作,似乎 $ request.theme-display.path-image 在新版本中不起作用
但我这样解决了:
#set ($profilePicUrl = "$theme_display.getPathImage()" + "/user_")
希望它可以帮助某人:)
答案 2 :(得分:0)
这项工作在6.2:
试试这个:
#set ($journalArticleLocalService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService"))
#set ($jaId = $getterUtil.getString($reserved-article-id.data))
#set ($ja = $journalArticleLocalService.getArticle($getterUtil.getLong($groupId),$jaId))
#set ($userLocalService = $serviceLocator.findService("com.liferay.portal.service.UserLocalService"))
#set ($usuario = $userLocalService.getUserById($getterUtil.getLong($ja.getUserId())))
#set ($tD = $request.get("theme-display")) #set ($DigesterUtil = $portal.getClass().forName("com.liferay.portal.kernel.util.DigesterUtil"))
#set ($DigesterUtil = $portal.getClass().forName("com.liferay.portal.kernel.util.DigesterUtil"))
#set ($profilePicUrl = $profilePicUrl + "_portrait?img_id=")
#set ($profilePicUrl = $profilePicUrl + $usuario.getPortraitId())
#set ($profilePicUrl = $tD.get("path-image") + "/user_")
#if ($usuario.isFemale())
#set ($profilePicUrl = $profilePicUrl + "female")
#else
#set ($profilePicUrl = $profilePicUrl + "male")
#end
#set ($profilePicUrl = $profilePicUrl + "_portrait?img_id=")
#set ($profilePicUrl = $profilePicUrl + $usuario.getPortraitId())
#set ($profilePicUrl = $profilePicUrl + "&img_id_token=")
#set ($profilePicUrl = $profilePicUrl + $httpUtil.encodeURL($DigesterUtil.digest($usuario.getUuid())))
<div class="img_user">
<img src="$profilePicUrl"/>
</div>
答案 3 :(得分:0)
这是Liferay 6.2的小版本:
#set($userConstants = $portal.getClass().forName("com.liferay.portal.model.UserConstants"))
#set($portraitUrl = $userConstants.getPortraitURL($request.theme-display.path-image, $user.male, $user.portraitId, $user.userUuid))
&#13;
此致 马丁