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.


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>


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.

Kuborgh GmbH

Hamburg 040 819 773 770 Köln 0221 276 66 96 xxx@xxx.xx www.kuborgh.de

RedSpark Community

RedSpark Community

Community Website
RedSpark Apps

RedSpark Apps

Zur Übersicht
RedSpark Download

RedSpark Basispaket

Zum Download
Key facts