Estructura de sitios utilizando PortalProvissioningProvider

Cuando se trabaja con definiciones de sitio en WSS/MOSS se tiende a pensar que únicamente nos proporcionan la base para la creación de sitios con una determinada estructura de listas/bibliotecas y elementos básicos de configuración.

En una próxima entrada comentare como crear una definición de sitio, y muchas de las features no documentadas por Microsoft, que permiten realizar la mayoría de las opciones que se muestran en la página de “Configuración de Sitio”. En esta entrada, veremos que utilizar las definiciones que proporciona microsoft, para crear una colección de sitios con subsitios en varios niveles, empleando únicamente los ficheros xml de configuración.

La estructura que crearemos será la siguiente:

Estructura

Una vez tenemos clara la estructura que vamos a crear, únicamente necesitamos crear 2 ficheros xml:

webtempMySiteProvider.xml: (ubicado en 12/TEMPLATE/3082/XML) en este fichero, definiremos la definición de sitio que se va a emplear. No hay que crear una definición de sitio como tal, lo que pretendemos es que aparezca en la página de creación de sitios. A continuación se muestra el contenido del fichero:

 <Templates xmlns:ows=»Microsoft SharePoint»>
<Template Name=»MySiteProvider» ID=»10900″>
    <Configuration ID=»0″ Title=»Estrucutura desde xml» Hidden=»FALSE» ImageUrl=»/_layouts/images/stsprev.png» Description=»Definicion que creaa toda la estructura de la coleccion de sitios» ProvisionAssembly=»Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c» ProvisionClass=»Microsoft.SharePoint.Publishing.PortalProvisioningProvider» ProvisionData=»xml\estructura.xml» RootWebOnly=»TRUE» DisplayCategory=»MiTopologia» />
   </Template>
</Templates>

Como se puede ver, aparentemente se trata de una definición de sitio básica, salvo por las propiedades:

  • ProvissionAssembly: especifica que librería se utilizará para el aprovisionamiento del sitio.
  • ProvissionClass: especifica que clase se utilizará para el aprovisionamiento del sitio.
  • ProvisionData: especifica el fichero que proporciona los datos para el aprovisionamiento. En nuestro caso estructura.xml

estructura.xml: (ubicado en 12/TEMPLATE/3082/XML) en este fichero se especifica la estructura que hay que crear, utilizando el esquema PortalSchema.xsd. Mediante el uso de y especificaremos los sitios y subsitios que se van a crear. El fichero estructura.xml, con la estructura especificada en la imagen, quedaría de la siguiente forma: 

<?xml version=»1.0″ encoding=»utf-8″ ?>
<portal xmlns=»PortalTemplate.xsd»>
  <web name=»Inicio» siteDefinition=»CMSPUBLISHING#0″ displayName=»Inicio» description=»Inicio» >
    <webs>
      <web name=»sitio1″ siteDefinition=»STS#0″ displayName=»Sitio 1″ description=»Sitio 1″/>
      <web name=»sitio2″ siteDefinition=»MPS#0″ displayName=»Sitio 2″ description=»Sitio 2″/>
      <web name=»sitio3″ siteDefinition=»STS#1″ displayName=»Sitio 3″ description=»Sitio 3″/>
       <webs>
        <web name=»blog» siteDefinition=»BLOG#0″ displayName=»Blog» description=»Blog»/>
        <web name=»wiki» siteDefinition=»WIKI#0″ displayName=»Wiki» description=»wiki»/>
       </webs>
      </web>
      <web name=»sitio4″ siteDefinition=»SRCHCEN#0″ displayName=»Sitio 4″ description=»Sitio 4″/>
      <web name=»sitio5″ siteDefinition=»SPSREPORTCENTER#0″ displayName=»Sitio 5″ description=»Sitio 5″/>
    </webs>
  </web>
</portal>

 En el caso del ejemplo, se utilizan las definiciones de sitio que proporciona Microsoft, pero del mismo modo se puede utilizar con las definiciones que creemos, y de ésta forma, podremos crear la estructura que necesitemos empleando nuestras definiciones de sitio.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *