events - meet - Eventos personalizados en Magento
magento español (1)
¿Cómo puedo agregar un evento personalizado en Magento como "done_some_thing"?
Estoy programando un carrito de compras que ofrece un cierto% de descuento para los clientes que llegan a través de un enlace en particular, y quiero mostrar lo mismo tanto en el carrito como en la página de pago.
Para enviar un evento, use la función Mage::dispatchEvent
( %magento%/app/Mage.php around line 425
). Las llamadas se ven así:
$data = array( ''somedata'' => ''foo'', ''layout'' => $this->getLayout());
Mage::dispatchEvent(''my_event_name'', $data);
Para observar un evento, especifique el observador en el archivo config.xml de su extensión.
<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>
Cree una clase y un método correspondientes (Observer.php) y estará listo para comenzar:
class Myextension_Model_Observer {
public function someMethodName($event) {
$layout = $event->getLayout();
$someData = $event->getSomedata();
}
}