在WebContent上添加作者个人资料图片

时间:2014-02-25 11:56:36

标签: liferay velocity

我有一个基于结构和模板的Liferay WebContent。我想将作者图片(来自Liferay UserProfile)显示为模板的一部分。

有没有办法通过Velocity访问该信息?

我找到了这个变量:

$reserved-article-author-id

但是,是否有一种使用AuthorID获取图片的简单方法?

在个人资料页面中,图片以这种方式显示:

imgid与userid不同。是否有一种从用户ID获取imgid的简单方法?

Liferay版本是6.1。

4 个答案:

答案 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的小版本:

&#13;
&#13;
#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;
&#13;
&#13;

此致 马丁