2011-08-18 13 views
7

Próbuję wprowadzić pewne zmiany do kontrolera usługi Checkout w moim sklepie Magento, jednak gdy próbuję umieścić plik kontrolera w moim katalogu lokalnym, nie wydaje się, lokalny plik dla tego.Wygląda na to, że nie można przesłonić kontrolera transakcji w Magento

Sprawdziłem, czy pliki znajdują się w tym samym miejscu w ich odpowiednich pulach kodów, a pliki mają taką samą nazwę, po prostu nie będą tego robić.

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

To są ścieżki do plików dla dwóch plików, które mam.

Czy jest coś specjalnego w plikach kasy w Magento, które uniemożliwiają nadpisanie ich?

Odpowiedz

14

FYI, przesłonięcie kontrolera nie działa po prostu przez umieszczenie powiązanego pliku w folderze lokalnym o tej samej strukturze folderów. Raczej trzeba wykonać następującą składnię dla celów:

<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

Jest to ciekawy projekt decyzji dla zespołu Magento ponieważ wszystko inne wewnątrz modułu można łatwo przesłonić, umieszczając go we właściwym miejscu w lokalnej puli kodów. –

Powiązane problemy