Contexto
La idea es reutilizar el formato de algunas páginas creadas en otras comunidades. Esto debería ser posible simplemente con las operaciones exportar/importar, pero las mismas presentan algunas dificultades, por ejemplo, que se reemplacen páginas o se ubiquen en niveles incorrectos dentro de la estructura de la comunidad.
Workaround
Primero se debe tener en cuenta la cantidad de páginas que tiene la comunidad base (para nuestro ejemplo vamos a considerar 7).
- Generar una copia de la comunidad de la cuál se desean extraer ciertas páginas, eliminando todas aquellas páginas que no sean de interés, y luego exportarla.
- Descomprimir y editar el archivo .lar (cómo en nuestro ejemplo, la comunidad base tiene 7 páginas, los layout que se quieran agregar deberán continuar la numeración, a fin de evitar "pisar" páginas).
- Editar el archivo manifest.xml, modificando todas las apariciones de layout-id="1" por layout-id="8" y el path="/groups/../layouts/1/layout.xml" por path="/groups/../layouts/8/layout.xml".
Archivo Original:<root> <header build-number="5203" export-date="lun, 04 abr 2011 10:01:58 -0300" type="layout-set" group-id="14209" private-layout="true" theme-id="o3default_WAR_eportalthemes" color-scheme-id="01"/> <layouts> <layout layout-id="1" path="/groups/14209/layouts/1/layout.xml"/> </layouts> <roles/> <portlets> <portlet portlet-id="71_INSTANCE_Do4c" layout-id="1" path="/groups/14209/portlets/71_INSTANCE_Do4c/14213/portlet.xml"/> <portlet portlet-id="com_ideasoft_o3_portlets_O3Portlet_WAR_o3portal_INSTANCE_2sFz" layout-id="1" path="/groups/14209/portlets/com_ideasoft_o3_portlets_O3Portlet_WAR_o3portal_INSTANCE_2sFz/14213/portlet.xml"/> <portlet portlet-id="15" layout-id="1" path="/groups/14209/portlets/15/14213/portlet.xml"/> <portlet portlet-id="25" layout-id="1" path="/groups/14209/portlets/25/14213/portlet.xml"/> </portlets> </root>
Archivo Modificado:<root> <header build-number="5203" export-date="lun, 04 abr 2011 10:01:58 -0300" type="layout-set" group-id="14209" private-layout="true" theme-id="o3default_WAR_eportalthemes" color-scheme-id="01"/> <layouts> <layout layout-id="8" path="/groups/14209/layouts/8/layout.xml"/> </layouts> <roles/> <portlets> <portlet portlet-id="71_INSTANCE_Do4c" layout-id="8" path="/groups/14209/portlets/71_INSTANCE_Do4c/14213/portlet.xml"/> <portlet portlet-id="com_ideasoft_o3_portlets_O3Portlet_WAR_o3portal_INSTANCE_2sFz" layout-id="8" path="/groups/14209/portlets/com_ideasoft_o3_portlets_O3Portlet_WAR_o3portal_INSTANCE_2sFz/14213/portlet.xml"/> <portlet portlet-id="15" layout-id="8" path="/groups/14209/portlets/15/14213/portlet.xml"/> <portlet portlet-id="25" layout-id="8" path="/groups/14209/portlets/25/14213/portlet.xml"/> </portlets> </root>
- Guardar.
- Renombrar la carpeta ubicada dentro de ../groups/../layouts con el nuevo id, en este caso 8.
- Editar el archivo layout.xml modificando todas las apariciones de layout-id="1" por layout-id="8".
Archivo Original:<layout old-plid="14213" layout-id="1"> <parent-layout-id>0</parent-layout-id> ... </layout>
Archivo Modificado:<layout old-plid="14213" layout-id="8"> <parent-layout-id>0</parent-layout-id> ... </layout>
- Guardar.
- Comprimir nuevamente como zip y renombrar como .lar
- Importar comunidad.
Cómo resultado de este proceso, nuestra comunidad base ahora tendrá 8 páginas.