Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

SharePoint 2013 - mehrsprachigen Inhalts-Editor Webpart mit PowerShell konfigurieren

Im letz­ten Beitrag zum Thema mehr­spra­chi­ger Inhalts-Editor Webpart habe ich vor­ge­stellt, wie man ab SharePoint 2013 mehr­spra­chige Inhalte zur Anzeige brin­gen kann. Dabei spielt das Umschalten der Browsersprache eine wich­tige Rolle.

Heute soll es darum gehen, wie sich die Pflege mehr­spra­chi­ger Inhalte auto­ma­ti­sie­ren lässt. Per PowerShell wird die gewünschte Sprache aus­ge­wählt um anschlie­ßend den Inhalt zu set­zen.

Aktuelle Sprache festlegen

Der Inhalts-Editor Webpart (IEWP) besitzt eine Content-Eigenschaft, die je nach aktu­el­ler Sprache ande­ren Inhalt ent­hal­ten kann. Die aktu­elle Sprache wird durch die Regionseinstellungen des Threads bestimmt, in dem der Code aus­ge­führt wird, der den Webpart mani­pu­liert.

Um die aktu­elle Sprache auf Englisch zu set­zen, ver­än­dern wir die Regionseinstellungen ent­spre­chend:

[System.Threading.Thread]::CurrentThread.CurrentUICulture = "en-US"
[System.Threading.Thread]::CurrentThread.CurrentCulture = "en-US"

Die aktu­elle Sprache ist nun für die fol­gen­den PowerShell-Befehle Englisch.

Inhalt setzen

Der Inhalt des IEWP wird über seine Content-Eigenschaft defi­niert. Der fol­gende Code holt die Referenz eines IEWP von der Wiki-Seite Homepage.aspx und gibt den aktu­el­len Inhalt aus.

$webUrl =  "https://host/sites/cewpdemo";
$pageUrl = "https://host/sites/cewpdemo/Wiki/Homepage.aspx";

$web = Get-SPWeb $webUrl
$page =  $web.GetFile($pageUrl)

$man = $web.GetLimitedWebPartManager($pageUrl, "Shared")
$wp = $man.WebParts | ? { $_.GetType().ToString() -like "*ContentEditorWebPart" }

$wp.Content.OuterXml

Die Content-Eigenschaft ist ein XML-Element, wel­ches nach Erstellung des IEWP zunächst fol­gen­den Inhalt hat:

<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor" />

Nach dem Hinzufügen von Inhalten über die SharePoint-Oberfläche fin­den sich diese auch im XML wie­der:

<Content xmlns="http://schemas.microsoft.com/WebPart/v2/ContentEditor"><![CDATA[Inhalt]]></Content>

Um den Inhalt des IEWP zu ändern kon­stru­ie­ren wir ein XML-Element, wei­sen es dem Webpart zu und spei­chern die Änderungen:

$htmlContent = "<h1>English Content</h1>"
$xmlContent = "<![CDATA[$htmlContent]]>"
$xml = New-Object xml
$element = $xml.CreateElement("Content")
$element.InnerXml = $xmlContent

$wp.Content = $element
$man.SaveChanges($wp)

Der Inhalt selbst kann HTML-Markup ent­hal­ten. Das Ergebnis sieht für das Beispiel-Script so aus:

SharePoint 2013 Inhalts-Editor Webpart zeigt englischen Inhalt

Bezogen auf die Mehrsprachigkeit ändert sich an den aus­ge­führ­ten PowerShell-Befehlen nichts. Entscheidend ist, dass vor­her die gewünschte Sprache über die Regionseinstellungen des aktu­el­len Threads ein­ge­stellt wird.

Fazit

Durch das Setzen der aktu­el­len Sprache per PowerShell ist es mög­lich, den Inhalt des Inhalts-Editor Webparts für ver­schie­dene Sprachen zu set­zen. Damit kann die Konfiguration des IEWP auto­ma­ti­siert wer­den.

Die Beispiel-Scripte sind so ein­fach wie mög­lich gehal­ten und ver­nach­läs­si­gen Aspekte wie Publishing, Fehlerbehandlung und sepa­rate Wartung der Inhalte außer­halb der PowerShell-Skripte. Auf diese Themen werde ich in einem wei­te­ren Beitrag näher ein­ge­hen.

Related Posts

Pin It on Pinterest