2012-02-19 13 views
8

Witam Próbuję zastąpić Mage_Customer_AccountController, dzięki czemu mogę przedłużyć metodę createPostAction. Dla mojego życia nie mogę tego zrobić, albo rzuca stronę 404, co sugeruje, że nie jest właściwą ścieżką do pliku lub domyślnie jest orignal.Magento: Zastępowanie kontrolera konta klienta

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

Mój kontroler znajduje się tutaj lokalne/Firma/modulename/controllers/AccountController.php

+1

czy koniecznie trzeba to zmienić? Znacznie wygodniej jest używać obserwatora wydarzeń, który nasłuchuje zdarzenia customer_save_after i wykonuje wymagane kroki w niesprzężonym, bezpiecznym dla aktualizacji sposobie. –

Odpowiedz

24

Zamiast tego, można spróbować jak:

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

I utworzyć klasę kontrolera:
app/code/[codePool] /Firma/nazwa_Modułu/procesory/AccountController.php
o następującym kodzie:

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

Oto więcej informacji na temat kontrolera nadrzędnego:
https://stackoverflow.com/a/7117076/887385

Powodzenia !!

+0

Doskonale, dziękuję za to! – jamessy

+3

Z Magento 1.7 tylko to działa dla mnie: Company_Modulename

+0

@KevinHorst +1 za komentarz. Mam pytania dotyczące wersji 1.6.X C.E., sprawdzając, o co chodzi, i zaktualizuję tę. – Haijerome

Powiązane problemy