Masterpages in MOSS 2007

Durch das Masterpage Konzept bietet Microsoft Office SharePoint Server 2007 (MOSS 2007) in der aktuellen SharePoint Version eine neue Möglichkeit das Layout und Erscheinungsbild eines SharePoint Portals zentral zu Verwalten. Eine zentrale Rolle spielt dabei die Datei Onet.xml, die die Grundkonfiguration eines Sitetemplates (Seitentyp) steuert.

Damit man ein Sitetemplate von einer neu erstellten Masterpage ableiten kann, muss die neue Masterdatei in der ONET.xml als Modul (Ressource) integriert werden. In diesem Beispiel befindet sich die neue Masterdatei "namics.master" im gleichen Verzeichnis wie die Original Sharepoint Masterdatei "default.master":
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\GLOBAL
Dadurch kann das virtuelle Verzeichnis "_catalogs/masterpage" weiterhin als Pfadangabe verwendet
werden.

<Module Name="NamicsMasterPage" Url="_catalogs/masterpage" SetupPath="global">
<File Url="namics.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE" />
</Module>

Sobald das Modul bekannt bemacht wurde, kann es in der Templatedefinition als Modul integriert werden:

<Configuration ID="0" Name="Default" CustomMasterUrl="_catalogs/masterpage/namics.master">
<Lists>[…]
<Modules>
<Module Name="Default" />
<Module Name="NamicsMasterPage" />
</Modules>
<SiteFeatures>[…]
<WebFeatures>[…]
</Configuration>

i-6179c14ac32262387ef2a9878ba6e42b-onetxml-thumb.jpg

Abbildung: Beispielauszug der onet.xml

Die Anpassung der onet.xml bedeutet noch nicht, dass nun das Template bereits angewendet wird. Dafür ist die neue Masterdatei ist nun in jeder ASPX-Seite dieses Sitetemplates bekannt als: ~masterurl/custom.master
Möchte man nun auf diese Master verweisen, passt man die entsprechende *.aspx Seite im Sitetemplate
an:

<%@ Page language="C#" MasterPageFile="~masterurl/custom.master" Inherits="Microsoft.SharePoint.WebPartPages.WebPartPage,…" %>

Fertig.

Hinweise zum Arbeiten mit Mastertemplates
Man sollte vermeiden die default.master oder ein von Microsoft ausgeliefertes Sitetemplate anzupassen.
Dies kann bei Fehlern dazu führen, dass die gesamte SharePoint Plattform nicht mehr funktioniert, oder dass die eigenen Änderungen durch Software Patches von Microsoft wieder überschrieben werden. Der bessere Weg ist immer die Erstellung eigener Sitetemplates, die sich von einer eigenen Masterpage ableiten.

Da es momentan wenig deutsche Anleitungen zum Thema gibt, gibt es hier noch einen kleinen Tip zur Selbsthilfe: die Meetingsites der Grundinstallation von WSS v3 leiten sich bereits von dem Custom Master "mwsdefault.master" ab. Das Konfiguration des SharePoint Sitetemplate "MPS" kann somit als bereits funktionierende Referenz verwendet werden.