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.

O3

Voici à quoi ressemble la page en mode édition :

Nous avons bien la zone HTML 1.

o4

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…

O5

… Mais aussi dans les paramètres de la liste Pages où se trouve celle qui se base sur notre type de contenu.

o6

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.

o7