php – Magento自定义模块Observer无法正常工作
发布时间:2020-12-13 15:56:24 所属栏目:PHP教程 来源:网络整理
导读:我已经在app / code / local / mycustom / GeoLocation中创建了magento中的自定义模块,因为我想创建一个观察者,所以我已经按照了很多教程,最后我创建了下面的代码,在每个页面加载时调用它magento,但它仍然没有调用我的observer.php自定义模块.我是magento的
我已经在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; } } 解决方法
模块中存在很多问题.
作为观察者,die()可能不起作用.使用Magento日志打印来检查观察者是否工作 模块NameSpace文件夹名称应以大写字母mycustom以Mycustom开头.您还需要更改类名reslusctive代码. 更新: 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获得完整的模块 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |