Modulkonfiguration
Hier geht es darum, dem Kunden eine Möglichkeit an die Hand zu geben, das neue Modul, das wir für ihn entwickelt haben, selbst zu konfigurieren, ohne dass er dazu die config.ini bearbeiten muss, sondern ganz einfach am Backend ein paar Schalter umlegen kann. Ein Beispiel dafür finden wir wieder in unserem Kickstarter, im Pfad www.myredspark.de/Kickstarter/Config.phtml oder Im Backend-Menü des Kickstarters unter Konfigurationen.
\application\RedSparkKickstart\latest\RedSparkKickstart\RsModule\Kickstart\Config\KickstartConfig.xml
an die entsprechende Stelle unseres Moduls, benennen sie um in MymoduleConfig.xml und bearbeiten den Inhalt. Der Inhalt sind die Konfigurationsfelder, die wir später in unserem Modul erwenden wollen. Nähere Erklärungen, wie das zu bewerkstelligen ist, sind in der KickstartConfig.xml selbst enthalten.
Danach brauchen wir eine Backend-Action, welche die Config-Optionen als Formular ausgibt. Diese ist denkbar einfache:
Nicht vergessen, dass man in den Rechten MyModule/MymoduleRights.xml angeben muss, dass Administratoren Zugriffsrechte auf die Action haben,
implementieren. Etwa so:
Nun sind wir so gut wie fertig. Jetzt muss Redspark lediglich eine config.ini erstellen. Dazu gehen wir im Backend auf den Menüpunkt [System]>[Wartung] und klicken die Option "Modulkonfiguration in temp Ordner schreiben". Wenn das geschehen ist, finden wir unter dem folgenden Pfad eine Datei, die inetwa so heißt.
\redspark\temp\MyApp\moduleconfig\default\1_mymodule.ini
Wir brauchen nur noch die Konfigurationsvariablen in unserer Programmierung aufzurufen und zu verwenden. Die Methode, mit der wir auf die config-Variablen zugreifen können, heißt folgendermaßen:
Der zweite Parameter in der get-Funktion gibt den default-Wert an, falls der Methoden-Aufruf kein Ergebnis zurückliefert.
Parameterkonfiguration
Als erstes kopieren wir aus der Kickstarter-App die Datei\application\RedSparkKickstart\latest\RedSparkKickstart\RsModule\Kickstart\Config\KickstartConfig.xml
an die entsprechende Stelle unseres Moduls, benennen sie um in MymoduleConfig.xml und bearbeiten den Inhalt. Der Inhalt sind die Konfigurationsfelder, die wir später in unserem Modul erwenden wollen. Nähere Erklärungen, wie das zu bewerkstelligen ist, sind in der KickstartConfig.xml selbst enthalten.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE formfields SYSTEM "http://www.redsparkframework.com/dtd/config.dtd">
<module_config>
<option>
<option_name>config_kickstart_dummy</option_name>
<option_description>Hier eine Dummy Value zun Anlegen einer Konfiguration?</option_description>
<option_default_value>1</option_default_value>
<option_type>boolean</option_type>
<option_newForm_value>1</option_newForm_value>
</option>
</module_config>
<!DOCTYPE formfields SYSTEM "http://www.redsparkframework.com/dtd/config.dtd">
<module_config>
<option>
<option_name>config_kickstart_dummy</option_name>
<option_description>Hier eine Dummy Value zun Anlegen einer Konfiguration?</option_description>
<option_default_value>1</option_default_value>
<option_type>boolean</option_type>
<option_newForm_value>1</option_newForm_value>
</option>
</module_config>
Danach brauchen wir eine Backend-Action, welche die Config-Optionen als Formular ausgibt. Diese ist denkbar einfache:
<?php
class
MyApp_RsModule_MyModule_Controller_Action_Config
extends
RedSparkCore_RsModule_Abstract_Controller_Action_Configuration_Single {
}
?>
Nicht vergessen, dass man in den Rechten MyModule/MymoduleRights.xml angeben muss, dass Administratoren Zugriffsrechte auf die Action haben,
Interface implementieren
Des weiteren muss der Controller unseres Moduls wissen, dass er Konfigurationen für unser Modul bereitzustellen hat. Auch dieser Schritt ist schnell ausgeführt. Wir müssen in die Controllerklasse unseres Moduls lediglich die Klasse
RedSparkCore_RsModule_Abstract_Controller_Interface_ModuleConfig
implementieren. Etwa so:
<?php
class
RedSparkKickstart_RsModule_Faq_Controller_Controller
extends
Redspark_RsModule_Abstract_Controller
implements
RedSparkCore_RsModule_Abstract_Controller_Interface_ModuleOverview,
// Interface: Modulkonfiguration
RedSparkCore_RsModule_Abstract_Controller_Interface_ModuleConfig
{
...
}
?>
Nun sind wir so gut wie fertig. Jetzt muss Redspark lediglich eine config.ini erstellen. Dazu gehen wir im Backend auf den Menüpunkt [System]>[Wartung] und klicken die Option "Modulkonfiguration in temp Ordner schreiben". Wenn das geschehen ist, finden wir unter dem folgenden Pfad eine Datei, die inetwa so heißt.
\redspark\temp\MyApp\moduleconfig\default\1_mymodule.ini
Wir brauchen nur noch die Konfigurationsvariablen in unserer Programmierung aufzurufen und zu verwenden. Die Methode, mit der wir auf die config-Variablen zugreifen können, heißt folgendermaßen:
<?php
Broker::getConfig()->getSection('Moduleconfig_Mymodule')->get('my_config_var',true)
?>
Der zweite Parameter in der get-Funktion gibt den default-Wert an, falls der Methoden-Aufruf kein Ergebnis zurückliefert.