Settings werden nicht mehr wie gewohnt in der config.inc.php des Addons/Plugins gesaved, sondern – ala rex5 – in einem externen file. Die Trennung von eigentlichem Addon/Plugin Code und user settings birgt diverse Vorteile:
- Änderungen der settings erfolgen nicht im/am eigentlichen Code des Addons/Plugins, der Code bleibt immer “sauber” (z.b. im Sinne eines VCS)
- Settings überleben auch ein “Drüberinstallieren” des Addons/Plugins das nicht auf “per file” Basis erfolgt
- Programmatische Update-Strategien werden erleichtert/ermöglicht:
- Eine Installer Funktionalität kann “blind” den Addon Ordner austauschen ohne damit die settings zu überschreiben
- Updates via VCS – z.b. einfaches
git pull
– sind immer problemloser wenn das eigentliche repos clean (aka unverändert) ist
- Default settings werden wahlweise in einem eigenen file oder direkt in der config notiert – sie dienen als Default
- Das eigentliche settings file wird im Verzeichnis
./redaxo/include/data/ADDONNAME/ADDONNAME.settings.php
gelagert (rex5 Pfadschema) - Änderungen der settings werden nur in das externe file geschrieben
- Im Addon/Plugin wird das ext. user settings file – sofern vorhanden – nach den default settings included und überschreibt diese (merge)
- Das settings file wird on save der settings ad hoc erstellt
Der erforderliche Code um dies umzusetzen hängt davon ab wie das jeweilige Addon seine settings handhabt, ist i.d.r aber relativ trivial.
Für Addons die nach dem klassischen rex Konzept ihre settings in der config.inc.php
schreiben siehe nachfolgenden generischen Code..