2012-02-07 56 views
1

我正在研究一個擴展,它將在保存時從Magento(Enterprise)接收CatalogEvent信息並對信息進行自定義處理。Magento Enterprise CatalogEvent

這裏是我用來聽的事件代碼:

<?xml version="1.0"?> 
<config> 
    <global> 
    <models> 
     <mage4ucustomredirect> 
      <class>Mage4u_Customredirect</class> 
     </mage4ucustomredirect> 
    </models> 
    <events> 
     <enterprise_catalogevent_event> 
      <observers> 
       <abc> 
        <type>singleton</type> 
        <class>Mage4u_Customredirect_Model_Observer</class> 
        <method>on_enterprise_catalogevent_event</method> 
       </abc> 
      </observers> 
     </enterprise_catalogevent_event> 
    </events> 
    </global> 
</config> 

,這是觀測:

class Mage4u_Customredirect_Model_Observer 
{ 
    public function on_enterprise_catalogevent_event(Varien_Event_Observer $observer) 
    { 
     Mage::log("on_enterprise_catalogevent_event"); 
    } 

} 
?> 

當我保存CatalogEvent,我不接電話。你能發現我的代碼有問題嗎?

回答

0

您的觀察者不叫,因爲enterprise_catalog_event模式,但不是一個事件

app/code/core/Enterprise/CatalogEvent/etc/config.xml

<config> 
    : 
    <global> 
     <models> 
      <enterprise_catalogevent> 
       <class>Enterprise_CatalogEvent_Model</class> 
       <resourceModel>enterprise_catalogevent_resource</resourceModel> 
      </enterprise_catalogevent> 
      <enterprise_catalogevent_resource> 
       : 
       <entities> 
        <event> 
         <table>enterprise_catalogevent_event</table> 
        </event> 
        : 
       </entities> 
      </enterprise_catalogevent_resource> 
     </models> 
     : 
    </global> 
    : 
</config> 

AFAIK enterprise_catalogevent/event不會發出自己的保存的事件,但你可以觀察到通用model_save_beforemodel_save_after事件,接收時正在創建/保存這樣的模型回調。

你只需要確定被傳遞給這些一般事件第一對象:

$oObject = $observer->getEvent()->getObject(); 
if ($oObject instanceof Enterprise_CatalogEvent_Model_Event) { 
    if ($oObject->isObjectNew()) { 
     // it is/was a create 
    else { 
     // it is/was a save 
    }   
} 
+0

謝謝。現在我明白了它爲什麼不能正常工作......但是您知道我應該使用哪個事件,因此無論何時創建/保存CatalogEvent時都可以收到回調。 – Bassam 2012-02-08 09:30:02

+0

更新了我的答案。 – 2012-02-08 10:53:58

+0

WowJürgen...它的作品!非常感謝你的男人!你真棒 :-) – Bassam 2012-02-08 11:53:44

0

請試試這個:

<events> 
    <enterprise_catalogevent_event> 
     <observers> 
      <mage4u_customredirect_model_observer> 
       <type>singleton</type> 
       <class>Mage4u_Customredirect_Model_Observer</class> 
       <method>on_enterprise_catalogevent_event</method> 
      </mage4u_customredirect_model_observer> 
     </observers> 
    </enterprise_catalogevent_event> 
</events> 
+0

感謝您的答覆。我試過了......沒有任何改變。你能確認我使用的活動名稱是正確的嗎?我的意思是「enterprise_catalogevent_event」 – Bassam 2012-02-07 10:06:50

+0

嘗試此事件觸發器:catalogevent_event_save_after – sondoha 2012-02-07 10:29:06

+0

否...這不起作用 – Bassam 2012-02-07 11:11:01

相關問題