2010-07-27 4 views
2

일부 Magento 코어 파일을 변경하고 싶습니다. 변경 사항이 향후에 적용되는지 확인하려면 코드/core/Mage에서 code/local/Mage로 파일을 복사합니다.Magento - Local/Mage에 파일을 추가해도 영향이 없음

파일 구조와 파일 이름을 일관되게 유지합니다. 문제는 내가이 작업을 수행 할 때 변경 사항이 적용되지 않는다는 것입니다. 캐시를 새로 고쳤습니다.

내가 잘못 가고있는 아이디어가 있습니까? 핵심 파일을 직접 편집하면 변경 사항이 적용됩니다.

+0

로컬 폴더는 사용자 지정 모듈 용입니다. 핵심 변경 사항의 경우 code/core/Mage에서 직접 편집해야합니다. – Rito

+0

그것은 권장 된 방법이 아닙니다. –

+0

Rito가 말하는 것은 사실이 아니며 현지에서 편집 할 수 있습니다. –

답변

3

당신은 새 로컬 모듈을 만들고 config.xml 파일에서 재 작성을 정의해야합니다 :

app/code/local/MyCompany/MyModule 디렉토리를 작성하십시오. 하위 폴더 etcmodel을 추가하십시오.

<?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를 구현 :

지금 포함 etc/config.xml 파일을 만듭니다. 가장 쉬운 방법은 기본 클래스에서 상속하고 metho를 다시 작성하는 것입니다.

또한 app/etc/modules에서 모듈을 활성화해야합니다.

0

위의 포스터는 핵심 기능을 편집하는 가장 좋은 방법은 다시 쓰는 것입니다. 그러나 어떤 경우에는 가능하지 않으며,이 경우 코어 파일을 /app/code/local/Mage 디렉토리에 배치하여 작동시킬 수 있어야합니다. 블록 및 모델 파일은이 방법으로 즉시 작동해야하며 올바르게 기억하는 경우 컨트롤러와 마찬가지로 작동해야합니다. 다른 파일 (예 : 구성 파일)은 자동이 아닐 수 있습니다.

예상대로 응답하지 않는 특정 파일의 세부 정보를 게시 할 수 있습니까? 일반 사항보다 세부 사항을 디버그하는 것이 더 쉽습니다. 또한 서버에 설치 한 opcode 캐시를 모두 종료하고 일반 캐시를 플러시하는지 확인하십시오.

덕분에, 조

+0

config 파일을 사용하면 모듈 config.xml 또는 local.xml에 그대로 덮어 쓰게됩니다. –

+0

Mage 클래스를 인스턴스화하지 않은 클래스는 덮어 쓸 수 없습니다. 그래서 Mage_Model_Catalog_Product_Abstract와 같은 것은 이런 식으로 할 수 없습니다. 기본적으로 "정상적인"클래스 이름이 여기에 사용되므로 상속과 함께 작동하지 않습니다. –

+0

편집하려는 파일 : application> code> core> Mage> Customer> etc> config.xml 내가 복사 해 보았습니다 : app> code> local> Mage> Customer> etc> config.xml – a1anm

0

은 쉽게 local.xml를 사용하여 XML 설정을 덮어 쓸 수 있습니다. 따라서 app/code/core/Mage/Customer/etc/config.xml에 덮어 쓰기/추가하려는 경우 app/etc/local.xml에 추가하면됩니다.

관련 문제