SharePoint 2013 : Mettre à jour un type de contenu via PowerShell

Comment peut-on mettre à jour un modèle de page basé sur un type de contenu personnalisé dans SharePoint 2013 ?
Nous sommes ici sur un site de publication Sharepoint 2013.
Voici le type de contenu : TypeContenuCellenza
Il hérite du type de contenu “page” et a un champ “HTML 1” de type Html de publication.
Voici à quoi ressemble la page en mode édition :
Nous avons bien la zone HTML 1.
Nous souhaitons ajouter une nouvelle zone “HTML 2” à notre page.
Il nous faudra d’abord mettre à jour le type de contenu associé au modèle de page.
Avec ce script PowerShell, je peux ajouter ou supprimer une colonne à mon type de contenu existant :
param ( param ( [parameter(Mandatory=$true)] [string]$UpgradeType = $(throw "-UpgradeType est requis. ex: '-UpgradeType ajout' pour un ajout de colonne ou bien '-UpgradeType supp' pour une suppression"), [parameter(Mandatory=$true)] [string]$webUrl = $(throw "-webUrl est requis."), [parameter(Mandatory=$true)] [string]$contentType = $(throw "-contentType est requis."), [parameter(Mandatory=$true)] [string]$colonne = $(throw "-colonne est requis")) Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue $web = Get-SPWeb $webUrl $ct = $web.ContentTypes[$contentType] $ct.FieldLinks[$colonne] if($UpgradeType -eq "ajout") { Write-Host Ajout de la colonne $fields = $Web.Fields $field = $fields.GetFieldByInternalName($colonne) $ct.FieldLinks.Add($field) } if($UpgradeType -eq "supp") { Write-Host Suppression de la colonne $ct.FieldLinks.Delete($colonne) } $ct.Update($true) $web.Dispose()
Le script powerShell est paramétrable :
- UpgradeType permet de renseigner le type de mise à jour désirée (ajout ou suppression).
- webUrl permet de renseigner l’url du site sur lequel faire la maj.
- contentType permet de renseigner le nom du type de contenu à mettre à jour.
- colonne permet de renseigner le nom interne de la colonne à ajouter ou supprimer.
Une fois la mise à jour faite, vérifions notre type de contenu dans les paramètres du site…
… Mais aussi dans les paramètres de la liste Pages où se trouve celle qui se base sur notre type de contenu.
Une fois le type de contenu à jour, il nous reste à actualiser le modèle de page en suivant cet article.
Une fois le modèle mis à jour, nous avons bien notre page avec le nouveau champs html.