2009-12-17 31 views
18

如何在“magento”中添加自定义事件,如“done_some_thing”?Magento中的自定义事件

我编码为一个购物车的给出了谁上台通过特定链接的客户一定折优惠,并希望显示在这两个车和结算页面相同

回答

31

派遣一个事件,请使用Mage::dispatchEvent函数(%magento%/app/Mage.php around line 425)。调用如下所示:

$data = array('somedata' => 'foo', 'layout' => $this->getLayout()); 
Mage::dispatchEvent('my_event_name', $data); 

为了观察事件,请在扩展的config.xml文件中指定观察者。

<config> 
    <global> 
     <events> 
      <my_event_name> 
       <observers> 
        <myextension> 
         <type>singleton</type> 
         <class>myextension/observer</class> 
         <method>someMethodName</method> 
        </myextension> 
       </observers> 
      </my_event_name> 
     </events> 
    </global> 
</config> 

创建一个相应的类和方法(Observer.php),你就可以走了:

class Myextension_Model_Observer { 
    public function someMethodName($event) { 
     $layout = $event->getLayout(); 
     $someData = $event->getSomedata(); 
    } 
} 
+0

这是最简单的解释。 +1 – 2014-10-10 04:50:34

+0

上一页下一页:[将数据从Magento中的事件观察者返回给调度员](http://stackoverflow.com/q/13277121/367456);) – hakre 2015-05-11 12:25:57