2012-01-19 66 views
8

當我需要在位於Enterprise部分的觀察者中重寫一個函數時,該重寫位在config.xml中的外觀如何。重寫Magento禮品卡觀察器功能

是這樣的嗎?

<global> 
    <models> 
     <enterprise> 
      <rewrite> 
       <giftcard>Custom_GiftCard_Model_Observer</giftcard> 
      </rewrite> 
     </enterprise> 
    </models> 
</global> 

我的類被聲明如下: 類Custom_GiftCard_Model_Observer擴展Enterprise_GiftCard_Model_Observer { ..... }

回答

17

我沒有在目前的企業發展環境設置,所以這是未經測試,但它應該像描述的那樣工作。

如果你看一下禮品卡配置

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

您可以grep約和發現該類別名禮品卡觀察者

<class>enterprise_giftcard/observer</class> 

因此,與enterprise_giftcard/observer類的別名,你有一個模型組名稱enterprise_giftcard,以及一個模型類名稱observer

在你的模塊的配置文件,您首先創建模型配置的區域

<global> 
    <models> 

    </models> 
</global> 

然後,你會添加要重寫類的組名,enterprise_giftcard

<global> 
    <models> 
     <enterprise_giftcard> 
     </enterprise_giftcard> 
    </models> 
</global> 

然後,您將添加一個節點說你想改寫這個組中的一個單獨的類

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 

的,你將指示要重寫組中哪一類的一個節點,使用類別名的名稱部分(observer

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
       <observer></observer> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 

最後,此節點中,您將添加一個文本節點,這是您的新班級的名稱。

<global> 
    <models> 
     <enterprise_giftcard> 
      <rewrite> 
       <observer>Custom_GiftCard_Model_Observer</observer> 
      </rewrite> 
     </enterprise_giftcard> 
    </models> 
</global> 

您可以通過直接實例化觀測,並檢查它的類名

$model = Mage::getModel('enterprise_giftcard/observer'); 
var_dump(get_class($model)); 
+0

那麼說明我是你的追隨者測試你重寫。 – Gowri

+0

感謝您的快速響應。會很快嘗試出來。 – ShaunOReilly

+0

這樣做的工作,謝謝。我拉着我的頭髮,因爲我忘了基礎! – ShaunOReilly