2014-02-25 112 views
0

我有一個基於結構和模板的Liferay WebContent。我想顯示作者圖片(來自Liferay UserProfile)作爲模板的一部分。在WebContent上添加作者個人資料圖片

有沒有辦法使用Velocity訪問該信息?

我發現這個變量:

$reserved-article-author-id

然而,有一種簡單的方法來獲得使用的AuthorID的圖片?

在個人資料頁,照片顯示是這樣的:

的imgid是不一樣的用戶ID。有沒有簡單的方法從用戶ID獲取imgid?

Liferay Version是6.1。

回答

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

+0

喜,我嘗試過,但它不是工作國王......我在一個與結構相關的模板中使用了這個。即使將serviceLocator變量添加到portal-ext.properties(使用= serviceLocator)並確保加載正確的文件之後。如果我打印$ serviceLocator,$ serviceLocator是輸出... – Martin

+0

沒關係,你的確切版本是好的,但我發現一些文檔試圖用= serviceLocator的另一種方式發送給我...現在它應該工作.. – Martin

1

感謝您的回答,幫了我!在Liferay的6.2 GA2我

只是一件小事

#set ($profilePicUrl = $request.theme-display.path-image + "/user_") 

沒有工作,似乎$ request.theme-display.path圖像不工作在新版本中

但我解決這樣的:

#set ($profilePicUrl = "$theme_display.getPathImage()" + "/user_") 

希望它可以幫助別人:)

+0

謝謝......最後,我還在實施中更改了一些細節以符合我的需求。 – Martin

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> 
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))

問候, 馬丁