Label- und Konfigurations-Verwaltung in Magnolia

In vielen Namics-Projekten steht die Anforderung im Raum, Übersetzungs-Labels und andere Kongifurations-Werte direkt im CMS anpassen zu können – ohne dass dazu ein Deployment resp. eine Änderung am Code stattfinden muss. Obendrauf muss es vorallem in Multisite-Auftritten möglich sein, einzelne global definierte Default-Werte bei Bedarf für z.B. eine Länder-Site anzupassen.

Alle diese Anforderungen haben uns dazu gebracht, ein Magnolia Modul zu entwickeln dass einfach zu einem Projekt (im Maven pom.xml oder direkt JAR File) hinzugefügt werden kann.

Funktionsweise und Merkmale

Grundlegende Idee des Moduls ist das Durchsuchen des JCR Baums nach einer Konfiguration oder Übersetzung für einen bestimmten Key.

Basis dafür sind statische Methoden, welche einen (Konfigurations- oder Label-) Key entgegennehmen und anhand dieses Keys auf der aktuellen JCR-Page mit der Suche nach einem Wert für diesen Key beginnen.

String configuration = ConfigurationUtil.
    getConfigValue("exampleConfiguration", "fallback");
Integer configurationNumber = ConfigurationUtil.
    getConfigValue("exampleConfigurationNumber", 123);

[#-- Translated message showing Key on mouseOver --]
${i18nContentInfo['exampleLabel']}

[#-- Translated message without mouseOver --]
${i18nContent['exampleLabel']}

[#-- Configuration value --]
[#assign nc=JspTaglibs["namics-mgnl-module-configuration"]]
[@nc.property key="${'exampleConfiguration'}"/]

 

  1. Auf der aktuellen Seite wird nach dem Key gesucht.
  2. Kann auf der aktuellen Seite der Key nicht gefunden werden, wird die Suche auf die jeweilige Parent Page ausgeweitet.
  3. Es wird solange auf Parent Pages gesucht, bis die Suche entweder den gesuchten Wert findet oder aber in der Hierarchie auf die Startseite gestossen ist und dadurch keine Parent Page mehr vorhanden ist.
  4. Sofern keine Parent Page den Key definiert hat, wird die Suche in