0

更新以获取更多信息:有没有办法以编程方式从全局范围或当前选定的站点范围中选择所有 Web 内容。

我想在速度模板“portal_normal.vm”中执行此操作。我写了“$themeDisplay.getScopeGroupId().toString()”来获取组 ID。

我有 2 个站点/社区,并且我为每个站点/社区分配了一个用户。一个站点是具有默认liferay 用户的默认liferay 站点。另一个站点是我的自定义站点并且有我自己的用户。当我尝试使用他们每个人登录时,我总是得到 liferay 站点的组 ID。我需要使用其他方法来获取当前登录用户的站点吗?

4

1 回答 1

2

您必须允许ServiceLocator在 Velocity 模板中使用 。在您的portal-ext.properties设置中:

journal.template.velocity.restricted.variables=

如果您已经设置了这些键,只需serviceLocator从列表中删除。

使用serviceLocator我们可以加载GroupLocalServiceUtilJournalArticleLocalServiceUtil. 获取所有站点的 WebContent 非常简单:

#set ($journal_article_local_service = $serviceLocator.findService("com.liferay.portal.service.JournalArticleLocalService"))

#set ($journal_articles = $journal_article_local_service.getArticles($theme_display.getScopeGroupId()))

要获取全局范围内的所有内容:

对于全局组:

#set ($group_local_service = $serviceLocator.findService("com.liferay.portal.service.GroupLocalService"))

#set ($global_group = $group_local_service.getGroup($theme_display.getCompanyId(), "Global"))

#set ($journal_article_local_service = $serviceLocator.findService("com.liferay.portal.service.JournalArticleLocalService"))

#set ($journal_articles = $journal_article_local_service.getArticles($global_group.getGroupId()))
于 2014-06-19T21:10:24.350 回答