Magento 将 postDispatch 添加到 post action



我有这个控制器:

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并且执行应该完成,但不能像这样工作。似乎没有召唤观察者。你能帮我吗?提前感谢。

在这里收听的正确事件是controller_action_postdispatch_contacts_index_post。 结构controller_action_postdispatch_ROUTER_CONTROLLERNAME_ACTIONNAME

PS:承认你应该在本地池中而不是在核心中编写模块。

最新更新