2009-12-17 28 views
18

Magento'da "done_some_thing" gibi özel bir etkinliği nasıl ekleyebilirim? Belirli bir bağlantı üzerinden gelir müşteriler için belli bir% indirim veren bir alışveriş sepeti için kodlama ve Cart ve Ödeme Page hem aynı göstermek istiyorum amMagento'daki Özel Etkinlikler

cevap

31

kullanmak, olay gönderebilirsiniz için Mage::dispatchEvent işlevi (%magento%/app/Mage.php around line 425). Aramalar şuna benzer:

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

, bir olayı gözlemlemek Uzantınızın config.xml dosyasındaki gözlemciyi belirtmek amacıyla.

<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> 

karşılık gelen sınıf ve yöntemi (Observer.php) oluşturun ve gitmek için hazırsınız:

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

Bu en basit açıklamasıdır. +1 –

+0

Yukarı İleri: [Verileri Magento'daki olay gözlemcisinden geri göndericiye geri döndürün] (http://stackoverflow.com/q/13277121/367456);) – hakre

İlgili konular