Как динамически добавлять фреймы через код в liferay - PullRequest
1 голос
/ 31 октября 2011

У меня есть сценарий, в котором пользователям, созданным в liferay, будут назначены инструменты (в форме iframe). Количество фреймов будет отличаться для каждого пользователя, и когда пользователь входит в систему, такое количество фреймов должно автоматически появиться на его общедоступной странице .

Как мне этого добиться? Есть ли способ сохранить это в настройках общедоступных страниц (которые будут уникальными для каждого пользователя)? Или я должен использовать БД для достижения того же? Спасибо

1 Ответ

1 голос
/ 23 ноября 2011

Добавление 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 динамически.

Спасибо.

...