Créer des types de contenu personnalisés dans SharePoint 2010
Prise en main du développement Web dans SharePoint 2010 : découvrez comment créer un type de contenu personnalisé dans SharePoint 2010.
Dernière modification : mercredi 12 janvier 2011
S’applique à : SharePoint Foundation 2010 | SharePoint Server 2010 | Visual Studio | Visual Studio 2010
Dans cet article
Créer un projet SharePoint 2010
Créer un type de contenu
Vérifier que le projet fonctionne correctement
Étapes suivantes
Dans cet exercice, vous créez un type de contenu personnalisé. Ensuite, vous ajoutez deux champs au type de contenu : un nouveau champ texte et un champ qui existe déjà dans le site Web. Pour accomplir cette tâche, vous devez effectuer les opérations suivantes :
Créer un projet SharePoint 2010
Créer un type de contenu
Vérifier que le projet fonctionne correctement
Créer un projet SharePoint 2010
Dans cette tâche, vous créez un projet SharePoint 2010 vide dans Microsoft Visual Studio 2010.
Pour créer le projet SharePoint
Pour démarrer Visual Studio 2010, cliquez sur le menu Démarrer, sur Tous les programmes, sur Microsoft Visual Studio 2010, puis sur Microsoft Visual Studio 2010.
Dans le menu Fichier, pointez sur Nouveau, puis cliquez sur Projet.
Dans la boîte de dialogue Nouveau projet, dans la section Modèles installés, cliquez sur Visual C#, sur SharePoint, puis sur 2010.
Sélectionnez Projet SharePoint vide à partir des éléments de projet.
Dans la zone Nom, tapez CreateContentType, puis cliquez sur OK.
Dans l’Assistant Personnalisation de SharePoint, tapez le site Web local à utiliser pour cet exercice (tel que https://localhost/SampleWebSite).
Pour le niveau de confiance, sélectionnez Déployer en tant que solution de batterie, puis cliquez sur Terminer.
Créer un type de contenu
Dans cette tâche, vous créez le type de contenu en tant que fonctionnalité et vous ajoutez un récepteur d’événements.
Pour créer un type de contenu
Cliquez avec le bouton droit sur le dossier Fonctionnalités dans l’Explorateur de solutions, puis cliquez sur Ajouter une fonctionnalité.
Cliquez avec le bouton droit sur Feature1, puis cliquez sur Ajouter un récepteur d’événements. Visual Studio ajoute un récepteur d’événements de fonctionnalité à Feature1.
Cliquez avec le bouton droit sur Feature1.EventReceiver.cs, puis cliquez sur Afficher le code.
Annulez les marques de commentaire de la méthode FeatureActivated dans la classe Feature1EventReceiver.
Insérez le code suivant dans la méthode FeatureActivated.
using (SPWeb spWeb = properties.Feature.Parent as SPWeb) { SPContentType newAnnouncement = spWeb .ContentTypes .Cast<SPContentType>() .FirstOrDefault(c => c.Name == "New Announcements"); if (newAnnouncement != null) { newAnnouncement.Delete(); } SPField newField = spWeb.Fields .Cast<SPField>() .FirstOrDefault(f => f.StaticName == "Team Project"); if (newField != null) { newField.Delete(); } SPContentType myContentType = new SPContentType(spWeb.ContentTypes["Announcement"], spWeb.ContentTypes, "New Announcements"); myContentType.Group = "Custom Content Types"; spWeb.Fields.Add("Team Project", SPFieldType.Text, true); SPFieldLink projFeldLink = new SPFieldLink(spWeb.Fields["Team Project"]); myContentType.FieldLinks.Add(projFeldLink); SPFieldLink companyFieldLink = new SPFieldLink(spWeb.Fields["Company"]); myContentType.FieldLinks.Add(companyFieldLink); spWeb.ContentTypes.Add(myContentType); myContentType.Update(); }
La méthode FeatureActivated est exécutée lorsque Feature1 est démarré. Ce code effectue les opérations suivantes :
Il supprime le type de contenu New Announcements et le champ Team Project éventuellement existants.
Il crée un type de contenu parent Announcement basé sur le type de contenu New Announcements.
Il crée un champ texte, intitulé Team Project, puis il l’ajoute au type de contenu.
Il ajoute un champ existant, intitulé Company, au type de contenu.
Annulez les marques de commentaire de la méthode FeatureDeactivating.
Insérez le code suivant dans la méthode FeatureDeactivating.
using (SPWeb spWeb = properties.Feature.Parent as SPWeb) { SPContentType myContentType = spWeb.ContentTypes["New Announcements"]; spWeb.ContentTypes.Delete(myContentType.Id); spWeb.Fields["Team Project"].Delete(); }
La méthode FeatureDeactivating est exécutée lorsque Feature1 est désactivé. Ce code effectue les opérations suivantes :
Il supprime le type de contenu New Announcements.
Il supprime le champ texte Team Project.
Dans l’Explorateur de solutions, cliquez avec le bouton droit sur CreateContentType, puis cliquez sur Déployer.
Vérifier que le projet fonctionne correctement
Dans cette tâche, vous vérifiez la présence du type de contenu et des deux champs.
Pour tester le projet
Démarrez Internet Explorer et accédez au site Web que vous avez précédemment spécifié.
Dans la section supérieure gauche de l’écran, cliquez sur Actions du site, puis cliquez sur Paramètres du site.
Sous Galeries, cliquez sur Colonnes de site.
Dans les options Afficher le groupe, cliquez sur Colonnes personnalisées.
Le nouveau champ Team Project doit normalement apparaître.
Figure 1. Champ Team Project
Cliquez sur Actions du site, puis sur Paramètres du site.
Sous Galeries, cliquez sur Types de contenu de site.
Dans les options Afficher le groupe, sélectionnez Types de contenu personnalisés.
Le nouveau type de contenu New Announcements doit normalement apparaître.
Figure 2. Type de contenu New Announcements