2011-10-31 15 views
1

liferayで作成されたユーザーにツール(iframe形式)が割り当てられるシナリオがあります。 iframeの数はユーザーごとに異なります。ユーザーがログインすると、多数のiframeが公開ページに自動的に表示されます。iframeをコードで動的に追加する方法

どうすればこの問題を解決できますか?パブリックページの設定でこれを保存できる方法はありますか(ユーザーごとに一意になります)。または私は同じを達成するためにDBを使用する必要がありますか? はありがとうのLiferayへのiframeを追加

答えて

1

は、コードから動的に行うことができ、これは、コードに従うことによって達成される:

  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を追加します。

ありがとうございます。

関連する問題