Question

C'est probablement une question très fondamentale pour beaucoup, mais mon expérience est celle de développeur SharePoint.J'ai très peu fait avec les pages wiki, ou les pages de sites en général.

Je crée un site SharePoint 2010 pour une petite équipe de notre organisation et nous avons choisi d'utiliser le modèle de site d'équipe.J'ai passé du temps à ajouter des composants WebPart, des images et du texte à la page d'accueil (SitesPages/Home.aspx) afin de visualiser ce que nous pourrions faire avec le site.Tout cela a été fait dans mon environnement de développement.

Maintenant que nous sommes satisfaits de la version de développement de la page, existe-t-il un moyen de l'exporter et de l'ajouter à notre projet Visual Studio afin qu'elle puisse éventuellement être redéployée en production ?Est-ce même une bonne approche, ou devrions-nous simplement nous attendre à recréer la page manuellement en production ?

Ma première pensée a été que nous pourrions exporter la page depuis SPD et la déployer via une fonctionnalité de module, mais j'ai depuis appris que le contrôle EmbeddedFormField dans la page wiki rend cela impossible.

J'ai également essayé cette approche: http://www.sharemuch.com/2012/02/20/how-to-automatically-provision-sharepoint-2010-wiki-pages-content/.La page résultante ne restitue pas correctement les composants WebPart (les composants WebPart ne sont pas là, juste du texte).J'obtiens également "La page actuelle a été personnalisée à partir de son modèle.Revenir au modèle" et je ne parviens pas à le faire disparaître, même si je clique sur "Revenir au modèle".

Mon module ressemble à ceci :

<Module Name="OneCallPages" Url="SitePages" SetupPath="FEATURES\MyProject.SharePoint_SiteAssetsFeature\MyProjectAssets\SitePages" List="119">
  <File Path="Welcome.aspx" Url="Welcome.aspx" Type="GhostableInLibrary">
    <Property
      Name="WikiField"
      Type="string"
      Value="..."/>
   </File>
</Module>
Était-ce utile?

La solution 2

Merci beaucoup à RJCUP3 pour l'aide.J'ai fini par utiliser l'approche décrite ici: http://sharepointtrgle.blogspot.COM / 2011/10 / Provisioning par programme-wiki.html .

Fondamentalement, il implique de créer un fichier XML avec le contenu de la page wiki, puis de l'exportation de chacune des pièces Web de la page à partir de SPD et de référencer le contenu du fichier .WebPart (.DWP) résultant de XML.Ensuite, une classe personnalisée s'occupe de la création de la page Wiki programmatiquement et de l'importation de pièces Web.

Autres conseils

Avez-vous essayé d'enregistrer le site en tant que modèle et d'exporter le .wsp ?Vous pouvez ensuite télécharger le fichier .wsp dans le catalogue de solutions sur l'environnement cible et l'utiliser comme modèle de site pour déployer la mise en page.

Pour enregistrer le site en tant que modèle, accédez à Paramètres du site > Enregistrer le site en tant que modèle.Aussi simple que ça.

Le .wsp sera stocké dans le catalogue de solutions accessible à l'adresse :

http://[path to site collection]/_catalogs/solutions/

Des instructions étape par étape peuvent être trouvées ici.

Lorsque vous créez ou copiez des wikiPages, assurez-vous d'ajouter la propriété "Wikicontent" ainsi que des pièces Web. Définissez le wikicontent avec:

Item[SPBuiltInFieldId.WikiField] = wikiContent;
Item.Update();

Ajouter WebParts avec le gestionnaire de pièces Web (cet exemple copie des pièces Web d'une page à une autre):

var wpManagerTemplate = webTemplate.GetLimitedWebPartManager(item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
var wpManagerNew = web.GetLimitedWebPartManager(newFile.Item.Url, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);

 var webParts = wpManagerTemplate.WebParts;
 foreach (WebPart webpart in webParts)
 {
     wpManagerNew.AddWebPart(webpart, "wpz", webpart.ZoneIndex);
 }

Voir aussi: https:// SharePointkaos.wordpress.com/2015/08/07/copy-page-from-one-wiki-libary-a-another/

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top