This is an old revision of the document!
Neue Organisationseinstellungen einbauen
Desöfteren kann es passieren, dass man neue Einstellungen für bestimmte Module braucht. Diese werden in der Regel dann in den Organisationseinstellungen gepflegt. Damit das Hinzufügen neuer Einstellungen nicht allzu mühselig wird, haben wir einen Mechanismus entwickelt mit dem dies relativ zügig geht.
1. Einbau in das Installationsscript
Damit die Variable auch bei einer Neuinstallation mit einem Default-Wert vorhanden ist, muss ein entsprechender Eintrag in die adm_install/scripts/preferences.php dem Array $orga_preferences hinzugefügt werden.
Benutzer, die Admidio updaten, erhalten auch automatisch die Einstellung aus der preferences.php. Möchte man allerdings hier andere Default-Parameter setzen (um z.B. eine bisherige Funktionsweise beizubehalten), muss in der entsprechenden upd_x_x_conv.php-Datei ein SQL-Eintrag angelegt werden. Ein Beispiel gibt es in upd_1_3_conv.php Zeile 56 - 102. Falls es noch keine Einträge im aktuellen Script gibt, muss die Schleife über alle Organisationen auch mit kopiert werden !
Im Code kann man folgendermaßen auf die neue Einstellung neue_variable zugreifen:
$g_preferences["neue_variable"]
2. Einbau in die Organisationseinstellungen
Nicht vergessen sollte man natürlich die Einstellung noch im Organisationsmodul zu integrieren. Hier muss man einfach ein Feld anlegen, über den der Wert dann gepflegt wird. Wichtig ist hierbei, dass der Name des Feldes gleich dem Namen der Einstellung ist, ansonsten funktioniert das Auslesen und Zurückschreiben nicht.
Alternativ zum Entwickeln und Testen
Möchte ich nur eine neue Einstellung hinzufügen um etwas zu testen, so kann ich diese erst einmal direkt in die Datenbank über PhpMyAdmin oder Mysql-Query-Browser tun. Hier muss man nur auf die entsprechende Orga-Id achten und der Variablen einen sinnvollen Namen (z.B. 'test_variable') und Startwert ('Test') geben.
Schon jetzt kann ich in den Scripten mit folgendem Code arbeiten:
echo $g_preferences["test_variable"]; Ausgabe: Test