2

特定のユーザーによってアップロードされたWebコンテンツを返すJavaAPI呼び出しがliferayにあるかどうかを尋ねたいと思います。

たとえば、あるコンテンツをアップロードした1人のユーザーがいて、このコンテンツをポートレットに表示したいのですが、Javaを介してこれを行うにはどうすればよいですか?

4

1 に答える 1

2

Web-content Displayポートレット内に表示されるWebコンテンツについて具体的に話している場合は、JournalArticleServiceおよびJournalArticleLocalServiceAPIを使用して、ユーザーに応じてコンテンツをフェッチできます。
Liferay 6.0より前は、Webコンテンツはとして知られJournalArticleていたため、API名は変更されていません。

したがって、たとえば:

DynamicQuery次のようにAPIを使用できます。

long userId = 10987L; // ofcourse you need to find this

DynamicQuery dynamicQuery = JournalArticleLocalServiceUtil.dynamicQuery();

dynamicQuery.add(RestrictionsFactoryUtil.eq("userId", userId));

int startOfList = 0;
int endOfList = 1000;
// if you want all the JournalArticle retrieved then use:
// int endOfList = QueryUtil.ALL_POS;

// this will retrieve the list of webcontents
List<JournalArticle> articles = (List<JournalArticle>) JournalArticleLocalServiceUtil.dynamicQuery(dynamicQuery, startOfList, endOfList);

上記のコードはすべてのを取得するJournalArticleため、これらのバージョンはすべて同じJournalArticleテーブルに格納されるため、単一のWebコンテンツのすべてのバージョンを取得できます。したがって、このために、、、、、などのdynamicQueryフィールドの条件を追加できます。versionidresourcePrimKeyarticleIdgroupIdcompanyId

または、より複雑なニーズがある場合は、liferayでcustom-sql-finderを作成して、LiferayDBテーブルの任意の組み合わせから目的のデータをフェッチできます。


ブログ、Wiki、ファイル、Webコンテンツなどのコンテンツについて話している場合は、それぞれを使用するか、特定のユーザーのアセットを取得するために*LocalServiceUtil使用できます。AssetEntryLocalServiceUtil

したがって、上記のようにAPIをAssetEntryLocalServiceUtil使用することもできます。DynamicQueryコードは同じではないかもしれませんが、同じ行に沿っています。


このブログDynamicQueryからAPIについて詳しく知ることができます。

于 2013-01-18T10:36:36.357 に答える