Làm cách nào tôi có thể gọi một hành động của bộ điều khiển của mình trong mô-đun tùy chỉnh sau khi nhấp vào "Lưu cấu hình" trong Hệ thống -> Cấu hình -> Danh mục? ( hình ảnh )
Các cài đặt của mô-đun của tôi nằm trong phần đó và tôi cần kích hoạt hành động của mình ngay sau khi cấu hình được lưu. Tôi chỉ cần gọi hành động trong phần đó của bảng quản trị - nếu nhấp vào "Lưu cấu hình" trong một phần khác của quản trị viên, thì không cần phải gọi hành động đó.
BIÊN TẬP:
Hành động phải kiểm tra xem các cài đặt đã lưu của mô-đun có chính xác không và thực hiện một số tính toán khác mỗi khi cấu hình được lưu.
EDIT 2:
Tôi đã thử giải pháp được đăng bởi Fabian Blechschmidt. Observer đang hoạt động sau khi nhấp vào "Lưu cấu hình" (Tôi thấy văn bản trong tệp nhật ký):
cấu hình:
<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);
}
}
Nhưng bây giờ tôi bị mắc kẹt.
Tôi không biết làm thế nào để kích hoạt phương thức hành động bên trong người quan sát đó. Bộ điều khiển trông như thế này và nó hoạt động tốt:
cấu hình:
<admin>
<routers>
<mymodule>
<use>admin</use>
<args>
<module>My_Module</module>
<frontName>myrouter</frontName>
</args>
</mymodule>
</routers>
</admin>
bộ điều khiển / adminhtml / TestControll.php:
class My_Module_Adminhtml_TestController extends Mage_Adminhtml_Controller_Action
{
public function validateAction()
{
//validate config settings here
}
}
EDIT 3:
Giải pháp quan sát sự kiện hoạt động tốt, vì vậy tôi đã tạo một câu hỏi riêng về việc chuyển hướng đến các hành động: Chuyển hướng đến mô-đun / bộ điều khiển / hành động
<events>
Phần có phải ở bên trong<global>
hoặc ở nơi nào khác trong config.xml không? 2) Tôi không biết cách gọi hành động của mình trong người quan sát, bạn có thể chỉ cho tôi đi đúng hướng không? @Fabian