Как я могу добавить пользовательское событие в Magento как "done_some_thing"?
Я кодирую для корзины, которая дает определенную скидку % для клиентов, кто проникает через конкретную ссылку, и хотят показать то же и в Корзине и в Checkout Page
Чтобы отправить событие, используйте Маг :: Функция dispatchEvent
(% magento% / app / Mage.php около строки 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();
}
}