我已经在app / code / local / mycustom / GeoLocation中创建了magento中的自定义模块,因为我想创建一个观察者,所以我已经按照了很多教程,最后我创建了下面的代码来调用每个magento的页面加载,但它仍然没有调用我的自定义模块的observer.php。我是magento的新手所以请帮助我。
config.xml中
<config>
<global>
<events>
<cms_page_render>
<observers>
<mycustom_GeoLocation_Model_observer>
<type>singleton</type>
<class>mycustom_GeoLocation_Model_Observer</class>
<method>getGeoLocation</method>
</mycustom_GeoLocation_Model_observer>
</observers>
</cms_page_render>
</events>
</global>
</config>
启用模块的mycustomGeolocation_Event.xml
<config>
<modules>
<mycustom_GeoLocation>
<active>true</active>
<codepool>local</codepool>
</mycustom_GeoLocation>
</modules>
</config>
最后我的observer.php出现在我的自定义模块的模型中
class mycustom_GeoLocation_Model_Observer {
public function __construct()
{
}
public function getGeoLocation(Varien_Event_Observer $observer) { // current layout
$event = $observer->getEvent();
$cms_page = $event->getPage();
echo "called";
exit;
return $this;
}
}
答案 0 :(得分:1)
模块中存在很多问题。
作为观察员die() may be not works
。使用Magento log print to check the observer work or not
模块NameSpace文件夹名称应以upper letter mycustom to Mycustom
开头。您还需要更改类名重复代码。
config.xml代码:
<?xml version="1.0"?>
<config>
<modules>
<Mycustom_GeoLocation>
<version>0.1.0</version>
</Mycustom_GeoLocation>
</modules>
<global>
<models>
<geolocation>
<class>Mycustom_GeoLocation_Model</class>
</geolocation>
</models>
<events>
<cms_page_render>
<observers>
<cms_page_render_handler>
<type>model</type>
<class>geolocation/observer</class> <!-- observers class alias -->
<method>getGeoLocation</method>
</cms_page_render_handler>
</observers>
</cms_page_render>
</events>
</global>
</config>
您可以在github
获取完整的模块