Mise à jour de types de contenu enfants

Dernière modification : mercredi 1 décembre 2010

S’applique à : SharePoint Foundation 2010

Dans cet article
Mises à jour de types de contenu enfants par le biais de l’interface utilisateur
Mise à jour de types de contenu enfants par le biais du modèle objet
Remarques sur les mises à jour de types de contenu enfants

Disponible dans SharePoint Online

Chaque type de contenu contient une référence au type de contenu de site sur lequel il est basé. Cela permet à Microsoft SharePoint Foundation 2010 de propager les modifications apportées à un type de contenu parent vers son site et ses types de contenu de liste enfants.

Lorsque vous apportez des modifications à un type de contenu de site, vous avez la possibilité de propager ces modifications à tous ses enfants, par le biais de l’interface utilisateur ou du modèle objet. Lorsque l’opération de propagation copie les modifications apportées au site ou au type de contenu de liste sur la base de ce type de contenu de site, elle ne remplace pas l’intégralité du type de contenu. Toutefois, l’étendue du remplacement diffère selon que vous effectuez vos modifications et votre opération de propagation par le biais de l’interface utilisateur ou du modèle objet.

Mises à jour de types de contenu enfants par le biais de l’interface utilisateur

Lorsque vous modifiez un type de contenu de site par le biais de l’interface utilisateur et apportez une modification sur une page de paramètres du type de contenu, tous les paramètres contenus sur cette page sont modifiés au cours de l’opération de propagation. Par conséquent, la granularité des modifications que vous pouvez propager se détermine par les paramètres regroupés sur chaque page. Chaque fois que vous modifiez une page de paramètres de type de contenu, tous les paramètres sur cette page sont modifiés au cours de l’opération de propagation.

Voici un résumé des paramètres que chaque page de paramètres de type de contenu comporte :

  • Paramètres avancés   Cette page contient les paramètres suivants :

    • URL de modèle de document

    • Fichier de modèle de document en tant que tel, si vous avez sélectionné un modèle existant dans le site Web, ou téléchargé votre fichier de modèle

    • Attribut de lecture seule

  • Nouveaux paramètres de colonne   Cette page gère l’ajout d’une nouvelle colonne au type de contenu de site.

  • Paramètres de colonne     Cette page contient les paramètres suivants :

    • Obligatoire

    • Masqué

    • Suppression d’une colonne à partir du type de contenu de site

Mise à jour de types de contenu enfants par le biais du modèle objet

L’utilisation du modèle objet offre davantage de granularité aux opérations de propagation. Lorsque vous modifiez un type de contenu de site via le modèle objet, c’est votre code qui effectue en fait ces modifications dans la représentation en mémoire du type de contenu de site. C’est seulement lorsque vous appelez la méthode Update que SharePoint Foundation valide ces modifications dans la base de données du site.

Exemple : ajout d’une colonne à un type de contenu

L’exemple de code suivant crée une colonne de site, ajoute la colonne à la collection de champs qui appartiennent au type de contenu personnalisé (dans cet exemple, « Specification »), puis propage ces modifications vers tous les types de contenu qui reposent sur Specification.

Notes

Vous ne pouvez pas ajouter des colonnes à un type de contenu de site existant de manière déclarative, en d’autres termes, en mettant à jour les fichiers XML des Fonctionnalités (feature.xml).

using (SPWeb oWebsite = new SPSite("http://MyServer/sites/MySiteCollection/MyWebSite").OpenWeb())
{
    SPList oList = oWebsite.GetList("MyWebSite/Lists/MyList");
    SPFieldCollection collFields = oWebsite.Fields;

    string strNewColumn = collFields.Add("MyNewColumn", SPFieldType.Text, false);

    SPFieldLink oFieldLink = new SPFieldLink(fields[strNewColumn]);
    SPContentType oContentType = oList.ContentTypes["Specification"];
    oContentType.FieldLinks.Add(oFieldLink);

    oContentType.Update(true);
}
Using oWebsite As SPWeb = New SPSite("http://MyServer/sites/MySiteCollection/MyWebSite").OpenWeb()
    Dim oList As SPList = oWebsite.GetList("MyWebSite/Lists/MyList")
    Dim collFields As SPFieldCollection = oWebsite.Fields

    Dim strNewColumn As String = collFields.Add("MyNewColumn", SPFieldType.Text, False)

    Dim oFieldLink As New SPFieldLink(fields(strNewColumn))
    Dim oContentType As SPContentType = oList.ContentTypes("Specification")
    oContentType.FieldLinks.Add(oFieldLink)

    oContentType.Update(True)
