2009-12-17 1 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 –

+0

위로 다음 : [Magento의 이벤트 관찰자로부터 발송자에게 다시 데이터를 반환] (http://stackoverflow.com/q/13277121/367456)) – hakre