Dynamische Source Eigenschaft eines Feldes

Im folgenden kleinen Code-Beispiel, möchten wir die technische Flexbilität eines Sitecore-Feldes präsentieren, in dem die Inhaltsquelle (Source) eines Feldes dynamisiert wird in dem der Wert der Konfiguration in eine Sitecore-Setting ausgelagert wird. Mit dieser Verlagerung der Konfiguration, können Templates und deren Feldkonfigurationen umgebungsspezifisch angesteuert werden.

Wie geht das? Innerhalb von Sitecore können bekanntlicherweise Templates definiert werden. Templates können verschiedene Felder beinhalten, welche später mit „Content“ befüllt werden. Ein Feld in Sitecore hat verschiedene Merkmale. So definiert sich ein Feld immer in einem expliziten Feldtyp (Nummerisch, Checkbox, Treelist, Multilist, uvm.). Neben dieser absoluten Grundlage kann ein einzelnes Feld versioniert und/oder Sprachabhängig konfiguriert werden. Somit erreicht man die Flexibilität, dass auf einem Template eine Mischung von sprachspezifischen und nicht-sprachspezifischen Feldern gepflegt werden können. Neben all diesen Eigenschaften verfügt ein Feld nochmals über eine weitere, die sogennante „Source“:

RecordIt_2016-04-29_09-55-19

 

Die Source ist ein Mittel innerhalb von Sitecore, um pro Feld eine „Datenquelle“ für weitere Konfigurationen anzugeben. So kann bei einem Richtext-Feld als Datasource den Pfad eines Richtext-Profiles angegeben werden. Ein Richtext-Profil definiert, welche Möglichkeiten innerhalb des Richtext einem Benutzer ermöglicht wird. Dies pro Template pro Feld konfigurierbar. Auch andere Felder, wie eine Treelist oder ein Multilist-Feld können mit einer Source-Information angereichert werden. Hierbei kann man standardmässig einen Sitecore-Pfad hinterlegen, welches als Startpunkt der Anzeige verwendet werden kann. Im Falle eines Treelists, wird dann in dieser Komponente nur ein Baum ab einem bestimmten Content-Level angezeigt. Gleiches Verhalten beim Multilist-Feld, welches jedoch keinen Baum präsentiert, sondern einfach die Items in der nächsttieferen Hierarchie-Stufe.

RecordIt_2016-04-29_10-00-42

 

In diesem Beispiel zeigt mir die Treelist alle Seiten unter der „Home“-Seite an – sprich alle Seiten auf Ebene „First-Level“ aus Sicht der Webseite. Wir hatten nun oftmals das Problem, dass die Flexibilität pro Feld einen eindeutigen Pfad anzugeben, zu wenig war. Beispielsweise wenn eine Lösung über mehrere Entwicklungsstufen verfügt (Dev, UAT, Production), könnten sich Pfade pro Umgebung unterscheiden, da der Content und dessen Struktur flexibel sind und nicht „Starr“ vorgegeben sind. Dies führt zum Konflikt, dass man pro Umgebung die Templates gleich konfiguriert haben möchte. Aus diesem Grund habe ich ein kleines Beispiel vorbereitet, in dem das „Source“-Feld dynamisiert und man nicht einen fixen Wert hinterlegt, sondern den Key einer Sitecore-Setting, welche sich pro Umgebung unterscheiden können.

Man erstellt ein neues Feld in Sitecore und erbt gemäss folgendem Beispiel von dem gewünschten Feld:

Wie im Code ersichtlich ist untersuchen wir nun zusätzlich den Wert nach einem Keyword. Existiert dieses, wird mit dem Wert anders umgegangen. Ansonsten behalten wir das Standardverhalten bei. Dieses Feld muss anschliessend nur noch im Sitecore hinzugefügt werden und mit dem Standard-Feld von Sitecore ausgetauscht werden. Eine Erklärung wie das geht, kann unter Multilistfield in Kommunikation mit Webservices nachgelesen werden.

Anschliessend kann das Feld wie folgt konfiguriert werden:

RecordIt_2016-04-29_10-12-00

 

Dies ist lediglich eine Variante, zeigt jedoch, mit welch wenig Aufwand das CMS und deren Felder angepasst und erweitert werden kann.

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>