End Using

Mise à jour des informations personnalisées des enfants dans les types de contenu

Vous pouvez également propager des paramètres personnalisés au niveau de granularité d’un document XML en utilisant le modèle objet. Chaque type de contenu possède une collection de documents XML que des solutions tierces peuvent utiliser pour stocker des informations de paramètres personnalisées. Vous pouvez remplacer des documents XML spécifiques à l’aide d’opérations de propagation. Sachez que SharePoint Foundation ne tente pas de déterminer si le document XML est en cours d’utilisation ou est nécessaire à un processus avant de le remplacer. Vous pouvez également supprimer des documents XML intégralement dans le cadre de l’opération de propagation.

Pour plus d’informations sur le stockage de documents XML avec des informations personnalisées dans des types de contenu, voir Informations personnalisées dans des types de contenu.

Remarques sur les mises à jour de types de contenu enfants

Sachez que les opérations de propagation remplacent les modifications apportées aux types de contenu enfants si ces modifications se trouvent au niveau de granularité de l’opération de propagation. Supposez, par exemple, que vous modifiez une colonne dans un type de contenu enfant. Si par la suite vous apportez d’autres modifications à cette colonne dans le modèle parent ou même supprimez cette colonne, et propagez les modifications, SharePoint Foundation remplace alors les modifications que vous (ou, plus probablement, quelqu’un d’autre) avez apportées initialement au type de contenu enfant.

Chaque opération propage uniquement les modifications apportées au type de contenu parent à ce moment-là. Si vous ne propagez pas les modifications au moment où vous les effectuez, il s’avère alors difficile de les propager ultérieurement. Dans la plupart des cas, vous êtes dans ce cas obligé d’annuler vos modifications, de les reprendre, puis de propager l’ensemble de ces modifications. Supposons, par exemple, que vous supprimez une colonne d’un type de contenu parent, sans propager immédiatement la modification. Aucune opération de propagation suivante n’inclue alors la suppression de cette colonne des types de contenu enfants. Pour supprimer la colonne des types de contenu enfants ultérieurement, il vous faut ainsi rajouter la colonne au type de contenu parent, la supprimer à nouveau, puis effectuer une opération de propagation.

Si vous propagez des modifications qui ne s’appliquent plus à un type de contenu enfant, ces modifications sont ignorées. Par exemple, si vous propagez des modifications de paramètres de colonne pour une colonne qui a été supprimée d’un type de contenu enfant, ces modifications sont ignorées. SharePoint Foundation ne rajoute pas la colonne dans le type de contenu enfant.

Si vous tentez d’effectuer une opération de propagation sur un type de contenu enfant marqué en lecture seule, l’opération de propagation échoue, sauf si vous définissez le type de contenu parent en lecture/écriture dans le cadre de l’opération de propagation.

La propagation des modifications n’est pas une opération du type tout ou rien ; si la propagation des modifications échoue sur un type de contenu enfant donné, SharePoint Foundation continue à propager les modifications au reste des types de contenu enfants. À la fin de l’opération de propagation, SharePoint Foundation retourne la liste des erreurs rencontrées.

Si un type de contenu enfant est défini comme étant verrouillé, l’opération de propagation échoue sur ce type de contenu.

Notes

Pour créer ou gérer un type de contenu sur un site, vous devez disposer des droits d’accès Concepteur Web à ce site. Si vous ne disposez pas des droits d’accès appropriés à un site enfant, les opérations de propagation sur les types de contenu de ce site enfant échouent.

Pour plus d’informations sur les types de contenu en lecture seule et verrouillés, voir Contrôle de la modification du type du contenu.

Voir aussi

Concepts

Introduction aux types de contenu

Types de contenu de liste et de site

Étendue du type de contenu

Création de types de contenu

Contrôle d'accès aux types de contenu

Suppression de types de contenu