2011-10-31 33 views
1

我有一个场景,其中在liferay中创建的用户将被分配工具(以iframe的形式)。 每个用户的iframe数量会有所不同,并且当用户登录时,他的公共页面中会自动出现许多iframe。如何通过代码动态添加iframe,在liferay中

我该如何做到这一点?有没有一种方法可以将它保存在公共页面的偏好中(这对每个用户都是唯一的)?或者我应该使用数据库来实现相同的目标? 谢谢

回答

1

添加的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中。

谢谢。

相关问题