2013-07-11 2 views
0

핵심 AccountController.php -> app/code/core/Mage/Customer를 app/code/local/Mage /로 복사하고 로그를 추가하여 확장하려고합니다. 제대로 확장됩니다.Magento에서 AccountController.php를 확장하는 중 오류가 발생했습니다.

In the file AccountController.php (app/code/local/Mage/Customer/controllers) 
... 
... 
public function createPostAction() { 
     Mage::log('In app/code/local/Mage/', null, 'test.log', true); 
... 
... 

AND CORE (only test) 
In the file AccountController.php (app/code/core/Mage/Customer/controllers) 
... 
... 
public function createPostAction() { 
     Mage::log('In app/code/core/Mage/', null, 'test.log', true); 
... 
... 

그리고 코드/지역/마법사를 통해하지만 CORE으로하지 않습니다. 무언가를 구성해야합니까 그렇지 않으면 실패합니까?

답변

1

나는 원래 컨트롤러가 필요합니다 같아요

require_once Mage::getModuleDir('controllers', 'Mage_Customer').DS.'AccountController.php'; 

는 일반적으로 당신이 컨트롤러에게 XML 방식을 재 작성하여이 작업을 수행 할 필요가 ... 내가 코드에서 확인 havent 한을,하지만 어쩌면이 문제입니다.

내가 config.xml에

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_overload_a_controller

+0

모듈을 추가하려고하면 모듈을 제외한 모든 모듈을 무시하고 항상 코어로 이동합니다. – Alexd2

2

를 통해 그것을 일반적인 방법을 수행하는 것이 좋습니다 컨트롤러 클래스 정의가로드되는 논리는 명시가 경로를 포함 위의 파일 에 대한 경로를 구축 오토로더는 의지합니다. 이는 로컬 대 코어 우선 순위가 없음을 의미합니다.

당신은 XPath는 frontend/routers/customer/args/modules/your_module

후자의 노드가 Mage_Customer로 설정 before 속성을 필요로하고 당신이 createPostAction() 방법이있는 AccountController.php을 만들어야합니다 아래에 디렉토리를 지정하여 컨트롤러 다시 쓰기를 creat에해야합니다. 필요에 따라 에서 확장해야 할 수도 있고하지 않을 수도 있으며 핵심 계정 컨트롤러 클래스가 필요합니다.

관련 문제