Posts Tagged ‘comunidades’

Crear una comunidad

Thursday, November 20th, 2008

A continuación esta el codigo que nos permite crear una comunidad a partir de una comunidad existente,

Obtener comunidad template

Group templateGroup = GroupLocalServiceUtil.getGroupByFriendlyUrl(“/template”);

Crear una comunidad

String name = ParamUtil.getString(actionRequest, “name”);
String description = ParamUtil.getString(actionRequest, “description”);
String friendlyURL = ParamUtil.getString(actionRequest, “friendlyURL”);
Group newGroup = GroupServiceUtil.addGroup(name, description,
GroupImpl.TYPE_COMMUNITY_PRIVATE, StringPool.BLANK, true);

Copiar la configuración del LayoutSet

LayoutSet publicLayoutSet = LayoutSetLocalServiceUtil.getLayoutSet(templateGroup.getGroupId(), false);
LayoutSetServiceUtil.updateLookAndFeel(newGroup.getGroupId(),
false, publicLayoutSet.getThemeId(), publicLayoutSet
.getColorSchemeId(), publicLayoutSet.getCss(),
false);
LayoutSetServiceUtil.updateLookAndFeel(newGroup.getGroupId(),
false, publicLayoutSet.getWapThemeId(), publicLayoutSet
.getWapColorSchemeId(), StringPool.BLANK, true);

LayoutSet privateLayoutSet = LayoutSetLocalServiceUtil.getLayoutSet(templateGroup.getGroupId(), false);
LayoutSetServiceUtil.updateLookAndFeel(newGroup.getGroupId(),
false, privateLayoutSet.getThemeId(), privateLayoutSet
.getColorSchemeId(), privateLayoutSet.getCss(),
false);
LayoutSetServiceUtil.updateLookAndFeel(newGroup.getGroupId(),
false, privateLayoutSet.getWapThemeId(), privateLayoutSet
.getWapColorSchemeId(), StringPool.BLANK, true);

Definir que copiar

Map<String, String[]> parameterMap = new HashMap<String, String[]>();
parameterMap.put(PortletDataHandlerKeys.PERMISSIONS,
new String[] { Boolean.TRUE.toString() });
parameterMap.put(PortletDataHandlerKeys.USER_PERMISSIONS,
new String[] { Boolean.TRUE.toString() });
parameterMap.put(PortletDataHandlerKeys.PORTLET_DATA,
new String[] { Boolean.TRUE.toString() });
parameterMap.put(PortletDataHandlerKeys.PORTLET_SETUP,
new String[] { Boolean.TRUE.toString() });
parameterMap.put(PortletDataHandlerKeys.PORTLET_ARCHIVED_SETUPS,
new String[] { Boolean.TRUE.toString() });
parameterMap.put(PortletDataHandlerKeys.PORTLET_USER_PREFERENCES,
new String[] { Boolean.TRUE.toString() });
parameterMap.put(PortletDataHandlerKeys.THEME,
new String[] { Boolean.TRUE.toString() });

Exportar datos de la comunidad template

byte[] publicOriginalGroup = LayoutServiceUtil.exportLayouts(
templateGroupId, false, parameterMap, null, null);
byte[] privateOriginalGroup = LayoutServiceUtil.exportLayouts(
templateGroupId, true, parameterMap, null, null);

Importar datos a la nueva comunidad

LayoutServiceUtil.importLayouts(newGroup.getGroupId(), false,
parameterMap, publicOriginalGroup);
LayoutServiceUtil.importLayouts(newGroup.getGroupId(), true,
parameterMap, privateOriginalGroup);