2011-08-18 8 views
7

Estoy tratando de hacer algunos cambios en el controlador de Checkout en mi tienda Magento, sin embargo, cuando trato de poner el archivo controlador en mi directorio local, no parece estar respetando el archivo local para esto.Parece que no puede anular Checkout Controller en Magento

He comprobado que los archivos están en el mismo lugar en sus grupos de códigos respectivos y los archivos tienen el mismo nombre, simplemente no lo hará.

  • /app/code/core/Mage/Checkout/controllers|CartController.php
  • /app/code/local/Mage/Checkout/controllers|CartController.php

Esos son los rutas de archivos para los dos archivos que tengo.

¿Hay algo especial sobre los archivos de pago en Magento que impida que se anulen?

Respuesta

14

Para su información, la anulación del controlador no funciona simplemente colocando el archivo relacionado en la carpeta local con la misma estructura de carpetas. Más bien hay que seguir la siguiente sintaxis para este fin:

<config> 
    <frontend> [1] 
     <routers> 
      <checkout> [2] 
       <args> 
        <modules> 
         <yourModule before="Mage_Checkout">Namespace_Module_Overwrite_Checkout</yourModule> [3] 
        </modules> 
       </args> 
      </checkout> 
     </routers> 
    </frontend> 
</config> 
 
[1] Depending on the controllers area ,"frontend" or "admin" 
[2] Router node of the module to be overridden (look it up in the config.xml of that module) 
[3] The tag can be anything, it must be unique within the node. 
Your_Module_Overwrite_Checkout (is mapped to directory) 
Your/Module/controllers/Overwrite/Checkout/ 

Hope this helps. 
Regards 
MagePsycho 
+1

Esta es una decisión de diseño curiosa para el equipo de Magento ya que todo lo demás dentro de un módulo puede anularse fácilmente colocándolo en el lugar correcto en el grupo de códigos local. –

Cuestiones relacionadas