2009-03-08 18 views

Antwort

5

Ich war in einem Projekt mit den gleichen Bedürfnissen, aber wir haben die Antwort mit der OOTB-Funktionalität des Feature-Framework nicht gefunden. Wir mussten auch das Objektmodell durchlaufen und die Erstellung programmatisch durchführen.

Aber statt die Seitenstruktur hart zu kodieren, haben wir einen anderen Ansatz gewählt. Unsere Lösung bestand darin, eine generische SiteCreation-Funktion zu implementieren, die eine XML-Datei als Eingabe verwendet. Das XML definiert die Site-Struktur und wird vom Feature-Empfänger gelesen, der es analysiert und die angegebenen Sites erstellt.

Ich weiß, dass an dieser Lösung etwas Code beteiligt ist, aber ich denke, die zusätzliche Arbeit ist gut angelegt, da sich die Struktur der Site wahrscheinlich mehrmals ändern wird, bevor sie die Produktion erreicht.

+0

:) Ich habe bereits einige Konsolen-Anwendung, die Website-Struktur aus XML erzeugt. Wenn Sie Feature in WSP gemacht haben, wo setzen Sie xml und wie greifen Sie darauf zu? Sie stellen auch eine XML-Datei bereit? Woher? –

+1

Platzieren Sie die XML-Datei zusammen mit der Datei feature.xml im Feature-Ordner. Fügen Sie in der Datei feature.xml ein benutzerdefiniertes Property-Element hinzu, wobei der Wert die XML-Datei der Site-Struktur angibt. Von der Feature-Empfängerklasse können Sie nun auf den Dateinamen von der Eigenschaft zugreifen und das XML laden. –

1

Die Standard-Website-Definitionen für das Veröffentlichungsportal (und das Collaboration-Portal) verwenden eine Portal-Provisioning-Klasse zum Erstellen der Site-Struktur basierend auf einer XML-Datei (dies ist bei einer MOSS-Installation nicht erforderlich).

Sie können sehen, wie in der Webtemp-Datei für die Portalwebsitedefinitionen auf die Bereitstellungsklasse verwiesen wird (12 \ TEMPLATE \ 1033 \ XML \ webtempsps.xml). Ein Beispiel für die tatsächlichen XML-Dokumente, die verwendet werden, finden Sie unter 12 \ TEMPLATES \ SiteTemplates \ WebManifest - ein ziemlich einfaches Schema.

Wenn Sie eine benutzerdefinierte Websitedefinition basierend auf dem Veröffentlichungsportal erstellen, können Sie die Bereitstellungsklasse erneut verwenden und ein eigenes XML-Dokument zum Erstellen Ihrer benutzerdefinierten Websiteinstruktur bereitstellen.

+0

Ich übersprang die Erstellung der Website-Definition und wird alle Anpassungen mit Funktionen vornehmen. Momentan verwenden wir die Konsolen-App, um eine Site aus benutzerdefiniertem XML zu erstellen, wie es Thomas vorgeschlagen hat. –

Verwandte Themen