Implementación de plantillas (SharePoint Server 2010)

 

Se aplica a: SharePoint Server 2010

Última modificación del tema: 2016-11-30

En este artículo se describe cómo crear una definición de sitio personalizada e implementarla mediante un paquete de solución.

En este artículo:

  • ¿Qué son las definiciones de sitio?

  • Configuraciones y definiciones de sitio

  • Creación de una definición y una configuración de sitio personalizadas

  • Implementación de una definición de sitio mediante un paquete de solución

¿Qué son las definiciones de sitio?

En Microsoft SharePoint Server 2010, un usuario crea un sitio con una interfaz de usuario mediante la selección de una configuración de definición de sitio o una plantilla de sitio personalizada que define cómo crear una versión del sitio. Una definición de sitio es una plantilla que determina, por ejemplo, las listas, los archivos, los elementos web, las características o las opciones de configuración que se deben proporcionar para un sitio de SharePoint nuevo.

Una definición de sitio es una serie de configuraciones de definición de sitio. Cada definición de sitio especifica un nombre y contiene una lista de las configuraciones de definición de sitio. En SharePoint Server 2010, una definición de sitio está compuesta por un conjunto de archivos XML que se pueden aplicar para aprovisionar nuevos sitios. Los archivos se ubican en servidores web.

Las definiciones de sitio están compuestas principalmente por varios archivos XML y ASPX almacenados en un servidor front-end web en una serie de carpetas en la siguiente ruta: %Program Files%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates.

Un sitio creado a partir de una definición de sitio se agrega a la información estructural y de contenido de la definición del sitio original, pero no se repite. A lo largo de su ciclo de vida, los sitios siguen dependiendo de la definición de sitio como base fundamental. Por este motivo, Microsoft no admite el cambio ni la eliminación de una definición de sitio después de haber creado sitios a partir de la definición. Dichos cambios pueden tener como resultado que los sitios creados a partir de la definición dejen de funcionar correctamente o pueden impedir que se creen nuevos sitios basados en la definición de sitio, ya sea de forma directa o indirecta. Para personalizar una definición de sitio, los programadores pueden agregar una característica que incluya los cambios de la definición de sitio. La definición de sitio en sí no se modifica.

