Symfony Admin generator: Transformer un filtre en multi filtre
Petit retour à un billet un peu plus technique le temps de préparer la suite sur twitter. Si il y a bien une chose dont on ne plus se passer une fois qu’on y a goûté dans symfony, c’est bien l’admin generator. Surtout que la doc couvre déjà pas mal de possibilités, mais avec un peu d’imagination on peut vraiment en faire ce qu’on veut.
Et ca tombe bien, parce que niveau idées tordues, nos chefs de projets ou clients sont rarement les derniers, vous serez d’accord avec moi ;)
Lors d’une présentation d’un back office récemment, on m’a demandé s’il était possible de choisir plusieurs valeurs lors du filtrage (en l’occurence des marques de produits). « Certainement » fut ma réponse, même si j’en avais aucune idée. J’ai donc jeté un coup d’oeil sur cette histoire et c’était finalement l’histoire de 2min.
Par défaut, on avait donc:

Sachant que les valeurs de ce filtre allait être limitée, une dizaine à tout casser, j’ai choisi de transformer le widget en liste de checkbox. Je me suis rendu dans lib/filter/ProduitsFormFilter.class.php et j’ai simplement rajouter:
public function configure() { // mid étant la clé étrangère du produit vers la marque $this->widgetSchema['mid'] = new sfWidgetFormPropelChoice(array( 'model' => 'Marques', 'multiple' => true, 'expanded' => true, )); $this->validatorSchema['mid'] = new sfValidatorPropelChoiceMany(array('required' => false, 'model' => 'Marques', 'column' => 'mid')); }
En l’occurence, j’ai simplement changé de widget, l’admin generator fait finalement le reste car par défaut la fonction de filtrage est capable de gérer une ou plusieurs valeurs! C’est quand même bien pensé tout ça. Et on obtient donc:

Rien de plus, rien de moins, une modification qui montre à quel point le système de formulaire de symfony croisé à l’admin generator facilite vraiment les choses.
Tags: admin, form, PHP, Symfony
2 Réponses
Laisser un message

Bonjour
Pas mal cette astuce.
A propos de l’admin generator j’aurais un e question. Je suis moi meme en train de développer un site sur symfony et je me demandais ou je pouvais trouver un thème pour mon backoffice.
Vous n’auriez pas une ptite idée par hasard, s’il ovus plait?
Merci
Hello,
A ma connaissance, il n’y a pas vraiment de thème qui traine, chacun le faisant à sa sauce.
Il y a juste une plugi qui transforme un admin generator en backoffice joomla:
http://www.symfony-project.org/plugins/sfAdminDashPlugin
Mais c’est une idée, il faut juste trouver qqn doué en graphisme et intéressé par Symfony :p