Introducción
Vamos a elaborar una plantilla o definición de sitio de acuerdo a las necesidades de la organización, a partir de una definición ya existente. Muchas veces las definiciones otorgadas por MOSS (o WSS) carecen de algún componente en particular, ya sea algún web part, imagen o cualquier elemento que pueda colocarse en un sitio web SharePoint, de acuerdo a los requerimientos organizacionales, para la creación de uno o varios sitios web. Es dentro de este contexto que desearemos crear una definición de sitio personalizada. Típicamente no crearemos una plantilla de sitio desde cero sino que tomaremos como base alguna definición ya existente (la que más se acerque a nuestro resultado deseado) y la modificaremos de acuerdo a las necesidades.
Una definición de sitio especifica o "define" (perdón por la redundancia) uno o varios tipos de sitios (también llamados plantillas), como pueden ser Sitio de Grupo, Sitio en Blanco, etc, todos parte de una sola definición, pero empleando una configuración individual por cada sitio.
Escenario
La plantilla que crearemos será una variación de la plantilla de “Sitio de grupo”, la cual mostrará en lugar del logo de Windows SharePoint Services, un logo personalizado cada vez que se cree un sitio utilizando ésta plantilla.
Preparación
Antes de empezar, debemos copiar el archivo logoCustom.gif (adjunto a este post) hacia la carpeta C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES de nuestra VPC:
1. Descargamos el archivo logoCustom.gif
2. Luego vamos a la VPC y hacemos WINDOWS + E
3. Damos doble clic en Local Disc (C:)
4. Damos doble clic en Program Files
5. Damos doble clic en Common Files
6. Damos doble clic en Microsoft Shared
7. Damos doble clic en web server extensions
8. Damos doble clic en 12
9. Damos doble clic en TEMPLATE
10. Damos doble clic en IMAGES
11. Ahora arrastramos el archivo logoCustom.gif hacia la carpeta C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\IMAGES de nuestra VPC
12. No cerramos el explorador de Windows de la VPC ya que lo continuaremos utilizando
Accediendo al sistema de archivos
Para crear una definición de sitio tenemos que tener acceso al sistema de archivos de cada uno de los servidores web de front-end. En este caso tenemos un solo servidor entonces lo haremos una sola vez, pero el trabajo realizado de aquí en adelante se debe repetir idénticamente en cada servidor web de front-end que tengamos en la implementación.
1. Subimos un nivel en el sistema de archivos
2. Esto nos deja en la ruta C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE. Ahí observamos el siguiente esquema de carpetas:
Debemos prestar especial atención a las carpetas “3082” y “SiteTemplates” ya que éstas contienen archivos que necesitaremos modificar para la creación de nuestra plantilla.
3. Damos doble clic a la carpeta “SiteTemplates”. Podremos observar muchas carpetas. Cada una de éstas carpetas contiene una definición de sitio con múltiples plantillas cada una, proporcionadas por SharePoint. Lo que haremos es tomar una definición como base y realizarle modificaciones.
4. Damos clic derecho a la carpeta “sts” y elegimos Copy.
5. Subimos un nivel en el sistema de archivos.
6. Hacemos clic derecho y elegimos la opción Paste.
7. Una vez pegada la carpeta la seleccionamos haciéndole clic.
8. Damos un clic en el nombre para poder cambiarlo. El nombre se resaltará en azul.
9. Le damos el nombre “CUSTOM” y apretamos Enter.
10. Damos clic derecho a ésta carpeta y seleccionamos la opción Cut.
11. Damos doble clic a la carpeta “SiteTemplates”.
12. Damos clic derecho en el contenido y elegimos la opción Paste.
13. Subimos un nivel en el sistema de archivos.
14. Hacemos doble clic en la carpeta 3082.
15. Hacemos doble clic en la carpeta XML. Ubiquemos el archivo WEBTEMP.XML
16. Damos clic derecho a WEBTEMP.XML y elegimos la opción Copy.
17. Subimos un nivel en el sistema de archivos.
18. Hacemos clic derecho y elegimos la opción Paste.
19. Una vez pegado el archivo lo seleccionamos haciéndole clic.
20. Damos un clic en el nombre para poder cambiarlo. El nombre se resaltará en azul.
21. Le damos el nombre “WEBTEMPCUSTOM.XML” (sin comillas) y apretamos Enter.
22. Damos clic derecho a éste archivo y seleccionamos la opción Cut.
23. Hacemos doble clic en la carpeta XML.
24. Damos clic derecho en el contenido y elegimos la opción Paste. –es absolutamente necesario que el sufijo del nombre de éste archivo coincida con el nombre de carpeta de nuestra nueva definición, en este caso CUSTOM.

Creando nuestra definición de sitio
1. Damos clic derecho al archivo WEBTEMPCUSTOM.XML y seleccionamos la opción Modificar con Office SharePoint Designer. Se abrirá SharePoint Designer con el archivo. Aquí definiremos cuántos tipos de sitios nos otorgará la definición CUSTOM, agrupados por plantillas mediante las etiquetas <Template />, especificando el sitio dentro de cada plantilla mediante la etiqueta <Configuration />.
2. Borramos el código de modo que nos quedemos únicamente con lo siguiente:

