我有一个场景,其中在liferay中创建的用户将被分配工具(以iframe的形式)。 每个用户的iframe数量会有所不同,当用户登录时,其公共页面中会自动出现大量的iframe 。
我怎样才能做到这一点?有没有办法可以将其保存在公共页面的首选项中(对每个用户来说都是唯一的)?或者我应该使用DB来实现相同的目标吗? 谢谢
答案 0 :(得分:1)
可以通过代码动态地向ifray添加iframe,这可以通过以下代码实现:
long companyId = themeDisplay.getCompanyId();
long ownerId = PortletKeys.PREFS_OWNER_ID_DEFAULT;
int ownerType = PortletKeys.PREFS_OWNER_TYPE_LAYOUT;
Layout layout = LayoutLocalServiceUtil.getLayout(themeDisplay.getPlid());
LayoutTypePortlet layoutTypePortlet = (LayoutTypePortlet) layout.getLayoutType();
String iframePortletId = layoutTypePortlet.addPortletId(themeDisplay.getUserId(),PortletKeys.IFRAME,"column-2",-1);
PortletPreferences prefs = PortletPreferencesLocalServiceUtil.getPreferences(companyId,ownerId,ownerType,layout.getPlid(),iframePortletId);
prefs.setValue("src", "http://www.google.com");
com.liferay.portal.model.PortletPreferences objPortletPref=PortletPreferencesLocalServiceUtil.updatePreferences(ownerId, ownerType, layout.getPlid(), iframePortletId, prefs);
LayoutLocalServiceUtil.updateLayout(layout.getGroupId(),layout.isPrivateLayout(),layout.getLayoutId(),layout.getTypeSettings());
这将动态添加iframe。
谢谢。