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

Webtemplates via C# einem SPWeb hinzufügen

Jeder, der schon einmal ein Websitetemplate erstellt hat, kennt den mühseligen Weg über die vielen Menu Punkte. Meist muss man erst einmal in die „Websiteeinstellungen“ (Webseitaktionen -> Webseiteinstellungen -> Alle Websiteeinstellungen ändern). Dort findet man unter
„Aussehen und Verhalten“ -> „Seitenlayouts und Websitevorlagen“. Dort kann man nun seine eigenen Webtemplates auswählen.

Da das ganze aber wenig praktikabel und umständlich ist, empfiehlt es sich, diese Schritte über einen Feature Receiver zu erledigen.

Der Aufbau und die Funktionsweise eines Feature Receivers ist in vielen Artikeln hinreichend gut beschrieben. Ich möchte das Vorgehen zum Hinzufügen von Webtemplates exemplarisch an meiner Methode SetWebTemplate zeigen.

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

Die Methode GetWebTemplates  liefer alle  Webtemplates der Sitecollection.
2

Da die Methode SetAvailableWebTemplates eine Collection von  SPWebTemplates benötigt, erzeuge ich ein Collection für die hinzuzufügenden Webtemplates und eine Collection für die bereits vorhandenen Webtemplates.
3
4

Die Methode GetAvailableWebTemplates gibt die aktuell auswählbaren Webtemplates für ein Web zurück. Damit man überprüfen kann, ob das zu importierende WebTemplate sich bereits in den auswählbaren Webtemplates befindet, empfiehlt es sich die Webtemplates in eine Collection zu überführen, welche man leicht mit Contains abfragen kann.
5

Das neue Template erhält man ganz einfach aus der SPWebTemplateCollection  aller Webtemplates.
6

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

8

Kommentar hinterlassen


Pin It on Pinterest