2015-09-09 88 views
0

我需要在每個Web內容中定義的portal_normal.vm中設置一些自定義標籤。Liferay速度模板中網頁內容的自定義字段

我的情況:

  1. 進入控制面板 - >自定義字段 - > Web內容
  2. 創建一個名爲 「custom_metas」
  3. 將這個代碼portal_normal.vm <meta property="og:title" content="$themeDisplay.getScopeGroup().getExpandoBridge().getAttribute('custom_metas')" />一個新的自定義字段

此代碼僅適用於自定義字段在網站中創建(不在網頁內容中)。當我在網頁內容中以純文本形式創建時。

在我portal-ext.properties地說:

journal.template.velocity.restricted.variables= 

沒有什麼變化。

最後,我嘗試在liferay論壇中給出的解決方案,但不起作用。注意:$ reserved-article-id.data不會打印任何內容。

#set ($journalArticleLocalService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService")) 
#set ($ja = $journalArticleLocalService.getArticle($getterUtil.getLong($groupId),$getterUtil.getString($reserved-article-id.data))) 
#set ($resourceprimKey = $ja.getResourcePrimKey()) 

#set ($assetEntryLocalService = $serviceLocator.findService("com.liferay.portlet.asset.service.AssetEntryLocalService")) 
#set ($assetEntry = $assetEntryLocalService.getEntry("com.liferay.portlet.journal.model.JournalArticle", $resourceprimKey)) 

#set($JournalArticleResourceLocalService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleResourceLocalService")) 

#set ($journalArticleResource = $JournalArticleResourceLocalService.getArticleResource($assetEntry.getClassPK())) 

#set($JournalArticleLocalService = $serviceLocator.findService("com.liferay.portlet.journal.service.JournalArticleLocalService")) 

#set ($journalArticle = $JournalArticleLocalService.getArticle($getterUtil.getLong($groupId), "$journalArticleResource.getArticleId()")) 

#set ($custom = $journalArticle.getExpandoBridge().getAttribute("custom_metas")) 

$自定義顯示爲純文本

+1

你正在_theme templates_和_web content templates_混淆。在主題模板中,您既沒有單個附加的Web內容文章,也沒有訪問任何Web內容特定變量,如'$ reserved-article-id'。你想顯示_all_ web內容文章或_one_特定網頁內容文章的標籤嗎? –

+0

我需要顯示已加載文章的自定義標籤。我的問題是,網頁內容被加載正文,我需要把頭標籤。我閱讀liferay論壇中關於自定義字段的內容,但是如果它可以加載網頁內容 – Albertogf

回答

1

您是與網頁內容模板混亂主題模板。在主題模板中,您既沒有單個附加的網絡內容文章,也沒有訪問任何網絡內容特定變量,如$reserved-article-id

而你混在一起portlet。您的Web內容文章附加到您網頁上的Portlet - 並且由於您可以在網頁上擁有多個帶Web內容文章的Portlet,因此您沒有加載的文章。

但是,如果你附加標籤,以您的web內容(而不是自定義字段 - 只是在分類部分的代碼),該標籤會在頭自動添加到<meta name="keywords">

如果您需要其他地方的標籤 - 它們存儲在請求屬性WebKeys.PAGE_KEYWORDS(= "LIFERAY_SHARED_PAGE_KEYWORDS")中。

相關問題