ContentLion - Open Source CMS

Settings - Globale Einstellungen

Mit der Settings-Klasse bietet unser CMS eine globale Möglichkeit Einstellungen des Plugins zu verwalten. Das Besondere dabei ist, dass die Einstellungen auf Ordner- und Seitenebene und auch pro Benutzergruppe überschrieben werden können.

An einigen Stellen habt ihr die Settings-Klasse vielleicht schon einmal gesehen. In der einfachen Variante kann man zum Beispiel Einstellungen vom Core selbst auslesen:

<?php Settings::getValue("root"); ?>

Die Variable root bezieht sich auf den aktuellen Ordner / Benutzer. Man könnte sie theoretisch auch überschreiben, wobei es in diesem Fall keinen Sinn machen würde. getValue ist dabei nur eine Abkürzung. Man könnte die obere Zeile auch so schreiben:

<?php Settings::getInstance()->get("root"); ?>

getInstance liefert dabei ein Settings-Objekt zurück, mit dem die Filterung angepasst werden kann. So können wir nun zum Beispiel auf ein bestimmtes Plugin wechseln:

<?php 
  Settings::getInstance()->specify("plugin", "example")->get("root"); 
?>

Hier gilt die Einstellung root dann nur für das Plugin example. Das ist übrigens auch bei skins möglich. Einfach "skin" statt "plugin" schreiben.

Neben get gibt es auch die Funktion set, die den Wert einer Variable ändert. Das geht zum Beispiel so:

<?php 
  Settings::getInstance()->specify("plugin", "example")->set("root", "neuerwert"); 
?>