Magento自定义模块Observer无法正常工作

时间:2015-06-10 07:36:55

标签: 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;

    }
}

1 个答案:

答案 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

获取完整的模块