1
我有一个场景,其中在liferay中创建的用户将被分配工具(以iframe的形式)。 每个用户的iframe数量会有所不同,并且当用户登录时,他的公共页面中会自动出现许多iframe。如何通过代码动态添加iframe,在liferay中
我该如何做到这一点?有没有一种方法可以将它保存在公共页面的偏好中(这对每个用户都是唯一的)?或者我应该使用数据库来实现相同的目标? 谢谢
我有一个场景,其中在liferay中创建的用户将被分配工具(以iframe的形式)。 每个用户的iframe数量会有所不同,并且当用户登录时,他的公共页面中会自动出现许多iframe。如何通过代码动态添加iframe,在liferay中
我该如何做到这一点?有没有一种方法可以将它保存在公共页面的偏好中(这对每个用户都是唯一的)?或者我应该使用数据库来实现相同的目标? 谢谢
添加的iframe LIFERAY可以从代码中动态完成的,这是由下面的代码实现:
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中。
谢谢。