2009-12-17 62 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