2012-02-19 11 views
8

Hola, estoy intentando anular Mage_Customer_AccountController, de modo que pueda extender el método createPostAction. Por mi vida, parece que no puedo hacer esto, o bien arroja una página 404, lo que sugiere que no es la ruta correcta para el archivo o que está predeterminado a orignal.Magento: Anulación del controlador de cuenta de cliente

<rewrite> 
     <company_modulename_account> 
      <from><![CDATA[#^/customer/account/#]]></from> 
      <to>/modulename/account</to> 
     </company_modulename_account> 
</rewrite> 

Mi controlador se encuentra aquí/Empresa/modulename/controladores locales/AccountController.php

+1

¿tiene absolutamente que anularlo? Es mucho mejor práctica usar un Event Observer que escuche el evento customer_save_after y realice los pasos requeridos de una manera desacoplada y segura para la actualización. –

Respuesta

24

En su lugar, se puede tratar como:

... 
<frontend> 
     <routers> 
      <customer> 
       <args> 
        <modules> 
         <company_modulename before="Mage_Customer">Company_Modulename</company_modulename> 
        </modules> 
       </args> 
      </customer> 
     </routers> 
    </frontend> 
... 

y crear una clase controlador:
app/code/[codePool] /Company/Modulename/controllers/AccountController.php
con el siguiente código:

require_once 'Mage/Customer/controllers/AccountController.php'; 
class Company_Modulename_AccountController extends Mage_Customer_AccountController 
{ 
    public function createPostAction(){ 
     die('Overriden'); 
    } 
} 

Aquí hay más información sobre el controlador primordial:
https://stackoverflow.com/a/7117076/887385

buena suerte !!

+0

Perfecto, ¡gracias por eso! – jamessy

+3

Con Magento 1.7, solo esto funciona para mí: Company_Modulename

+0

@KevinHorst +1 para el comentario. Estoy en 1.6.X C.E. investigando cuál es el problema y actualizaré este. – Haijerome

Cuestiones relacionadas