[SharePoint 2010] Modifier les Fields hérités dans un content type personnalisé
L’une des pratiques de base dans le développement pour SharePoint, c’est de créer des types de contenus (ou ContentType) personnalisés.
Pour rappel, pour créer le content type, il suffit, dans un projet SharePoint, d’ajouter un nouvel élément de type content type.
Il faut choisir le content type parent :

En cliquant sur Finish on obtient un fichier Elements.xml contenant ceci :
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<!-- Parent ContentType: Article Page (0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D) -->
<ContentType ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D009c1c99958d1c4279b12ac33f96b96c19"
Name="SharePointProject1 - ContentType1"
Group="Custom Content Types"
Description="My Content Type"
Inherits="TRUE"
Version="0">
<FieldRefs>
</FieldRefs>
</ContentType>
</Elements>
Une fois le ContentType créé on peut le personnaliser en ajoutant des champs créés avant ou en modifiant les champs hérités.
Pour modifier les champs hérité il faut rajouter leurs descriptions dans le nœud FieldRefs. Pour le champs Title par exemple :
<FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}"
Name="Title"
Required="FALSE"
Hidden="TRUE"
ShowInNewForm="FALSE"
ShowInEditForm="FALSE"
ReadOnly="FALSE"/>
En rajoutant ce nœud, je souhaite le cacher dans tous les formulaires.
Mais ça ne suffit pas à modifier un champ hérité. Si je déploie la solution, le champs Title aura les mêmes propriétés que dans le content type “Article Page”.
Pour prendre en compte le changement, il faut absolument le préciser au content type de la manière suivante :
<ContentType ID="0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF3900242457EFB8B24247815D688C526CD44D009c1c99958d1c4279b12ac33f96b96c19"
Name="SharePointProject1 - ContentType1"
Group="Custom Content Types"
Description="My Content Type"
Inherits="TRUE"
Overwrite="TRUE"
Version="0">
Jicay
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :