Wie kann ich eine Aktion meines Controllers in einem benutzerdefinierten Modul aufrufen, nachdem unter System -> Konfiguration -> Katalog auf "Konfiguration speichern" geklickt wurde? ( Bild )
Die Einstellungen meines Moduls befinden sich in diesem Abschnitt, und ich muss meine Aktion direkt nach dem Speichern der Konfiguration auslösen. Ich muss die Aktion nur in diesem Abschnitt des Administrationsbereichs aufrufen. Wenn in einem anderen Bereich des Administrators auf "Konfiguration speichern" geklickt wurde, muss die Aktion nicht aufgerufen werden.
BEARBEITEN:
Die Aktion muss überprüfen, ob die gespeicherten Einstellungen des Moduls korrekt sind, und bei jedem Speichern der Konfiguration einige andere Berechnungen durchführen.
EDIT 2:
Ich habe eine Lösung von Fabian Blechschmidt ausprobiert. Der Beobachter arbeitet, nachdem auf "Konfiguration speichern" geklickt wurde (ich sehe Text in der Protokolldatei):
config.xml:
<config>
...
<global>
<events>
<admin_system_config_changed_section_mysection>
<observers>
<mymodule>
<type>singleton</type>
<class>mymodule/observer</class>
<method>handle_adminSystemConfigChangedSection</method>
</mymodule>
</observers>
</admin_system_config_changed_section_mysection>
</events>
</global>
...
</config>
Model / Observer.php:
class My_Module_Model_Observer
{
public function handle_adminSystemConfigChangedSection()
{
Mage::log('Test: oberver is working!');
//I tried this but it doesn't actually trigger the action:
$url = Mage::getUrl('myrouter/adminhtml_test/validate');
Mage::app()->getResponse()->setRedirect($url);
}
}
Aber jetzt stecke ich fest.
Ich weiß nicht, wie ich eine Aktionsmethode in diesem Beobachter auslösen soll. Der Controller sieht so aus und funktioniert einwandfrei:
config.xml:
<admin>
<routers>
<mymodule>
<use>admin</use>
<args>
<module>My_Module</module>
<frontName>myrouter</frontName>
</args>
</mymodule>
</routers>
</admin>
controller / Adminhtml / TestController.php:
class My_Module_Adminhtml_TestController extends Mage_Adminhtml_Controller_Action
{
public function validateAction()
{
//validate config settings here
}
}
EDIT 3:
Die Event-Observer-Lösung funktioniert einwandfrei, daher habe ich eine separate Frage zur Umleitung zu Aktionen erstellt: Umleitung zu Modul / Controller / Aktion
<events>
Abschnitt<global>
in config.xml oder irgendwo anders befinden? 2) Ich weiß nicht, wie ich meine Handlung innerhalb des Beobachters nennen soll. Können Sie mich in die richtige Richtung weisen? @ Fabian