This post describes the steps necessary for creating an Magento Observer
First, if you’re creating a new module, be sure you have defined your module in app/etc/modules directory:
<?xml version="1.0"?> <config> <modules> <Namespace_Modulename> <active>true</active> <codePool>local</codePool> </Namespace_Modulename> </modules> </config> |
To define a observer, you must enter it in your module’s config.xml file:
<!-- app/code/local/NameSpaceName/ModuleName/etc/config.xml --> <config> <modules> <NameSpaceName_ModuleName> <version>0.1.0</version> </NameSpaceName_ModuleName> </modules> <global> <models> <modulename> <class>NameSpaceName_ModuleName_ClassName</class> </modulename> </models> <events> <observer_name> <observers> <unique_observer_name> <class>modulename/observerdir_observer</class> <method>ObserverMethodName</method> </unique_observer_name> </observers> </observer_name> </events> |
The line:
<class>modulename/observerdir_observer</class> |
tells the Magento observer’s class name and location. The observer class shoud look like something like this:
//app/class/local/NamespaceName/ModuleName/observerdir/Observer.php class NameSpaceName_ModuleName_Model_ObserverDir_Observer { public function executeSomeAction(Varien_Event_Observer $observer) { var_dump($observer->getData('some_data')); die ('executing the observer action'); } } |
The Observer is being called from any action by calling the static method:
Mage::dispatchEvent('observer_name',array('some_data'=>$data)); |