Override no magento controller

Umas das coisas que poucos programadores sabem no Magento é o “Override”, para você alterar um controller do Magento é preciso criar um módulo para não comprometer atualização futuras do Magento, modificar o Core do Magento não é uma boa ideia.

Magento tem um recurso para colocar nossos códigos no diretório (app/code/local), assim toda personalização ou alteração do Core devemos colocar nesse diretório, assim ficaremos seguro para atualizar o Magento.

Há 2 maneiras para fazer esse tipo de alteração no Core do Magento

1. Criar a mesma estrutura de pasta no local exemplo: para substituir do core: app/code/core/Mage/Customer/controllers/AccountController.php devemos fazer a mesma estrutura no local: app/code/local/Mage/Customer/controllers/AccountController.php que ele vai dar prioridade para ler o local.

2. Outra maneira é usando nosso próprio módulo veja abaixo em apenas 3 passos.

1. Crie o xml do módulo Brunobrasilweb_Customer.xml

<?xmlversion="1.0"?>
<config>
 <modules>
 <Brunobrasilweb_Customer>
 <active>true</active>
 <codePool>local</codePool>
 </Brunobrasilweb_Customer>
 </modules>
</config>

2. Na configuração (config.xml) do módulo ficará assim:

<?xmlversion="1.0"?>
 <config>
 <modules>
 <Brunobrasilweb_Customer>
 <version>0.0.1</version>
 </Brunobrasilweb_Customer>
 </modules>
 <frontend>
 <routers>
 <customer>
 <args>
 <modules>
 <Brunobrasilweb_Customer before="Mage_Customer">Brunobrasilweb_Customer</Brunobrasilweb_Customer><!—Irá chamar antes do módulo do magento
 </modules>
 </args>
 </customer>
 </routers>
 </frontend>
 </config>

3.  Agora na página do Controller AccountController.php você coloca assim:

<?php
require_once("Mage/Customer/controllers/AccountController.php");

classBrunobrasilweb_Customer_AccountController extendsMage_Customer_AccountController {

 publicfunctionindexAction(){
 // Aqui você colocar a sua personalização.
 parent::indexAction();
 }
}
2017-01-24T20:24:38+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x