Feature stapling

En lisant ce post sur la personnalisation des My Sites sur le blog de l'équipe SharePoint, je suis retombé sur un lien parlant du "Feature Stapling" que j'avais survolé à l'époque, mais qui en le relisant, m'a semblé être la réponse à nombre de problématique en terme de personnalisation des modèles de site.
 
Ce "Feature stapling" est le moyen d'attacher une ou plusieurs feature à une définition de site sans avoir à la modifier. C'est donc une technique propre et rapide à mettre en place pour pouvoir enrichir des définitions existantes ou déjà personnalisées et ainsi respecter la règle d'or des modifications dans SharePoint : "Ne pas toucher les définitions / features / fichiers installés par défaut par SharePoint tu devras".
 
Petite explication du fonctionnement :
  1. Commencez par développer votre "Feature" (ou fonctionnalité en français, mais je crois que je ne me ferai jamais à ce nom là). Cette "Feature" peut être l'ajout de master pages, de ressources graphiques, de définitions de webparts, de listes, types de contenus etc... Pour plus d'information sur les features, c'est par là : http://msdn2.microsoft.com/en-us/library/ms460318.aspx.
  2. Ensuite, votre feature étant réalisée, vous allez en écrire une autre qui servira à lier la ou les features désirées à une ou plusieurs définitions de site grâce à un bout de XML que voici :
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   <FeatureSiteTemplateAssociation Id="9e391904-5aa0-4da2-ab4c-8b10d4f1bdb6" TemplateName="STS#0" />
   <FeatureSiteTemplateAssociation Id="9e391904-5aa0-4da2-ab4c-8b10d4f1bdb6" TemplateName="BLOG#0" />
</Elements>

 

Magique !

 

Petite astuce supplémentaire. Vous le savez peut-être, il existe une définition de site "mère" de toutes les autres définitions de site, située dans le répertoire ...\12\TEMPLATE\GLOBAL. Si vous désirez ajouter des fonctionnalités à tous les sites, il vous suffit alors de les lier de la même façon à cette définition.

 

Commentaires

Laisser un commentaire





Validation Image CAPTCHA