更新以获取更多信息: 有没有办法以编程方式从全局范围或当前选定的站点范围中选择所有Web内容。
我想在速度模板" portal_normal.vm"中执行此操作。我写了" $ themeDisplay.getScopeGroupId()。toString()"获得组ID。
我有2个网站/社区,我为每个网站/社区分配了一个用户。一个站点是默认的liferay站点,它具有默认的liferay用户。其他站点是我的自定义站点并拥有自己的用户。当我尝试使用它们中的每一个登录时,我总是获得liferay网站的组ID。我是否需要使用任何其他方法来获取当前登录用户的网站?
答案 0 :(得分:2)
您必须允许在Velocity模板中使用ServiceLocator
。在portal-ext.properties
中设置以下内容:
journal.template.velocity.restricted.variables=
如果您已设置了这些密钥,只需从列表中删除serviceLocator
即可。
使用serviceLocator
,我们可以加载GroupLocalServiceUtil
和JournalArticleLocalServiceUtil
。获取所有网站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()))