Nach dem letzten Post über die Erweiterung der Magento-Konfiguration möchte ich hier noch ein paar kleine, aber sicherlich hilfreiche, Sachen hinzufügen.
Dinge wie Konfiguration auslesen, Default-Werte der config_path sind denke ich nicht uninteressant ![]()
Die Konfiguration auslesen
Eine Konfigurationsoption setzt sich (fast) immer aus einem 3-Teiligen Pfad zusammen:
section/group/option
Mithilfe von
$value = Mage::getStoreConfig('section/group/option'); |
lässt sich so an jeder Stelle der Wert für die aktuelle Storeview auslesen.
Man kann prinzipiell jeden XML-Knoten auslesen und ändern, dafür benötigt man jedoch den Kompletten Pfad.
Ist man jetzt in der Situation diese Werte aus dem Code heraus ändern zu müssen kann man sich am besten
Mage::getConfig()->setNode('path/to/node', 'value'); |
bedienen.
Passend dazu bietet einem
$value = Mage::getConfig()->getNode('path/to/node'); |
die Möglichkeit diese Werte auszulesen. getNode() kann man bei Bedarf noch $scope und $scopeCode übergeben.
Default-Werte
Einen Default-Wert für eine Option im Admin-Menü zu setzten ist übrigens ganz simpel.
In der config.xml des eigenen Modules schreibt man diesen im endsprechenden Pfad unter config/default rein, z.B.:
<?xml version="1.0" ?> <config> <default> <!-- section --> <customconfig> <!-- group --> <examples> <!-- option --> <textinput>Default Text</textinput> </examples> </customconfig> </default> </config> |
Ich denke das ist weitesgehend selbsterklärend
config_path
Wenn man nun aus irgendwelchen Gründen z.B. ein Textfeld in der system.xml anlegen möchte, das aber eine ganz andere Option steuert, kann man dies mithilfe von config_path machen.
Der config_path überschreibt dann den Pfad unter dem das Feld in der system.xml angelegt ist.
Ein Beispiel wäre:
<?xml version="1.0"?> <config> <sections> <payment> <groups> <simplepayment translate="label" module="payment"> <!-- cut --> <fields> <simplepayment1 translate="label"> <label>Label 1</label> <frontend_type>text</frontend_type> <!-- cut --> <config_path>payment/simplepayment1/title</config_path> </simplepayment1> <simplepayment2 translate="label"> <label>Label 2</label> <frontend_type>text</frontend_type> <!-- cut --> <config_path>payment/simplepayment2/title</config_path> </simplepayment2> <!-- etc... --> </fields> </simplepayment> </groups> </payment> </sections> </config> |
Ich hoffe dieser Post unterstützt noch etwas das Verständnis der Konfiguration