Para obtener más información acerca de los tipos de personalizaciones de definiciones de sitio admitidos por Microsoft, vea el tema sobre los escenarios admitidos y no admitidos para trabajar con definiciones de sitio personalizadas y definiciones de área personalizadas en Windows SharePoint Services, SharePoint Portal Server 2003 y Office SharePoint Server 2007 (https://go.microsoft.com/fwlink/?linkid=187678&clcid=0xC0A).

En el modelo de objetos, SPWebTemplate representa una definición de sitio (y una configuración). Para obtener más información acerca de las plantillas de sitio y las definiciones de sitio, vea el tema sobre las definiciones y plantillas de sitio (https://go.microsoft.com/fwlink/?linkid=184756&clcid=0xC0A).

Nota

El formato STP de una plantilla de sitio personalizada (archivo .stp) está en desuso en SharePoint Server 2010 y se reemplaza por las plantillas de sitio con formato WSP. En Office SharePoint Server 2007, los usuarios pueden guardar un sitio existente como una plantilla de sitio personalizada. La plantilla de sitio se almacena en la base de datos como modelo y los usuarios pueden seleccionar la plantilla de sitio como una base que define cómo crear una versión del sitio. En SharePoint Server 2010, los usuarios pueden guardar un sitio existente como una plantilla. La plantilla se guarda como un archivo .wsp. en la galería de soluciones del sitio de nivel superior en una colección de sitios, donde permanece disponible para la creación de subsitios en todos los sitios web de la colección de sitios.

Para obtener más información acerca de las definiciones de sitio, vea el tema sobre las configuraciones y definiciones de sitio (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0xC0A).

Configuraciones y definiciones de sitio

Una definición de sitio define un sitio específico de SharePoint. Hay cinco definiciones de sitio instaladas de forma nativa en SharePoint Server 2010. Una definición de sitio puede incluir más de una configuración de definición de sitio. Los sitios web de SharePoint se basan en una serie de configuraciones de definición de sitio específicas entre las que se incluyen las siguientes:

  • STS incluye las configuraciones de definición de sitio de Sitio de grupo, Sitio en blanco y Área de documentos.

  • MPS incluye las configuraciones de definición de sitio de Área de reuniones básica, Área de reuniones en blanco, Área de toma de decisiones, Área de reuniones sociales y Área de reuniones de varias páginas.

  • CENTRALADMIN proporciona una configuración de definición de sitio para los sitios web de Administración central.

  • WIKI proporciona una configuración de definición de sitio para sitios web que admiten contenido de la comunidad mediante tecnología wiki.

  • BLOG proporciona una configuración de definición de sitio para blogs.

Cada definición de sitio consta de los archivos ubicados en las subcarpetas de \\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates de los servidores front-end web durante la instalación de SharePoint Server 2010. Los archivos de definición de sitio incluyen archivos de páginas .xml, .aspx, .ascx y .master, archivos de plantilla de documento (.dot, .htm) y archivos de contenido (.gif, .doc).

Páginas no personalizadas y personalización de páginas

Los archivos de definición de sitio se almacenan en la memoria caché del servidor al inicio del proceso de Microsoft Internet Information Services (IIS). Esto permite usar las páginas no personalizadas en los sitios. La información contenida en estos archivos se extrae de la memoria caché en tiempo de ejecución. Las páginas y los esquemas de lista se leen en los archivos de definición de sitio, pero se presentan como archivos reales en el sitio. Las páginas de nuevos elementos web también se consideran páginas no personalizadas.

Cuando se personalizan las páginas del sitio (excepto las personalizaciones basadas en el explorador, como las modificaciones de los elementos web), el contenido se almacena en la base de datos de contenido y se usa la página del sitio personalizada en lugar de la página original de la definición de sitio. Los archivos .aspx cargados se consideran personalizados automáticamente.

Para obtener más información acerca de la personalización de páginas y la conversión en fantasma, vea el tema sobre las configuraciones y definiciones de sitio (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0xC0A).

Archivos de esquema principales

En la siguiente tabla se describen los archivos XML principales que se pueden modificar para una definición de sitio y se muestran sus ubicaciones en el sistema de archivos.

WebTemp.xml

Identifica las definiciones de sitio y proporciona información sobre sus configuraciones. Disponible en:

\TEMPLATE\1033\XML

Onet.xml

Define las áreas de navegación, especifica las definiciones de lista disponibles, especifica las plantillas de documentos y sus archivos, define los tipos de base para las listas y define las configuraciones y los módulos para las definiciones de sitio. Disponible en:

\TEMPLATE\SiteDefinitions\site_type\XML

Schema.xml

Define las vistas, los formularios, la barra de herramientas y los campos especiales de una definición de lista. Cada definición tiene su propio archivo Schema.xml. Disponible en:

\TEMPLATE\FEATURES\List_Definition_Name

DocIcon.xml

Cada servidor front-end web de una implementación de SharePoint Server contiene un archivo DocIcon.xml que asigna identificadores de programación (ProgIDs) y extensiones de nombre de archivo de tipos de documentos a iconos y controles específicos para abrir cada tipo. Los cambios en el archivo DocIcon.xml son generales para la implementación de SharePoint Server y afectan a todas las definiciones de sitio en el servidor front-end web. Disponible en:

\TEMPLATE\XML

Estos archivos XML usan el lenguaje de marcado de la aplicación de colaboración (CAML) (https://go.microsoft.com/fwlink/?linkid=183464&clcid=0xC0A) para definir los aspectos de un sitio. Para obtener más información acerca de estos archivos XML principales que puede usar para personalizar las definiciones de sitio, vea el tema sobre las configuraciones y definiciones de sitio (https://go.microsoft.com/fwlink/?linkid=183458&clcid=0xC0A).

Creación de una definición y una configuración de sitio personalizadas

Para crear definiciones de sitio personalizadas, copie manualmente una definición de sitio existente o importe un archivo .wsp en Visual Studio 2010.

Importación de elementos de un sitio de SharePoint existente

Este método requiere el almacenamiento de un sitio como una plantilla de SharePoint Server para generar un archivo .wsp y, a continuación, la importación del archivo .wsp en Visual Studio 2010 mediante la plantilla del proyecto de importación de soluciones. La plantilla del proyecto de importación del paquete de soluciones de SharePoint permite volver a usar elementos como los tipos de contenido, las definiciones de lista y los campos de sitios de SharePoint existentes en una nueva solución de Visual Studio SharePoint. Para obtener más información acerca de la importación de elementos desde un sitio de SharePoint existente en un proyecto de Visual Studio SharePoint, vea el tema sobre la importación de elementos desde un sitio de SharePoint existente (https://go.microsoft.com/fwlink/?linkid=187040&clcid=0xC0A). En este capítulo se incluye un tutorial en el que se describen las siguientes tareas:

  1. Personalización de un sitio de SharePoint mediante la adición de una columna de sitio personalizada.

  2. Exportación de un sitio de SharePoint a un archivo .wsp.

  3. Importación del archivo .wsp en un proyecto de Visual Studio SharePoint mediante el proyecto de importación de .wsp.

Copia de un sitio de SharePoint existente

Este método requiere la copia de una definición de sitio existente, la modificación de la copia y el cambio de dos archivos de esquema: la copia de un archivo WebTemp.xml y la copia de un archivo Onet.xml.

Advertencia

No modifique el archivo WebTemp.xml instalado originalmente.

  1. Copie una carpeta de definición de sitio existente del directorio Unidad_local:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\SiteTemplates\. La copia debe ser igual que el original y puede asignarle cualquier nombre que no contenga espacios en blanco.

    Por ejemplo, para crear una definición de sitio personalizada derivada de la definición del sitio de grupo para Microsoft SharePoint Server, copie la carpeta \sts.

  2. Haga una copia del archivo WebTemp.xml. Este archivo está ubicado en Unidad_local:\Program Files\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\1033\XML.

    Asigne al archivo un nombre único anexando una cadena al nombre del archivo original; por ejemplo, WebTempAction.xml. En tiempo de ejecución, el compilador combina la información contenida en este archivo con la información contenida en el archivo original para especificar qué configuraciones de definición de sitio están disponibles para la creación de sitios nuevos.

  3. Personalice el contenido del nuevo archivo WebTemp.

    Cada archivo WebTemp.xml contiene una colección de elementos Template y subelementos Configuration que identifican para el compilador todas las configuraciones de definición del sitio de las que se pueden crear versiones. El elemento Configuration define, por ejemplo, un título, una descripción, la dirección URL de la imagen mostrada en la interfaz de usuario y una categoría de presentación que especifica la ficha en la que se muestra la plantilla en la sección Template Selection de la página Crear colección de sitios.

    Importante

    En cada elemento Template definido en el archivo WebTemp, el atributo Name debe contener el mismo nombre que se asigna a la nueva carpeta. Para evitar conflictos con los identificadores usados en SharePoint Server 2010, se deben usar valores únicos mayores que 10.000 para el identificador de atributo.

En el siguiente ejemplo, se usan dos elementos Configuration en el archivo WebTemp.xml para definir distintas configuraciones de definición de sitio para crear versiones de un sitio (una para un sitio de colaboración de investigación y otra para un sitio de área de trabajo de documentos de investigación). En este ejemplo, se usan solo dos configuraciones en una sola definición del sitio, pero puede incluir varias definiciones de sitio, cada una de ellas con varias configuraciones, en un solo archivo WebTemp.xml. Cada definición de sitio hace referencia a una carpeta de definición de sitio diferente y al archivo Onet.xml correspondiente.

<?xml version="1.0" encoding="utf-8" ?>
<Templates xmlns:ows="Microsoft SharePoint">
  <Template Name="RESEARCH" ID="10001">
    <Configuration ID="0" Title="Research Collaboration site" 
      Hidden="FALSE" ImageUrl="_layouts/images/stsprev.jpg" 
      Description="This definition creates a site for the Research 
      team to create, organize, and share general information." 
      DisplayCategory="Collaboration">
    </Configuration>
    <Configuration ID="1" Title="Research Workspace" Hidden="FALSE" 
      ImageUrl="_layouts/images/dwsprev.jpg" Description="This 
      definition creates a site for Research team colleagues to 
      work together on specific documents." 
      DisplayCategory="Collaboration">
    </Configuration>
  </Template>
</Templates>

Como se indica mediante el valor del atributo Name en el elemento Template, en este ejemplo se da por supuesto que hay un directorio de definición de sitio denominado "RESEARCH". Si un archivo WebTemp*.xml especifica más de una definición de sitio, las definiciones se distinguirán por sus valores ID únicos.

Cada elemento Configuration contiene además un atributo ID. La combinación de este atributo ID y el valor del atributo Name en el elemento Template proporciona una referencia al contenido de un elemento Configuration específico de un archivo Onet.xml concreto. En este ejemplo, el atributo Name contiene RESEARCH y los atributos ID contienen 0 y 1, lo que hace referencia a la definición de sitio RESEARCH y a las configuraciones con los identificadores 0 y 1 de Onet.xml.

Es posible que deba restablecer IIS para que la nueva configuración de definición se muestre como una opción en la interfaz de usuario. Para ello, escriba iisreset en un símbolo del sistema.

Para obtener más información acerca de la definición de cada configuración de definición de sitio de Onet.xml, vea el tema sobre el procedimiento para usar configuraciones de definición de sitio (https://go.microsoft.com/fwlink/?linkid=183465&clcid=0xC0A).

Implementación de una definición de sitio mediante un paquete de solución

Para implementar una definición de sitio mediante un paquete de soluciones, agregue un elemento SiteDefinitionManifest al archivo de manifiesto del paquete de soluciones. Agregue el elemento TemplateFiles para definir los archivos de plantilla que se deben implementar en una subcarpeta de la carpeta \14\Template.

Adición de un elemento SiteDefinitionManifest

El elemento SiteDefinitionManifest tiene un atributo Location que usa todos los archivos de la carpeta especificada y crea la carpeta requerida en la carpeta \14\Template\SiteTemplates. El elemento secundario WebTempFile implementa el archivo webtemp*.xml para que la plantilla sea reconocida por Productos de SharePoint 2010, como se muestra en el siguiente ejemplo:

  <SiteDefinitionManifests>
    <SiteDefinitionManifest Location="LitwareSiteTemplate">
      <WebTempFile Location="1033\xml\webtempLitware.xml" />
    </SiteDefinitionManifest>
  </SiteDefinitionManifests>

Adición de un elemento TemplateFile

El elemento TemplateFile de un archivo de manifiesto de la solución se usa para definir los archivos de plantilla que se deben implementar en una subcarpeta de la carpeta \14\Template. Un ejemplo del tipo de archivo que puede implementar de esta forma es el archivo fldtypes*.xml, que define los detalles de un tipo de campo personalizado. Use el atributo Location para especificar la ruta relativa del archivo, indicada mediante la cadena "Text" en el siguiente ejemplo:

  <TemplateFiles
    <TemplateFile
      Location="Text"/>
      ...
  </TemplateFiles>

Para obtener más información acerca de cómo implementar soluciones, vea Implementación de paquetes de solución (SharePoint Server 2010).