2011-07-12 6 views
1

私はこのような資産のエントリを取得:AssetEntryのライフコンテンツを取得するにはどうすればいいですか?

List<AssetEntry> emt = AssetEntryLocalServiceUtil.getEntries(q); 

資産エントリはassetEntry.getTitle()のような多くの方法を持っている - しかし、ソース(のWebContentの入力答え)を取得していません。これは、ジャーナリストのtaglibで次のように動作します。 <liferay-ui:journal-article articleId="74550" groupId="10164" ></liferay-ui:journal-article>

AssetEntryを使用してWebコンテンツのコンテンツを取得するにはどうすればよいですか?

答えて

2

assetEntryを使用すると、getClassName()( "com.liferay.portlet.journal.model.JournalArticle")とgetClassPK()を組み合わせてWebコンテンツを取得できます。 assetEntryのコンテンツ

JournalArticle wc = JournalArticleLocalServiceUtil.getArticle(assetEntry.getClassPK()); 
1
AssetEntry assetEntry = ...; 

JournalArticle article = JournalArticleLocalServiceUtil.getLatestArticle(assetEntry.getPrimaryKey()); 
String xmlString = article.getContent(); //whole xml content with all translations 
//or 
String xmlString = article.getContentByLocale(languageId); //languageId is some like 'en', 'es' ... 
+0

これは、常にちょうどませJournalArticleがで存在しない」のようなエラーがスローされます主キー722473 "である。 AssetEntryはJournalArticleなしで存在しますか? – Nenotlep

+0

はい@Nenotlep。 AssetEntryはそれ自体がJournalArticleである必要はありません。 Liferayフォーラムから引用すると、「資産は何でも、ブログ投稿、雑誌記事、投票質問/回答、... AssetEntryは特定の資産を表すエンティティです。 – evaldeslacasa

1

あなたはこのような

xmlRequestがフォーム要求を生成することができます
JournalContentUtil.getDisplay(journalArticle.getGroupId(), journalArticle.getArticleId(), 
      null, null, locale.toString(), xmlRequest); 

上記xmlStringの言及を形成するコンテンツにアクセスすることができます:あなたは、次を呼び出すことができ、この情報を持つ

このような応答は

String xmlRequest = PortletRequestUtil.toXML(request,response); 
マークはこの

JournalArticle article = JournalArticleLocalServiceUtil.getLatestArticle(assetEntry.getPrimaryKey()); 

これは、Liferayの6.1.1のために正常に動作し、古いバージョンで動作するはずのように、上記のように

とJournalArticleを得ることができます。

0
JournalArticleResource journalArticleResourceObj = JournalArticleResourceLocalServiceUtil.getJournalArticleResource(ae.getClassPK()); 
JournalArticle journalArticleObj = JournalArticleLocalServiceUtil.getArticle(themeDisplay.getScopeGroupId(),journalArticleResourceObj.getArticleId()); 

journalArticleObjにはすべての必須データがあります。

0

私は以下のコードを試していませんが、これはアセットパブリッシャーのデフォルトの表示(要約)で動作するコードです。

AssetRenderer assetRenderer =(AssetRenderer)request.getAttribute( "view.jsp-assetRenderer"); 文字列の要約= assetRenderer.getSummary(ロケール);

あなたは、ファイル内のコードを確認することができます。/liferay/liferay620/tomcat-7.0.42/webapps/ROOT/html/portlet/asset_publisher/display

関連する問題