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:

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.

Happy Coding! :)