Thomas   ReschenhoferListTemplate als Modul in SharePoint bereitstellen


Es gibt im Prinzip 2 Möglichkeiten, ein ListTemplate per Feature bereitzustellen.

  • Das Template wird komplett in XML definiert. Hilfreich dabei ist das XML - Schema "wss.xsd" im Verzeichnis ".../12/Template/XML"
  • Das Template wird als Modul bereitgestellt. Das Modul schiebt dabei einfach eine Listenvorlage (*.stp - Datei) in den Listenvorlagenkatalog.

Letzteres ist häufig die einfachere Variante, da das Template im Prinzip per Browser zusammengeklickt wird. Dabei erzeugt man sich in SharePoint einfach eine Liste oder Bibliothek kann diese dann nach Belieben anpassen, d. h., man fügt z.B. Spalten und Ansichten zur Liste / Bibliothek hinzu, bis man das gewünschte Ergebnis vor sich hat. Anschließend klickt man einfach in den "Einstellungen der Liste/Bibliothek" auf "Als Vorlage speichern". Somit wird eine neue Listenvorlage im Listenvorlagenkatalog generiert. Dieses Template lädt man sich nun einfach herunter und kann es auf anderen SiteCollections wieder bereitstellen.

Um diese Vorlage nicht manuell hochladen zu müssen, kann man das Ganze per Feature automatisieren. Dabei lädt man die *.stp - Datei einfach per Modul in den Listenvorlagenkatalog. Das Modul sieht dann folgendermaßen aus:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="MyListTemplates" List="114" Url="_catalogs/lt">
    <File Url="MyListTemplate.stp" Type="GhostableInLibrary"/>
  </Module>
</Elements>

Nachdem dieses Modul vorschriftsmäßig per Feature deployed wurde, befindet sich diese Listenvorlage nun im Listenvorlagenkatalog. Wer aber nun versucht, eine neue Instanz einer Liste mit Hilfe dieser Vorlage zu erstellen, wird schnell feststellen, dass dieses Template gar nicht in der Auswahl der Vorlagen dabei ist.

Der Grund ist folgender: Die Properties der Listenvorlage sind nicht gesetzt (Dies ist sehr leicht im Listenvorlagenkatalog zu erkennen). Mir ist aber schleierhaft, wieso SharePoint diese Informationen nicht aus der *.stp - Datei ausliest. Man kann das Auslesen dieser Information aber ganz leicht initiieren, und zwar indem man im Modul MINDESTENS EINE Property angibt. Dabei ist es vollkommen egal, welche Eigenschaft(en) man explizit setzt, die restlichen Properties liest SharePoint aus dieser *.stp - Datei heraus.

Nach einer kleinen Änderung sieht das Modul also wie folgt aus:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="MyListTemplates" List="114" Url="_catalogs/lt">
    <File Url="MyListTemplate.stp" Type="GhostableInLibrary">
      <Property Name="Language" Value="1031"></Property>
    </File>
  </Module>
</Elements>
Nach einer erneuten Installation und Aktivierung des Features sind nun auch die Properties der Listenvorlage gesetzt. Und nun ist es auch möglich, Instanzen dieser Listenvorlage zu erstellen.


Kategorien: Sharepoint; 23.07.2008 16:35:04


 


Neuen Kommentar einfügen:

  Titel:   
  Name:
  E-Mail:
  Kommentar:

 
 


Kommentare




© Copyright 2008 ppedv AG