我需要帮助打印用户所属的私人和公共网站。
通过重新发布帖子中的代码(How do I get Sites of which the user is a member in Liferay theme?),我可以获取网站,但它也会为用户提供私人页面和公共页面。
如何避免打印用户的私人和公共页面,因为我只需要社区或网站。
<ul>
#foreach($site in $user.mySites)
#if ($site.hasPrivateLayouts())
<li><a href="/group${site.friendlyURL}">$site.descriptiveName</a></li>
#end
#if ($site.hasPublicLayouts())
<li><a href="/web${site.friendlyURL}">$site.descriptiveName</a></li>
#end
#end
</ul>
环境:Liferay 6.1
由于
答案 0 :(得分:1)
我认为不应该为用户使用mysites部分,而应使用用户服务和组服务来获取用户组。
#set($userId = $getterUtil.getLong($request.remote-user))
#set($userLocalService = $serviceLocator.findService("com.liferay.portal.service.UserLocalService"))
#set($user = $userLocalService.getUserById($userId))
#set($groupLocalService=$serviceLocator.findService("com.liferay.portal.service.GroupLocalService"))
#set($userGroup = $groupLocalService.getUserGroup($companyId,$getterUtil.getLong($userId)))
$userGroup
答案 1 :(得分:1)
我认为您可以使用相同的代码进行一些更改:
<ul>
#foreach($site in $user.mySites)
<!-- if it is NOT a user's public or private site only then print it -->
#if(!$site.isUserPersonalSite())
#if ($site.hasPrivateLayouts())
<li><a href="/group${site.friendlyURL}">$site.descriptiveName</a></li>
#end
#if ($site.hasPublicLayouts())
<li><a href="/web${site.friendlyURL}">$site.descriptiveName</a></li>
#end
#end
#end
</ul>
请注意if(!$site.isUserPersonalSite())
代码,如果该网站是用户的公共或私人网站(即包含用户的公共和私人网页),则不要打印任何内容。
答案 2 :(得分:0)
更新liferay根目录中的portal-ext.properties
# Deactivate Personal Community with *private* pages:
layout.user.private.layouts.enabled=false
# Deactivate Personal Community with *public* pages:
layout.user.public.layouts.enabled=false