Skip to main content

SharePoint Dev und ITPro Blog

Go Search
Home
Impressum
  


SharePoint Dev und ITPro Blog > Posts > Teil 3: Inhaltstypen per Feature erzeugen
Teil 3: Inhaltstypen per Feature erzeugen

Nachdem wir im Teil 3 eigene Felder in einem Feature angelegt haben, wollen wir in diesem Teil eigene Inhaltstypen mit Hilfe eines Features erstellen. Ich möchte dabei gleichzeitig zeigen, wie man eine Hierarchie von Inhaltstypen erstellen kann. Ein Inhaltstyp besteht primär aus Feldreferenzen. Das folgende Beispiel verwendet einige Spalten, die wir in Teil 3 angelegt haben:

Elements.xml

<?xml version="1.0" encoding="utf-8"?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <ContentType ID="0x0101004955BBB394EB43D78F2635EEFFC187BC"

               Name="RGCT"

               Description="RG Inhaltstyp"

               Group="RGCT"

               Version="0">

    <FieldRefs>

      <FieldRef ID="{5024022C-ED24-4959-8A9C-D4E9D0E97A0C}"

                Name="DocNo"

                Required="false" />

      <FieldRef ID="{F8D2951B-ECC2-4a36-B5A4-1376D05047BB}"

                Name="Textfeld"

                Required="true" />

      <FieldRef ID="{24E7DF9C-188E-4b80-8212-1CEF612F08B6}"

                Name="Datumsfeld"

                Required="true" />

      <FieldRef ID="{7DAC2502-CD54-46f7-B14A-CE51743E30C5}"

                Name="Auswahlfeld"

                Required="false" />

    </FieldRefs>

  </ContentType>

</Elements>

Der Inhalt der Datei Elements.xml ist eigentlich nicht schwer zu verstehen:

-          Im Element ContentType können Attribite für die eindeutige ID, den Namen, Beschreibung, Anzeigegruppe und Version definiert werden

-          Im Element FieldRefs werden die Verweise auf die einzelnen Felder hinterlegt. Wichtig ist hierbei, dass die ID mit der Id des Feldes übereinstimmt. Das Attribut Required gibt an, ob Werte in des Feld eingegeben werden müssen (true) oder nicht (false).

Etwas eigenartig ist allerdings die ID aufgebaut. Hier hat sich Microsoft etwas spezielles einfallen lassen. Eine normale GUID funktioniert an dieser Stelle nicht. Der Aufbau der ID ist hierarchisch organisiert:

0x: steht für System

  01: steht für Element

    01: steht für einen Dokumenten Inhaltstyp

    20: würde für einen Ordner Inhaltstyp verwendet werden   

      00: leitet einen selbst definierten Inhaltstyp ein. Werden diese beiden Nullen vergessen, kann zwar

         der Inhaltstyp angelegt werden, er ist jedoch nicht sichtbar in der Administrationsoberfläche.

Danach folgt eine GUID. Wichtig ist hierbei, dass die GUID keine Bindestriche enthält und dass alle Buchstaben groß geschrieben sind.

Bei unserem oberen Beispiel handelt es sich also um einen Dokumenteninhaltstyp.

 

 Weitere Details können aus dem folgenden Blogeintrag entnommen werden: http://blogs.msdn.com/andrew_may/archive/2006/06/24/SharePointBeta2WhatAreContentTypeIDs.aspx

Wenn man eine hierarchische Anordnung von Inhaltstypen erreichen will, kann man weitere ContentType Elemente in die obige Datei aufnehmen. Abhängigkeiten schafft man dabei dadurch, dass man an die ID des Basis-Inhaltstyp jeweils fortlaufend 01, 02 usw. anhängt. Das folgende Beispiel verdeutlicht dies. Es definiert 2 weitere Inhaltstypen, die von unserem oberen Beispiel abhängig sind und lediglich weitere Felder hinzufügen:

