【发布时间】:2015-01-20 13:01:25
【问题描述】:
我想创建一个 Liferay 挂钩,在服务器启动时创建公共页面。
我已经将钩子绑定到服务器启动。但是我在创建页面时遇到了一些问题。 也许我对用户、组、社区的看法有误等(请记住,此挂钩无权访问 themeDisplay)。
Company company = CompanyLocalServiceUtil.getCompanyByMx(PropsUtil.get(PropsKeys.COMPANY_DEFAULT_WEB_ID));
long companyId = company.getCompanyId();
User defaultUser = UserLocalServiceUtil.getDefaultUser(companyId);
long userId = defaultUser.getUserId();
long groupId = GroupLocalServiceUtil.getCompanyGroup(PortalUtil.getDefaultCompanyId()).getGroupId();
boolean privateLayout = false;
long parentLayoutId = LayoutConstants.DEFAULT_PARENT_LAYOUT_ID;
String name = page.getName();
String title = null;
String description = null;
String type = LayoutConstants.TYPE_PORTLET;
boolean hidden = false;
String friendlyUrl = "/test";
ServiceContext serviceContext = new ServiceContext();
serviceContext.setScopeGroupId(groupId);
LayoutLocalServiceUtil.addLayout(userId, groupId, privateLayout, parentLayoutId, name, title, description, type, hidden, friendlyUrl, serviceContext);
LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();
layoutTypePortlet.setLayoutTemplateId(userId, page.getLayoutId());
LayoutLocalServiceUtil.updateLayout(layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(), layout.getTypeSettings());
该页面从未列出...
【问题讨论】:
-
所以也许正确的问题是:我应该如何让公司、组、用户等使用公共页面?
-
我需要一个按钮来发表这条评论:如果您在不同的位置发布相同的问题,请将两者联系起来,以便 a) 如果您已经有了答案,并且 b) 任何人如果碰巧在另一个位置,有相同问题的人可以找到答案。 liferay.com/community/forums/-/message_boards/message/47932640
-
6.2 版有一些示例代码,请在此处查看我的答案:stackoverflow.com/a/37328258/1180235