2012-04-17 117 views
1

我正在嘗試在Magento中設置事件觀察者。我正在觀察的事件被解僱,但似乎我的方法不會運行。我的模塊已註冊,一切正常。未使用Magento觀察者執行的方法

這裏的定義觀察員

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <global> 
     <models> 
      <technoberglink> 
       <class> 
        Technoberg_Link_Model 
       </class> 
      </technoberglink> 
     </models> 
    </global> 
    <frontend> 
     <events> 
      <cms_page_render><!-- sales order place after --> 
       <observers> 
        <Technoberg_Link_Observer> 
         <type> 
          singleton 
         </type> 
         <class> 
          Technoberg_Link_Model_Observer 
         </class> 
         <method> 
          start_link 
         </method> 
        </Technoberg_Link_Observer> 
       </observers> 
      </cms_page_render> 
     </events> 
    </frontend> 
</config> 

現在我不知道該事件被解僱了,因爲如果我改變類Technoberg_Link_Model_Observer的別的東西config.xml文件的幾個錯誤被記錄,說明該文件couldn找不到。

這是我的Observer.php文件

class Technoberg_Link_Model_Observer { 

function __construct(){ 

} 


public function start_link($e){ 

    Mage::log("Dummy code executed"); 
    return $this; 

} 
} 

我不知道爲什麼不執行我的方法,所以任何幫助將是巨大的!

回答

4

我修好了。 我檢查了沒有問題的所有空白。

我把事件在全球和變更後的標籤觀察者內到相同的名稱類我使用。這解決了問題。所以XML將是

<global> 
     <events> 
     <cms_page_render> 
      <observers> 
       <Technoberg_Link_Model_Observer> <!-- TAG INSIDE OBSERVER --> 
        <type>singleton</type> 
        <class>Technoberg_Link_Model_Observer</class> 
        <method>start_link</method> 
       </Technoberg_Link_Observer> 
      </observers> 
     </cms_page_render> 
     </events> 
    </global> 

我想Magento是非常嚴格的,當談到他們的命名約定=)感謝您的幫助!

0
<events> 
      <cms_page_render><!-- sales order place after --> 
       <observers> 
        <Technoberg_Link_Observer> 
         <type> 
          singleton 
         </type> 
         <class> 
          Technoberg_Link_Model_Observer 
         </class> 
         <method> 
          start_link 
         </method> 
        </Technoberg_Link_Observer> 
       </observers> 
      </cms_page_render> 
     </events> 

編寫XML的這部分

<global> </global> 

標籤不是前端標籤

清除緩存和重新加載內

0

請嘗試以下config.xml中...我認爲這是一個空白問題...

<?xml version="1.0" encoding="UTF-8"?> 
<config> 
    <global> 
     <models> 
      <technoberglink> 
       <class>Technoberg_Link_Model</class> 
      </technoberglink> 
     </models> 
    </global> 
    <frontend> 
     <events> 
      <cms_page_render> 
       <observers> 
        <technoberglink> 
         <type>singleton</type> 
         <class>Technoberg_Link_Model_Observer</class> 
         <method>start_link</method> 
        </technoberglink> 
       </observers> 
      </cms_page_render> 
     </events> 
    </frontend> 
</config> 
+0

是的,從config中的文本值中刪除空格。 – benmarks 2012-04-18 04:02:45