<?xml version="1.0" encoding="utf-8"?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

  <ContentType ID="0x0101004955BBB394EB43D78F2635EEFFC187BC"

               Name="RGCT"

               Description="RG Inhaltstyp"

               Group="RGCT"

               Version="0">

    <FieldRefs>

      <FieldRef ID="{5024022C-ED24-4959-8A9C-D4E9D0E97A0C}"

                Name="DocNo"

                Required="false" />

      <FieldRef ID="{F8D2951B-ECC2-4a36-B5A4-1376D05047BB}"

                Name="Textfeld"

                Required="true" />

      <FieldRef ID="{24E7DF9C-188E-4b80-8212-1CEF612F08B6}"

                Name="Datumsfeld"

                Required="true" />

      <FieldRef ID="{7DAC2502-CD54-46f7-B14A-CE51743E30C5}"

                Name="Auswahlfeld"

                Required="false" />

    </FieldRefs>

  </ContentType>

 

  <ContentType ID="0x0101004955BBB394EB43D78F2635EEFFC187BC01"

               Name="RGCT-Sub1"

               Description="RG Inhaltsuntertyp1"

               Group="RGCT"

               Version="0">

    <FieldRefs>

      <FieldRef ID="{59E99D36-3B7B-438b-B7A1-673F2EA49902}"

                Name="Userfeld"

                Required="false" />

    </FieldRefs>

  </ContentType>

 

  <ContentType ID="0x0101004955BBB394EB43D78F2635EEFFC187BC02"

               Name="RGCT-Sub2"

               Description="RG Inhaltsuntertyp2"

               Group="RGCT"

               Version="0">

    <FieldRefs>

      <FieldRef ID="{923CEE8F-DEF7-4b2b-A0A2-A13E6BE0E937}"

                Name="Boolfeld"

                Required="false" />

      <FieldRef ID="{34A1C4FA-44EB-4ed5-B2DB-F544D5C17E5B}"

                Name="Notefeld"

                Required="false" />

    </FieldRefs>

  </ContentType>

</Elements>

 Um die Inhaltstyp Definition zu verwenden, erstellen wir wieder eine Feature XML Datei, die die Datei elements.xml referenziert:

Feature.xml

<Feature Id="CDE8F49C-FE4C-4ab5-991E-C7C8F9AC4765"

         Title="RGCT"

         Description="RG Inhaltstyp"

         Version="1.0.0.0"

         Scope="Site"

         xmlns="http://schemas.microsoft.com/sharepoint/">

  <ElementManifests>

    <ElementManifest Location="elements.xml" />

  </ElementManifests>

</Feature>

Wie bereits erwähnt, ist es wichtig, dass eine neue GUID verwendet wird.

Installieren und aktivieren des Features

Die Installation läuft wie gewohnt ab:

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\RGCT“

2.       Feature installieren über folgenden Befehl:

a.  Stsadm –o installfeature –name RGCT

3.       Feature aktivieren in einer Websitesammlung

a.  Stsadm –o activatefeature –name RGCT –url http://rgportal

4.       IISREST durchführen

5.       Danach werden die neuen Inhaltstypen in der Websitesammlung sichtbar: Websitesaktionen -> Websiteeinstellungen -> Websitespalten. Sie befinden sich in der Gruppe RGCT.

 

Inhaltstypen

 

Die neuen Inhaltstypen können nun z.B. einer Dokumentenbibliothek zugeordnet zugeordnet werden.
Im nächsten Post zeige ich, wie man den soeben erzeugten Inhaltstyp in einer Listen bzw. Bibliotheksdefiniton verknüpfen kann.

Das komplette Beispiel ist zu finden unter http://sharepoint-dms.com/blog/Examples/RGFeatures.zip

Comments

There are no comments yet for this post.
Items on this list require content approval. Your submission will not appear in public views until approved by someone with proper rights. More information on content approval.

Title


Name (required) *


Body (required) *

SPAM Filter *


Bitte geben Sie hier die Nummer 4532 ein. Dadurch kann ich leichter SPAM unterbinden.
Attachments