Admin Controller Rewrite
Per sovrascrivere i controllers in amministrazione, che siano di un core o di un community module devi innanzitutto creare un nuovo modulo.
Al contrario delle configurazioni di rewrite di blocchi e moduli, non hai bisogno di specificare quale controller deve essere sovrascritto. Devi giusto definire se:
- è un controller di amministrazione o di frontend;
- quale modulo ha il controllo di cui stai facendo l’override;
- con quale modulo lo stai sovrascrivendo (il tuo!).
Ecco un esempio di configurazione:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <config> ... <admin> <routers> <adminhtml> <args> <modules> <my_Module before="Mage_Adminhtml">My_Module</my_Module> </modules> </args> </adminhtml> </routers> </admin> ... </config> |
Il file di configurazione è la parte più importante! Se scrivi male questo file, non potrà mai funzionare nulla.
Ora che hai detto a Magento che un controller è da sovrascrivere, bisogna creare il controller vero e proprio.
Il controller non è altro che un file php con postspeso il termine Controller e ad ogni azione (new, edit etc) viene postpeso il termine Action.
L’ordine di files e directory nel tuo modulo che usi per sovrascrivere i controllers deve essere lo stesso del controller originale. Importantissimo, lo stesso!
Es. se decidi di sovrascrivere Mage/Catalog/Adminhtml/ProductController questo file lo trovi in app/code/core/Mage/Adminhtml/Controller/Catalog/ProductController.php Nel tuo modulo dovrai creare le directories app/code/local/VendorName/YourModule/controllers/Adminhtml/Catalog e quindi il file ProductController.php
Quindi il nome della classe deve essere la stessa, così come la struttura delle directories.
I controllers non vengono caricati dall’Autoloader, quindi dovrai fare un include manuale del controller che stai estendendo.
1 2 3 4 5 | <?php include_once("Mage/Adminhtml/controllers/Catalog/ProductController.php"); //<-- includi manualmente il controller class My_Module_Catalog_Adminhtml_ProductController extends Mage_Adminhtml_Catalog_ProductController { ... |
Happy Coding! :)
[…] Magento Admin Controller Rewrite | valerio masciotta […]