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 einfach:

<?php


class

   MyApp_RsModule_MyModule_Controller_Action_Config

extends

   RedSparkCore_RsModule_Abstract_Controller_Action_Configuration_Single {

}


?>


Es ist zu beachten, dass man in den Rechten MyModule/MymoduleRights.xml angibt, 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 info@kuborgh.de www.kuborgh.de

RedSpark Community

RedSpark Community

Community Website
RedSpark Apps

RedSpark Apps

Zur Übersicht
RedSpark Download

RedSpark Basispaket

Zum Download
Key facts