Adventtipp 10 – Vorhandensein von Sprachversionen erzwingen

sitecore-advent4

Der heutige Adventstipp beschäftigt sich mit der Frage, wie bei Sitecore >8.1 das Vorhandensein einer bestimmten Sprachversion erzwungen werden kann.

Jetzt kommt möglicherweise die Frage auf, warum man das überhaupt braucht. Nun, auf einer Seite hat man schnell mal mehrere verschiedene Inhalts- und Sprachversionen von Items. Nun würde man erwarten, dass bei folgendem Aufruf das Item null wäre, wenn keine Sprachversion in Deutsch in der Sitecore-Datenbank existiert:

Auch bei diesen Codezeilen würde man erwarten, dass die Liste null ist, falls keine Sprachversion der Kinder in Deutsch existiert:

In beiden Fällen erhält man aber etwas zurück, im ersten Beispiel ein Items und im zweiten eine Liste von Items. Und zwar werden sogenannte empty Items zurückgegeben. Diese haben entweder keine Werte gesetzt oder Tokens (falls diese gesetzt sind) à la $name, $id, …

Nun könnte man sich Fragen: Ist es möglich, dieses Verhalten zu unterbinden oder zu steuern? Die Antwort ist ja. Seit Sitecore >8.1 kann gewählt werden, ob Sitecore bei Nichtvorhandensein einer Sprachversion ein empty Item zurückgeben soll oder null.

Um dieses Verhalten, in Sitecore genannt Enforce version presence, zu aktivieren, müssen folgende Schritte durchgeführt werden:

  1. Auf allen relevanten Websites unter dem <sites>-Knoten in der Sitecore.config muss folgendes Attribut hinzugefügt werden: enforceVersionPresence=“true“
  2. Auf dem gewünschten Item (sinnvollerweise auf den Standard Values eines Templates) muss das Häckchen unter Advanced -> Enforce Version Presence gesetzt werden:

adventtipp10_bild1

Tipp:
Will man dieses Verhalten kurzzeitig deaktivieren, kann die folgende IDisposable-Klasse EnforceVersionPresenceDisabler von Sitecore folgendermassen verwendet werden:

Für weitere Informationen kann ich noch folgende Links empfehlen:

  • https://ctor.io/enforce-language-version-presence-for-items-in-sitecore-8-1/
  • https://doc.sitecore.net/sitecore_experience_platform/content_authoring/creating_and_editing_items/versioning/enforce_version_presence

 

Abschliessend wünsche ich allen weiterhin eine schöne Adventszeit!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>