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

Liferay 在WebContent上添加作者个人资料图片,liferay,velocity,Liferay,Velocity,我有一个基于结构和模板的Liferay WebContent。我想显示作者图片(来自Liferay UserProfile)作为模板的一部分 有没有办法用Velocity访问这些信息 我发现这个变量: $reserved article author id 但是,有没有一种使用AuthorID获取图片的简单方法 在配置文件页面中,图片以以下方式显示: imgid与userid不同。有没有一种简单的方法可以从userid获取imgid Liferay版本是6.1 这应该适用于6.1: #set

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

有没有办法用Velocity访问这些信息

我发现这个变量:

$reserved article author id

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

在配置文件页面中,图片以以下方式显示:

imgid与userid不同。有没有一种简单的方法可以从userid获取imgid


Liferay版本是6.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" />
#set($userLocalService=$serviceLocator.findService(“com.liferay.portal.service.userLocalService”))
#set($user=$userLocalService.fetchUserById($getterUtil.getLong($reserved-article-author-id.data)))
#设置($profilePicUrl=$request.theme-display.path-image+“/user_389;”)
#if($user.isFemale())
#设置($profilePicUrl=$profilePicUrl+“女性”)
#否则
#设置($profilePicUrl=$profilePicUrl+“男性”)
#结束
#set($profilePicUrl=$profilePicUrl+“\u肖像?img\u id=”)
#设置($profilePicUrl=$profilePicUrl+$user.getGraphicId())

请注意,您的
portal-ext.properties
文件中必须有
journal.template.velocity.restricted.variables=
,才能访问
$serviceLocator
谢谢您的回答,帮了我的忙

只是一件小事

#set ($profilePicUrl = $request.theme-display.path-image + "/user_") 
liferay 6.2 GA2对我不起作用,似乎$request.theme display.path image在新版本中不起作用

但我是这样解决的:

#set ($profilePicUrl = "$theme_display.getPathImage()" + "/user_")
希望它能帮助某人:)

这项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>
#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(“主题显示”))#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+“\u肖像?img\u id=”)
#设置($profilePicUrl=$profilePicUrl+$usuario.getGraphicId())
#set($profilePicUrl=$tD.get(“路径图像”)+“/user厍”)
#如果($usuario.isFemale())
#设置($profilePicUrl=$profilePicUrl+“女性”)
#否则
#设置($profilePicUrl=$profilePicUrl+“男性”)
#结束
#set($profilePicUrl=$profilePicUrl+“\u肖像?img\u id=”)
#设置($profilePicUrl=$profilePicUrl+$usuario.getGraphicId())
#set($profilePicUrl=$profilePicUrl+“&img_id_token=“)
#set($profilePicUrl=$profilePicUrl+$httpUtil.encodeURL($DigesterUtil.digest($usuario.getUuid()))

以下是Liferay 6.2的较小版本:

#set($userConstants=$portal.getClass().forName(“com.liferay.portal.model.userConstants”))

#set($crativeURL=$userConstants.getcrativeURL($request.theme-display.path-image,$user.male,$user.crativeId,$user.userUuid))
您好,我试过了,但不起作用。。。我在一个与结构相关联的模板中使用它。甚至在将serviceLocator变量添加到portal-ext.properties(使用=serviceLocator)并确保加载了正确的文件之后。如果我打印出$serviceLocator,$serviceLocator是输出…没关系,您的确切版本很好,但是我找到的一些文档试图用另一种方式发送给我=serviceLocator。。。现在应该可以了…谢谢。。。最后,我还更改了实现中的一些细节,以满足我的需要。