Magento将postDispatch添加到发布操作

时间:2018-06-26 14:30:50

标签: php magento magento-1.7 magento-1.9 magento-1.8

我有这个控制器:

class Mage_Contacts_IndexController extends Mage_Core_Controller_Front_Action
{

public function preDispatch()
{
    parent::preDispatch();

    if( !Mage::getStoreConfigFlag(self::XML_PATH_ENABLED) ) {
        $this->norouteAction();
    }
}

public function indexAction()
{
    $this->_initLayoutMessages('juron/ses');
    $this->renderLayout();
}

public function postAction()
{
    $post = $this->getRequest()->getPost();
    if ( $post ) {
        ......
    }
 }
}

/Mage/Contacts/etc/config.yml中:

<events>
        <controller_action_postdispatch_contacts_post_action>
            <observers>
                <contacts>
                    <type>model</type>
                    <class>contacts/observer</class>
                    <method>postDispatch</method>
                <contacts>
            </observers>
        </controller_action_postdispatch_contacts_post_action>
    </events>

/Mage/Contacts/Model/Observer.php中:

class Mage_Contacts_Model_Observer
{
    public function postDispatch(Varien_Event_Observer $observer)
    {
        echo 'Stop';
        die();
    }
}

通常,当我尝试提交联系表格时,我应该看到Stop并且执行应该完成但不能这样工作。似乎未调用观察者。你能帮我吗 ?提前谢谢。

1 个答案:

答案 0 :(得分:0)

这里要听的正确事件将是controller_action_postdispatch_contacts_index_post。 结构为controller_action_postdispatch_ROUTER_CONTROLLERNAME_ACTIONNAME

P.S。 :确认您应该将模块写入本地池而不是内核中。