gpt4 book ai didi

model-view-controller - 在 Magento 中为 Controller 的 Action 之前/之后添加事件

转载 作者:行者123 更新时间:2023-12-04 00:03:12 25 4
gpt4 key购买 nike

我在 Magento 中有一个 Controller ,如下所示:

#File: ./app/local/FilFact/Test/IndexController
class FilFact_Test_IndexController extends Mage_Core_Controller_Front_Action{
public function indexAction(){
$this->_testConfig();
}
}

我需要添加两个事件:
before index action after index action
我怎么能那样做?

最佳答案

这很简单,因为 Mage_Core_Controller_Varien_Action 基类提供前/后调度事件。

如果你打开 Mage_Core_Controller_Varien_Action 类,你会发现两个方法:preDispatch()postDispatch()

这些方法执行一些任务,最重要的是触发三个事件。

controller_action_(pre|post)dispatch
controller_action_(pre|post)dispatch_{{routeName}}
controller_action_(pre|post)dispatch_{{fullActionName}}

fullActionName 是路由名称、 Controller 名称和由“_”和全部小写分隔的操作名称。 (引用 Mage_Core_Controller_Varien_Action::getFullActionName)

/app/code/local/FilFact/Test/etc/config.xml
<?xml version="1.0"?>
<config>
<modules>
<FilFact_Test>
<version>1.0.0</version>
<FilFact_Test>
</modules>
<global>
<models>
<FilFact_Test>
<class>FilFact_Test_Model</class>
</FilFact_Test>
</models>
</global>
<frontend>
<routers>
<filfact>
<use>standard</use>
<args>
<module>FilFact_Test</module>
<frontName>filfact</frontName>
</args>
</filfact>
</routers>
<events>
<controller_action_predispatch_filfact_index_index>
<observers>
<FilFact_Test>
<class>FilFact_Test/Observer</class>
<method>indexPreDispatch</method>
</FilFact_Test>
</observers>
</controller_action_predispatch_filfact_index_index>
<controller_action_postdispatch_filfact_index_index>
<observers>
<FilFact_Test>
<class>FilFact_Test/Observer</class>
<method>indexPostDispatch</method>
</FilFact_Test>
</observers>
</controller_action_postdispatch_filfact_index_index>
</events>
</frontend>
</config>

/app/code/local/FilFact/Test/Model/Observer.php
<?php
class FilFact_Test_Model_Observer
{
public function indexPreDispatch(Varien_Event_Observer $observer)
{
// TODO: Your code
}

public function indexPostDispatch(Varien_Event_Observer $observer)
{
// TODO: Your code
}
}

关于model-view-controller - 在 Magento 中为 Controller 的 Action 之前/之后添加事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7510293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com