SharePoint 2010 Theming

Das Branding oder Theming in SharePoint 2010 kann nun durch Office Design-Themes realisiert werden. Hierbei werden neben den in Office einstellbaren Farben (Abbildung 1) von SharePoint noch 10 weitere Farben hinzugefügt. Dabei handelt es sich lediglich um hellere bzw. dunklere Abstufungen der gewählten Aspekt-Farben.

SP_Theming5

Zugegeben es ist schon etwas fummelig das richtige Design im Office zu erstellen, so dass es im SharePoint nach etwas aussieht :) aber es geht.

Ein eigens erstelltes Theme kann einfach in die Themes Gallery hochgeladen und aktiviert werden. Allerdings ist der Weg über ein eigenes SharePoint Feature bequemer für den Kunden und wirkt direkt professioneller. Nur wenige Schritte sind notwendig um ein eigenes Theme zu erstellen und als Feature im SharePoint zu deployen.

 

Ein Theme erstellen

Themes können in Office Anwendungen wie Excel, Word oder PowerPoint erstellt werden. Nachdem das Theme ausgewählt, angepasst oder von Begin an neu erstellt wurde, speichert man das Theme am einfachsten an einem leicht findbarem Ort – der Standardordner liegt irgendwo tief im Userprofile.

SP_Theming2

 

Das SharePoint Projekt erstellen

Visual Studio 2010 verfügt glücklicherweise über die SharePoint Developer Tools, mit deren Hilfe die gewünschte SharePoint Solution im Handumdrehen geschrieben ist. Als erstes benötigen wir ein SharePoint Projekt.

SP_Theming1

Nach dem Erstellen des neuen Projektes muss ein Modul hinzugefügt werden, welches dafür verantwortlich ist, das Theme in die Themes-Gallery einzuspielen. Auch hierfür bietet VS2010 entsprechende Unterstützung an.

SP_Theming4

Automatisch legt Visual Studio 2010 nun auch ein Feature an. Dieses Feature ist allerdings auf Web eingestellt. Mit dieser Einstellung lassen sich keine Files in die Theme Gallery hochladen, daher muss im Feature der Scope auf Site umgestellt werden!

SP_Theming3

 

Das zuvor gespeicherte Theme (hier DotNetRocksSharePointTheme.thmx) muss nun in das Modul hinzugefügt werden. Dies kann erreicht werden indem man einfach einen Rechtsklick auf das Modul macht und “Add existing item” auswählt. Hier einfach die Themes Datei auswählen die ihr zuvor gespeichert habt.

Zum Abschluss muss im Elements File des Modules noch definiert werden wohin das Theme eigentlich soll.

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="DotNetRocksSharePointTheme" Url="_catalogs/theme" RootWebOnly="TRUE">
    <File Type="GhostableInLibrary" Path="DotNetRocksSharePointTheme\DotNetRocksSharePointTheme.thmx"
          Url="DotNetRocksSharePointTheme.thmx"
          IgnoreIfAlreadyExists="TRUE">
      <Property Name="Title" Value="DotNet Rocks SharePoint Theme"></Property>
    </File>
</Module>
</Elements>

 

Somit ist die SharePoint Solution fertig und das neue Theme kann ganz einfach via SharePoint Feature auf unterschiedliche SharePoint 2010 Installationen verteilt werden.

Das neue Theme automatisch aktivieren

Nachdem das Theme automatisch auf den SharePoint Server transferiert wurde, möchte man dieses natürlich nun auch automatisch aktivieren. Durch den Einsatz eines einfachen SharePoint EventReceivers kann man das Theme einfach aktiviert werden. Im Solution-Explorer von Visual Studio 2010 kann ein EventReceiver für ein vorhandenes Feature mittels Rechtsklick auf das Feature einfach hinzugefügt werden.

Das Feature soll während des Aktivierungsvorgangs des SharePoint Features aktiviert werden, daher muss die Methode FeatureActivated implementiert werden.

Im Namespace Microsoft.SharePoint.Utilities steht die Klasse ThmxTheme zur Verfügung welche alle nötigen Funktionalitäten bietet um THMX Themes im SharePoint zu verarbeiten.

Da das Feature auf Site gescoped ist, muss der cast zu SPSite im folgenden Code-Snippet beachtet werden. Wenn Ihr das Feature gar für eine ganze WebApplication oder eine ganze Farm scoped, dann sollte der cast logischerweise angepasst werden.

 

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
   var site = properties.Feature.Parent as SPSite;
   ThmxTheme theme = ThmxTheme.Open(site,
       "/_catalogs/theme/DotNetRocksSharePointTheme.thmx");
   theme.ApplyTo(site.RootWeb, true);
}

 

Wenn ihr das Theme für mehr als nur das RootWeb aktivieren möchtet, müsst ihr über alle SPWeb’s der site laufen und die Methode theme.ApplyTo() entsprechend oft ausführen.

 

Wenn es mal mehr sein soll

Zwar kann man mit den Office Themes schon einiges im SharePoint 2010 stylen, allerdings sind so einfache Dinge wie alternierende Zeilenfarben leider nicht über Office Themes möglich. Doch auch hierfür gibt es eine Lösung. Im nächsten Post werdet ihr erfahren wie ihr weitere Elemente im SharePoint stylen und an das zu erstellende Branding anpassen könnt.

 

Technorati-Tags: ,
DotNetKicks-DE Image
Published Montag, 28. Juni 2010 22:36 von ThorstenHans
Abgelegt unter:

Kommentare

# SharePoint 2010 Theming

Montag, 28. Juni 2010 22:41 von dotnet-kicks.de

Sie wurden gekickt (eine gute Sache) - Trackback von dotnet-kicks.de

# SharePoint 2010 Theming

Freitag, 2. Juli 2010 09:57 von SharePoint Mirror

Das Branding oder Theming in SharePoint 2010 kann nun durch Office Design-Themes realisiert werden. Hierbei

# SharePoint Kaffeetasse 188

Freitag, 2. Juli 2010 10:05 von Michael Greth [SharePoint MVP]

PowerPivot PowerPivot-Übersicht für IT-Administratoren &#160; Was ist PowerPivot für SharePoint? &#160;

Kommentar abgeben

(verpflichtend) 
(verpflichtend) 
(optional)
(verpflichtend)