2010-07-27 57 views
2

我想對一些Magento核心文件進行更改。爲了確保這些變化是未來的證明,我將文件從代碼/核心/法師複製到代碼/本地/法師。Magento - 將文件添加到本地/法師不起作用

我保持文件結構和文件名一致。問題是,當我這樣做的變化沒有效果(我刷新了緩存)

任何想法,我哪裏出錯了?如果我直接編輯核心文件,則會發生更改。

+0

本地文件夾用於自定義模塊。對於核心更改,您需要直接在代碼/核心/法師中編輯它們。 – Rito 2010-07-27 11:55:51

+0

這不是推薦的方法。 – 2010-07-27 12:50:06

+0

Rito說的不對,你可以在本地編輯。 – 2010-07-27 14:11:47

回答

3

您應該創建一個新的本地模塊,並定義在config.xml文件重寫:

創建app/code/local/MyCompany/MyModule目錄。添加子文件夾etcmodel

現在創建etc/config.xml文件,其中包含:

<?xml version="1.0" encoding="utf-8?> 
<config> 
    <modules> 
     <MyCompany_MyModule> 
      <version>0.1.0</version> 
     </MyCompany_MyModule> 
    </modules> 

    <global> 
     <models> <!-- type of class to rewrite --> 
      <catalog> <!-- base module to rewrite --> 
       <rewrite> 
        <product>MyCompany_MyModule_Model_Product</product> 
       </rewrite> 
      </catalog> 
     </models> 
    </global> 
</config> 

實現model/Product.php與更改。最簡單的方法是從基類繼承並重寫方法。

還記得在app/etc/modules中激活你的模塊。

0

上面的海報是正確的,編輯核心功能的首選方法是使用重寫。但在某些情況下,這是不可能的,在這種情況下,您應該能夠將核心文件放入/app/code/local/Mage目錄中以使其工作。塊和模型文件應該以這種方式立即工作,如果我沒有記錯的話,控制器應該是這樣。其他文件(如配置文件)可能不是自動的。

你能發佈一個特定的文件的細節,沒有如你所期望的那樣響應嗎?調試細節比普通更容易。此外,除了刷新普通緩存之外,還要確保已關閉了服務器上已安裝的任何操作碼緩存。

謝謝, 喬

+0

隨着配置文件,你只需將你的模塊config.xml或local.xml覆蓋逐字。 – 2010-07-28 06:18:44

+0

您無法覆蓋未實例化Mage類的類。所以,像Mage_Model_Catalog_Product_Abstract這樣的東西不能這樣做。基本上,它不適用於繼承,因爲這裏使用了「普通」類名稱。 – 2010-07-28 06:32:12

+0

我試圖編輯的文件是: app> code> core> Mage> Customer> etc> config.xml 我試着將它複製到: app> code> local> Mage> Customer> etc> config.xml – a1anm 2010-07-28 09:15:43

0

您可以輕鬆地使用local.xml覆蓋XML設置。所以,如果你想覆蓋/添加到app/code/core/Mage/Customer/etc/config.xml你只需將它添加到app/etc/local.xml

相關問題