Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Webtemplates via C# einem SPWeb hinzufügen

Jeder, der schon ein­mal ein Websitetemplate erstellt hat, kennt den müh­se­li­gen Weg über die vie­len Menu Punkte. Meist muss man erst ein­mal in die "Websiteeinstellungen" (Webseitaktionen -> Webseiteinstellungen -> Alle Websiteeinstellungen ändern). Dort fin­det man unter
"Aussehen und Verhalten" -> "Seitenlayouts und Websitevorlagen". Dort kann man nun seine eige­nen Webtemplates aus­wäh­len.

Da das ganze aber wenig prak­ti­ka­bel und umständ­lich ist, emp­fiehlt es sich, diese Schritte über einen Feature Receiver zu erle­di­gen.

Der Aufbau und die Funktionsweise eines Feature Receivers ist in vie­len Artikeln hin­rei­chend gut beschrie­ben. Ich möchte das Vorgehen zum Hinzufügen von Webtemplates exem­pla­risch an mei­ner Methode SetWebTemplate zei­gen.

Die Methode ver­langt ein SPWeb und den Namen des Templates(z.B. PUBLISHING#0).
1

Die Methode GetWebTemplates  lie­fer alle  Webtemplates der Sitecollection.
2

Da die Methode SetAvailableWebTemplates eine Collection von  SPWebTemplates benö­tigt, erzeuge ich ein Collection für die hin­zu­zu­fü­gen­den Webtemplates und eine Collection für die bereits vor­han­de­nen Webtemplates.
3
4

Die Methode GetAvailableWebTemplates gibt die aktu­ell aus­wähl­ba­ren Webtemplates für ein Web zurück. Damit man über­prü­fen kann, ob das zu impor­tie­rende WebTemplate sich bereits in den aus­wähl­ba­ren Webtemplates befin­det, emp­fiehlt es sich die Webtemplates in eine Collection zu über­füh­ren, wel­che man leicht mit Contains abfra­gen kann.
5

Das neue Template erhält man ganz ein­fach aus der SPWebTemplateCollection  aller Webtemplates.
6

Zum Schluss prüft man nur noch, ob das Webtemplate bereits in der Auswahl ent­hal­ten ist und fügt es der Collection hinzu. Mit der Methode SetAvailableWebTemplates kann man die Webtemplates unter Berücksichtigung der LCID dem Web zuwei­sen.

8

Related Posts

Pin It on Pinterest