This page completely focus on every step of liferay development
Create a Layout, Add portlet Dynamically to it.
IntroductionThis page will show you how to programmatically:
- Create a new layout (page)
- Change the layout template for that page
- Place a content display portlet with a journal article already selected
- Save the layout settings
Create a new layout (page)
Use one of the addLayout methods of the LayoutLocalServiceUtil
long userId = themeDisplay.getUserId(); long groupId = themeDisplay.getScopeGroupId(); boolean privateLayout = false; long parentLayoutId = 0; String name = "myNewPage"; String title = null; String description = null; String type = LayoutConstants.TYPE_PORTLET; boolean hidden = true; String friendlyURL = "/myNewPage"; Layout layout = LayoutLocalServiceUtil.addLayout(userId, groupId, privateLayout, parentLayoutId, name, title, description, type, hidden, friendlyURL);
Change the layout template for that page
LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType(); layoutTypePortlet.setLayoutTemplateId(userId, "my_layout_template_id");
Place a content display portlet with a journal article already selected
// add a content display portlet // The column id and position (last 2 parameters below) will depend on your layout template String journalPortletId = layoutTypePortlet.addPortletId(userId, PortletKeys.JOURNAL_CONTENT, "column-3", -1); long companyId = themeDisplay.getCompanyId(); long ownerId = PortletKeys.PREFS_OWNER_ID_DEFAULT; int ownerType = PortletKeys.PREFS_OWNER_TYPE_LAYOUT; // Retrieve the portlet preferences for the journal portlet instance just created PortletPreferences prefs = PortletPreferencesLocalServiceUtil.getPreferences(companyId, ownerId, ownerType, layout.getPlid(), journalPortletId); // set desired article id for content display portlet prefs.setValue("article-id", "123456"); prefs.setValue("group-id", String.valueOf(groupId)); // update the portlet preferences PortletPreferencesLocalServiceUtil.updatePreferences(ownerId, ownerType, layout .getPlid(), journalPortletId, prefs);
Save the layout settings
Now we update the layout to save our changes
LayoutLocalServiceUtil.updateLayout(layout.getGroupId(), layout.isPrivateLayout(), layout.getLayoutId(), layout.getTypeSettings());
Thanks JAY nice post , I was searching for this thing for a long time.good u saved my time.
ReplyDeletekeep posting.