获取特定于用户的Web内容

时间:2013-01-17 08:48:44

标签: liferay webcontent

我想询问liferay中是否有任何Java API调用返回由特定用户上传的Web内容。

例如,我有一个用户上传了一些内容,我想在portlet中显示这个内容,我该怎么做呢?

1 个答案:

答案 0 :(得分:2)

如果您专门讨论Web-content Display portlet中显示的网络内容,那么您可以使用JournalArticleServiceJournalArticleLocalService API来获取内容,具体取决于用户。<登记/> 在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,因此您将获得单个Web内容的所有版本,因为所有这些版本都存储在同一JournalArticle表中。因此,您可以为dynamicQueryversionidresourcePrimKeyarticleId,{{}等字段添加条件groupId 1}}等等。

或者,如果您有更复杂的需求,可以在liferay中创建custom-sql-finder以从Liferay数据库表的任意组合中获取所需数据。


如果您正在讨论博客,维基,文件,Web内容等内容,则可以使用各自的companyId,也可以使用*LocalServiceUtil来获取特定用户的资源。

因此,对于AssetEntryLocalServiceUtil,您也可以使用AssetEntryLocalServiceUtil API,如上所示。代码可能不一样,但也是一样的。


您可以从blog了解DynamicQuery API的更多信息。