Modificare una griglia nel pannello di amministrazione

Magento
di in Magento il 21 Dicembre 2010

 

Uno degli strumenti più utilizzati nel back-end di Magento per presentare un qualsiasi tipo di modello dati è senza dubbio la griglia. Padroneggiare con disinvoltura questo strumento consente di migliorare gli strumenti di gestione del proprio sito ed ottimizzare quindi il tempo che si passa nell’amministrazione del CMS.

Come esempio, modificheremo la griglia di riepilogo ordini. Innanzitutto, creiamo la struttura file tipica di un modulo, abilitiamolo e troviamo il file per cui effettuare l’override di funzione. La pagina che compone una griglia in Magento è solitamente composta da 2 file: il container e la griglia vera e propria. Nel nostro caso quindi dovremo sovrascrivere

Indichiamo nell’apposito file xml di configurazione quali file andranno a sovrascrivere quelli del core, poi interveniamo sulle funzioni presenti andano a modificarne il comportamento.

Possiamo facilmente filtrare gli ordini utilizzandone lo status, il nome del cliente, un intervallo dati… Tutto questo è possibile modificando la variabile $collection costruita dalla funzione _prepareCollection():

Qui sopra vediamo come eliminare dalla query gli ordini in stato ‘Cancellato’.

Una delle colonne della griglia è proprio lo stato, utilizzato per filtrare ed ordinare; perciò dobbiamo fare uno step successivo e creare una funzione che restituisca tutti gli stati disponibili (togliendo cioè ‘Canceled’):

La nostra griglia raggruppa ora solo gli ordini in stato non ‘Cancellato’, perfettamente filtrabili ed ordinabili per ogni colonna.

Cosa succede se volessimo recuperare i nostri ordini cancellati, gestendoli in separata sede?
Beh, niente di più semplice. Innanzitutto, creiamo nel menu ‘sales/order’ la voce ‘Orders canceled’ e puntiamola ad un percorso interno al modulo da noi creato (es: FilterAdminOrderGrid/canceled/index).

Ora serve il relativo controller, quindi:

Ora settiamo il corretto layout per questa pagina, creando il relativo xml da inserire in amministrazione:

I 2 file indicati qui sopra rappresentano rispettivamente griglia e contenitore della nostra nuova pagina. Vanno ovviamente creati, iniziando dalla griglia:

Stavolta la query seleziona solo gli ordini in stato cancellato.

 

Nella preparazione delle colonne possiamo eliminare quella relativa allo stato; gli ordini ne possiedono infatti uno solo (‘canceled’).

 

Infine, modifichiamo la destinazione del link presente sulle righe della griglia, facendolo puntare al percorso magento originale.

Ora il file relativo al contenitore della griglia:

Abbiamo quasi finito, manca solo la modifica della vista ordine: in caso di pressione tasto indietro, se l’ordine è in stato cancellato deve tornare da dove siamo venuti, cioè la griglia ordini da noi creata!

Per fare questo è sufficiente sovrascrivere il file view.php indicato in precedenza in questo modo:

Fatto! Gli ordini sono stati scorporati dalla griglia originale di Magento e resi disponibili attraverso un nuovo percorso linkato nello stesso menu.

1stonthenet è la discarica dei miei deliri digitali.
(cit. Paolo Attivissimo)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *