personalizzare i filtri nel backend

La generazione automatica dei moduli di backend è bellissima, ma a volte c’è da sistemare qualche dettaglio a mano. Un caso esemplare è la form dei filtri, che purtroppo resta in inglese anche se la localizzazione è stata abilitata. Ma con qualche riga aggiuntiva nella classe filter relativa, possiamo metterla facilmente in Italiano (o anche personalizzarla ulteriormente). Innanzitutto occorre individuare la classe giusta: se ad esempio il vostro modello si chiama “BlogPost”, dovete modificare il file lib/filter/BlogPostFilter.class.php. Aprite dunque il file, ed inserite queste righe all’interno del metodo configure():

1
2
3
4
5
$this->widgetSchema['created_at']->setOption('template', 'da %from_date%<br /> a %to_date%');
$this->widgetSchema['created_at']->getOption('from_date')->setOption('format', '%day%/%month%/%year%');
$this->widgetSchema['created_at']->getOption('from_date')->setOption('empty_values', array('year' => 'anno', 'month' => 'mese', 'day' => 'giorno'));
$this->widgetSchema['created_at']->getOption('to_date')->setOption('format', '%day%/%month%/%year%');
$this->widgetSchema['created_at']->getOption('to_date')->setOption('empty_values', array('year' => 'anno', 'month' => 'mese', 'day' => 'giorno'));

come si può capire facilmente dal codice, non solo abbiamo messo le etichette in Italiano, ma abbiamo anche invertito l’ordine di mese e anno, portandolo nella forma che ci è più consona.
Ovviamente le opzioni viste sopra si possono applicare anche ad un eventuale campo “updated_at”, o a qualsiasi altro campo di tipo data.

2 Replies to “personalizzare i filtri nel backend”

  1. una curiosità!
    questa cosa l’avevo chiesta ieri sul developer forum di symfony e nessuno mi aveva risposto, allora mi sono andato a guardare a i sorgenti … e ho trovato la soluzione che ho postato successivamente sul forum… praticamente è quella che hai messo qui sopra.

    Tu l’hai letta li … oppure deriva da altro?
    …solo curiosità niente di piu!

    david.ino

Leave a Reply

Your email address will not be published. Required fields are marked *