Sólo nos quedamos con la plantilla de nombre “STS”, que es la que finalmente utilizaremos como base para nuestra nueva definición.
3. Borramos toda la línea que tiene <Configuration ID=1… >
4. Borramos toda la línea que tiene <Configuration ID=2… >
5. Reemplazamos el atributo Name de “STS” a “CUSTOM”
6. Reemplazamos el atributo ID de <Template> de 1 a 10001 (el ID siempre debe ser único y mayor que 10000).
7. Reemplazamos el título de “Sitio de grupo” a “Sitio de equipo CUSTOM”
8. Reemplazamos la descripción por “Este es un sitio creado para este How-To. Provee una Biblioteca de Documentos y listas para administrar anuncios, un calendario, tareas y discusiones”.
9. Verificamos que el resultado final sea el mostrado en la siguiente figura:

10. Salvamos los cambios. En este archivo se define únicamente el título, la disponibilidad, la imagen previa y la descripción mostrada en la pantalla a la hora de seleccionar una plantilla para un nuevo sitio.
11. Regresamos al Explorador de Windows que tenemos abierto y presionamos dos veces el botón para poder ubicarnos en el directorio C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE
12. Hacemos doble clic en la carpeta SiteTemplates
13. Hacemos doble clic en la carpeta CUSTOM
14. Hacemos doble clic en la carpeta xml
25. Damos clic derecho en el archivo ONET.XML y elegimos la opción Modificar con Office SharePoint Designer. En este archivo podemos (http://msdn2.microsoft.com/en-us/library/ms474369(d=printer).aspx):
a. Definir los links del menú izquierdo para el Home Page de los sitios, pero se aplicarán a la vez para todas las plantillas de la definición, dentro del elemento <NavBars /> (http://msdn2.microsoft.com/en-us/library/ms430616.aspx)
b. Las listas disponibles para poder crearse a partir de la página “Crear”, dentro del elemento <ListTemplates /> (http://msdn2.microsoft.com/en-us/library/ms439434.aspx).
c. Las listas y Web Parts que vendrán ya instaladas en una determinada configuración, dentro de cada elemento <Module /> (http://msdn2.microsoft.com/en-us/library/ms460356.aspx)referenciado por cada elemento <Configuration /> (http://msdn2.microsoft.com/en-us/library/ms476942(d=printer).aspx) --que se enlaza a WEBTEMPCUSTOM.XML mediante el atributo ID.
d. Definir si éstos elementos se muestran o no en la barra de navegación izquierda.
e. Las plantillas para cada tipo de documento que se utilice en el sitio (Word, Excel, etc.) mediante el elemento <DocumentTemplateFiles /> (http://msdn2.microsoft.com/en-us/library/ms416769.aspx), así como las plantillas para bibliotecas de documentos (http://msdn2.microsoft.com/en-us/library/ms411227.aspx).
f. Los Features que dispondrá la colección de sitios mediante el elemento <SiteFeatures /> (http://msdn2.microsoft.com/en-us/library/ms469685.aspx), así como los Features disponibles a nivel de subsitio, mediante el elemento <WebFeatures /> (http://msdn2.microsoft.com/en-us/library/ms467789.aspx)
g. etc etc etc (ver SDK: Onet.xml --> http://msdn2.microsoft.com/en-us/library/ms474369(d=printer).aspx)
Nota:
Cada etiqueta <Configuration /> en WEBTEMPCUSTOM.XML debe tener un atributo ID con un valor que coincide con el valor del atributo ID de la etiqueta <Configuration /> en el archivo ONET.XML
15. Ahora cambiaremos la imagen por defecto que muestra cada sitio creado mediante nuestra plantilla. Para ello, vamos a la línea 173 del código.
16. Reemplazamos el nombre de archivo /_layouts/images/homepage.gif (dentro de <iwp:ImageLink>) por /_layouts/images/logoCustom.gif. Cabe mencionar que estamos dentro del módulo con nombre “Default” (<Module Name="Default" Url="" Path="">), que es utilizado por la configuración con ID=0 (<Configuration ID="0" Name="Default">), la cual es la única que utilizamos en WEBTEMPCUSTOM.XML.
17. Salvamos los cambios y salimos de SharePoint Designer.
18. Para que los cambios se vean reflejados debemos reiniciar la aplicación web. Damos clic en Start, Run y escribimos iisreset, seguido de Enter.
Creación de un sitio con nuestra definición
1. Abrimos una ventana de Internet Explorer
2. En la barra de direcciones escribimos http://<servidor> seguido de Enter
3. Ahora podemos crear un sitio utilizando nuestra plantilla. Para ello hacemos clic en Acciones del Sitio, Crear Sitio y podremos ver nuestra plantilla disponible para su uso

4. Escribimos en Título “Sitio del Curso”
5. Escribimos en Descripción “Este es un sitio que hemos creado con nuestra propia plantilla”
6. En Dirección del sitio web escribimos “customSite”
7. En la Selección de Plantilla hacemos clic en “Sitio de equipo CUSTOM” tal como lo muestra la figura anterior
8. Damos clic en Crear
9. Hemos creado el sitio con nuestra propia plantilla y con una imagen personalizada, tal como lo muestra la figura

Notas finales
-.M.-