Wer schon einmal einen Kalender in SharePoint erstellt oder von diesem abgeleitet hat, der wird zwangsläufig auf Spalten wie “Ganztägiges Ereignis” oder “Serie” gestoßen sein. Diese Spalten sind auf ‘Sealed’ gesetzt, sodass diese Websitespalten nicht adaptierbar sind. Darüber hinaus kann man die Spalten auch nicht so einfach ausblenden.
Ich hatte nun die “triviale” Anforderung den Standardwert von der Spalte “Ganztägiges Ereignis” zu ändern. Es gibt dazu mehrere Lösungsansätze, u.a. kann man einen programmatischen Ansatz wählen, den ich hier gefunden habe.
Ich habe die entsprechende Schema.xml des Event Templates geändert. Allerdings bin ich über einen Fallstrick gestolpert: Ich dachte, dass ich den Defaultwert auf True setzen muss. Das ist allerdings falsch! Hier muss 1 eingegeben werden.
Anleitung:
Navigiert in das Templates Verzeichnis eurer SharePoint Installation (bei SharePoint Foundation 2010 Deutsch ist dies %programfiles%\Common files\Microsoft Shared\Web Server Extensions\14\Template). Dort navigiert ihr in FEATURES –> EventsList –> Events. Hier liegt die schema.xml Datei. Passt das XML dort wie folgt an (die eigentliche Änderung steht in Zeile 2):
1: <Field ID="{7d95d1f4-f5fd-4a70-90cd-b35abc9b5bc8}" Type="AllDayEvent" Name="fAllDayEvent" DisplaceOnUpgrade="TRUE" DisplayName="$Resources:core,All_Day_Event;" Sealed="FALSE" SourceID="http://schemas.microsoft.com/sharepoint/v3" StaticName="fAllDayEvent">
2: <Default>1</Default>
3: <FieldRefs>
4: <FieldRef Name="EventDate" RefType="StartDate" />
5: <FieldRef Name="EndDate" RefType="EndDate" />
6: <FieldRef Name="TimeZone" RefType="TimeZone" />
7: <FieldRef Name="XMLTZone" RefType="XMLTZone" />
8: </FieldRefs>
9: </Field>
Danach führt ihr noch über die Kommandozeile den Befehl “iisreset” aus. Fertig! Von nun an ist bei einem neuen Kalendereintrag der Wert “Ganztägiges Ereignis” aktiviert.