【问题标题】:Magento custom module Observer not workingMagento 自定义模块观察者不工作
【发布时间】:2015-06-10 07:36:54
【问题描述】:

我已经在 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;

    }
}

【问题讨论】:

    标签: php magento


    【解决方案1】:

    模块有很多问题。

    作为观察者die() may be not works.使用 Magento log print to check the observer work or not

    模块名称空间文件夹名称应以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获取完整模块

    【讨论】:

    • 感谢您的回复,请您详细说明一下,因为我是新手。
    • 等一下,我检查一下然后告诉你
    • 我不知道谁投了反对票,我需要 125 声望才能投反对票
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多