Die Definition von eigenen Feldern besteht aus einer Datei, die die Beschreibung des Features enthält (standardmäßig feature.xml). In dieser Datei wird auf eine weitere XML-Datei referenziert, die die eigentlichen Felddefinitionen enthält.
Folgendes Beispiel zeigt die Verwendung der Feature Definitionsdatei:
Feature.xml erstellen
<Feature Id="0BB51CAF-9E02-4720-B7D8-D9E162BD75F8"
Title="RGFields"
Description="RG Spalten"
Version="1.0.0.0"
Scope="Site"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="rgfields.xml" />
</ElementManifests>
</Feature>
Wichtig: Für das Attribt Id muss eine neue GUID vergeben werden
Die oben gezeigte Feature Definition weist folgende Merkmale auf:
- Das Feature ist auf Ebene einer Websitesammlung gültig und somit in allen Sites verfügbar, die sich innerhalb dieser Website Sammlung befinden.
- Es kann innerhalb einer Website Sammlung in der grafischen Oberfläche (Websiteaktionen -> Websiteeinstellungen -> Websiteauflistungsfeatures) aktiviert bzw. deaktiviert werden. Soll es nur durch den Admin mit dem Tool stsadm aktiviert bzw. deaktiviert werden können, kann man das Attribut Hidden im Element Feature auf den Wert TRUE setzen (Hidden="TRUE").
- Im Attribut Location des ElementManifest Elementes wird auf die XML-Datei verwiesen, die die Definitionen der Felder enthält. Das folgende Beispiel zeigt die Verwendung der meisten Feldtypen:
RGFields.xml erstellen
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{5024022C-ED24-4959-8A9C-D4E9D0E97A0C}"
Name="DocNo"
Group="RGFields"
Type="Text"
DisplayName="Dokument-Nr."
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="DocNo"
ShowInEditForm="FALSE"
ShowInFileDlg="FALSE"
ShowInNewForm="FALSE"
Required="FALSE"/>
<Field ID="{F8D2951B-ECC2-4a36-B5A4-1376D05047BB}"
Name="Textfeld"
Group="RGFields"
Type="Text"
DisplayName="Textfeld"
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="Textfeld"
Required="TRUE"/>
<Field ID="{24E7DF9C-188E-4b80-8212-1CEF612F08B6}"
Name="Datumsfeld"
Group="RGFields"
Type="DateTime"
DisplayName="Datumsfeld"
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="Datumsfeld"
Format="DateOnly" />
<Field ID="{59E99D36-3B7B-438b-B7A1-673F2EA49902}"
Name="Userfeld"
Group="RGFields"
Type="User"
DisplayName="Userfeld"
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="Userfeld" />
<Field ID="{7DAC2502-CD54-46f7-B14A-CE51743E30C5}"
Name="Auswahlfeld"
Group="RGFields"
Type="Choice"
DisplayName="Auswahlfeld"
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="Auswahlfeld">
<CHOICES>
<CHOICE>Auswahl 1</CHOICE>
<CHOICE>Auswahl 2</CHOICE>
<CHOICE>Auswahl 3</CHOICE>
<CHOICE>Auswahl 4</CHOICE>
</CHOICES>
</Field>
<Field ID="{923CEE8F-DEF7-4b2b-A0A2-A13E6BE0E937}"
Name="Boolfeld"
Group="RGFields"
Type="Boolean"
DisplayName="Ja/Nein Feld"
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="Boolfeld">
</Field>
<Field ID="{34A1C4FA-44EB-4ed5-B2DB-F544D5C17E5B}"
Name="Notefeld"
SourceID="http://schemas.microsoft.com/sharepoint/v3"
StaticName="Notefeld"
Group="RGFields"
Type="Note"
DisplayName="Memo Feld">
</Field>
<Field ID="{D9C3E07B-5BEB-4c6c-8407-FF6FA0751561}"
Name="Numberfeld"
Group="RGFields"
Type="Number"
DisplayName="Nummernfeld"
SourceID="http://schemas.microsoft.com/sharepoint/v3/fields"
StaticName="Numberfeld">
</Field>
</Elements>
Hinweise:
- Wichtig ist, dass für jedes Feld eine eindeutige ID (GUID) vergeben wird.
- Soll ein Feld nicht durch den Benutzer editiert und im Hintergrund gefüllt werden können (z.B. durch Eventhandler), kann das jeweilige Feld durch die Attribute ShowInEditForm="FALSE", ShowInFileDlg="FALSE" und ShowInNewForm="FALSE" ausgeblendet werden. Das Feld wird dann trotzdem noch im Anzeigedialog für die Metadaten angezeigt.
- Soll bei einem Datumsfeld nur das Datum und nicht auch noch die Uhrzeit angezeigt werden, kann das Attribut Format auf den Wert DateOnly gesetzt werden.
Installieren und aktivieren des Features
1. Die oben beschriebenen Dateien in einen Unterordner innerhalb des Feature Verzeichnisses kopieren z.B. „C:\Programme\Gemeinsame Dateien\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\RGFields“
2. Feature installieren über folgenden Befehl:
a. Stsadm –o installfeature –name RGFields
3. Feature aktivieren in einer Websitesammlung
a. Stsadm –o activatefeature –name RGFields –url http://rgserver/websites/team1
4. IISREST durchführen
5. Danach werden die neuen Spalten in der Websitesammlung sichtbar: Websitesaktionen -> Websiteeinstellungen -> Websitespalten. Sie befinden sich in der Gruppe RGFields.
