2009-12-17 5 views
18

Comment ajouter un événement personnalisé dans Magento comme "done_some_thing"?Événements personnalisés dans Magento

Je codant pour un panier qui donne un certain% de réduction pour les clients qui passe par un lien particulier, et que vous souhaitez montrer la même dans le panier et Commander page

Répondre

31

Pour envoyer un événement, utilisez la Mage::dispatchEvent fonction (%magento%/app/Mage.php around line 425). Les appels ressemblent à ceci:

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

Afin d'observer un événement, spécifiez l'observateur dans le fichier config.xml de votre poste.

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

Créer une classe correspondante et la méthode (Observer.php) et vous êtes prêt à aller:

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

C'est l'explication la plus simple. +1 –

+0

Haut Suivant: [Retour des données au répartiteur de l'observateur d'événements dans Magento] (http://stackoverflow.com/q/13277121/367456);) – hakre

Questions connexes