Il modo più semplice per creare un template di sito per SharePoint 2007 (WSS3 - MOSS) e quello di partire da uno esistente e modificarlo.
I passi da seguire sono 3:
  • copia un template esistente, ad esempio il template sts (12\TEMPLATE\SiteTemplates) e rinominalo in SgartSite
  • crea un file WEBTEMP_SgartSite.xml in 12\TEMPLATE\1033\XML e modificalo (vedi dopo)
  • riavvia IIS (iisreset)

XML: WEBTEMP_SgartSite.xml
<?xml version="1.0" encoding="utf-8"?>
<Templates xmlns:ows="Microsoft SharePoint">
  <!-- ID > 10000 e univoco nella farm 
          Name = Nome della directory del template di sito senza spazi -->
  <Template Name="SgartSite" ID="10100">
    <Configuration ID="0"
      Title="Sgart 1"
      Hidden="FALSE"
      ImageUrl="/_layouts/images/blankprev.png"
      Description="Template di esempio 1."
      DisplayCategory="Sgart"
    >
    </Configuration>
    <Configuration ID="1"
      Title="Sgart 2"
      Hidden="FALSE"
      ImageUrl="/_layouts/images/blankprev.png"
      Description="Template di esempio 2."
      DisplayCategory="Sgart"
    >
    </Configuration>
  </Template>
</Templates>

Praticamente abbiamo creato due nuovi template di sito, o meglio un unico template di sito con due configurazioni disponibili.
Le cose da tenere presente sono:
  • l'atributo ID del tag Template deve essere maggiore di 10000 ed univoco nella farm
  • l'attributo Name del tag Template deve con il 'nome della directory del template di sito e non deve contenere spazi
  • l'attributo ID del tag Configuration è un progressivo univoco nel template
  • il file WEBTEMP<xxx>.xml deve sempre iniziare con WEBTEMP, seguito da una stringa qualsiasi (es il nome del template), con estenzione xml. Questo informa SharePoint della presenza del nuovo template di sito.
Ovviamente in un caso reale andrà personalizzato anche il nuovo template contenuto in 12\TEMPLATE\SiteTemplates\SgatSite i file onet.xml, default.aspx, ecc.

Se vuoi creare una solution servono ancora 3 file:
  • manifest.xml : descrive la solution
  • solution.ddf : descrive come creare il file wsp
  • install.bat : crea il file solution e installa

XML: manifest.xml
<Solution SolutionId="AB7D6BE5-D0A0-4EFA-BB63-746510B6D147"
	xmlns="http://schemas.microsoft.com/sharepoint/" >
  <SiteDefinitionManifests>
    <SiteDefinitionManifest Location="SgartSite" >
      <WebTempFile Location="1033\xml\WEBTEMP_SgartSite.xml" />
    </SiteDefinitionManifest>
  </SiteDefinitionManifests>
</Solution>

Text: solution.ddf
.OPTION EXPLICIT     ; Generate errors 
.Set CabinetNameTemplate=SgartSite.wsp     
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="On"
.Set Cabinet=on
.Set DiskDirectory1=

.Set DestinationDir=
manifest.xml

.Set DestinationDir=SgartSite
SgartSite\default.aspx
SgartSite\defaultdws.aspx

.Set DestinationDir=SgartSite\xml
SgartSite\xml\ONET.XML

.Set DestinationDir=1033\xml
WEBTEMP_SgartSite.xml

DOS / Batch file: install.bat
set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\web server extensions\12\BIN\stsadm.exe
set PackageName=SgartSite.wsp

REM CREA SOLUTION
makecab.exe  /F solution.ddf


REM UNINSTALL 
"%SPAdminTool%" -o retractsolution -name "%PackageName%" -local
"%SPAdminTool%" -o deletesolution -name "%PackageName%"

REM INSTALL
"%SPAdminTool%" -o addsolution -filename "%PackageName%"
"%SPAdminTool%" -o deploysolution -name "%PackageName%" -local -allowGacDeployment
dopo il deploy della solution non server fare iisreset
Potrebbe interessarti anche: