Magento добавить postDispatch к действию post - PullRequest
0 голосов
/ 26 июня 2018

У меня есть этот контроллер:

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 голосов
/ 27 июня 2018

Правильное событие для прослушивания здесь будет controller_action_postdispatch_contacts_index_post. Структура controller_action_postdispatch_ROUTER_CONTROLLERNAME_ACTIONNAME.

P.S. : подтвердите, что вы должны написать свой модуль в локальном пуле, а не в ядре.

...