Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-05-2016 09:43:07

zigo
Membre
Date d'inscription: 24-02-2016
Messages: 20

[résolu]Formulaire générique et paramétrable

Bonjour à vous,

J'avais déjà posé des questions sur les formulaires mais là on me demande quelque chose qui me parait pas simple alors je viens voir ce que vous en pensez smile

Je suis sur un projet (en zend2) de solution qui vise à être entièrement (du moins le plus possible) paramétrable par les clients. Un peu en style SaaS mais vite fait quand même. Tous les clients sont du même secteurs et la solution reste la même.

Cependant les données qu'ils demandent dans les formulaires ne sont pas toujours les mêmes, disons qu'il y'a des champs présents ou non. Un va demander un forfait kilométrique, d'autres non par exemple.
On me demande de rendre ça paramétrable par client. On a un système d'affiliation qui permet de relier dans la base les collections entre elles (Mongo DB).

Mais là pour les formulaires je sais pas trop comment faire. On m'a dit de rentrer les informations du formulaire de client dans une collections avec un id d'affiliation. Voilà ce que ça donne :

Code:

 "formulaireWeb" : {
          "0" : { 
                 "name" : "categories", 
                 "type" : "multi_checkbox", 
                 "attributes" : { 
                                     "id" : "categories", 
                                     "required" : true, 
                                     "value" : "getCategoriesOptions" 
                 }, 
                 "options" : { 
                                     "label" : "Type de véhicule", 
                                     "value_options" : "getCategoriesOptions", 
                                     "label_options" : { 
                                                              "disable_html_escape" : true
                                     }, 
                                     "help-block" : "Vous pouvez sélectionner plusieurs types", 
                                     "button-checkbox" : true 
               }
       }, 
         "1" : { 
                 "name" : "autonomies", 
                 "type" : "radio", 
                 "attributes" : { 
                                      "id" : "autonomies", 
                                      "required" : true,
                                      "value" : "getAutonomiesOptions" 
                  }, 
                 "options" : { 
                                      "label" : "Forfait kilométrique", 
                                      "value_options" : "getAutonomiesOptions", 
                                      "button-radio" : true 
                                   } 
                  } 
       }, 
}

Globalement ça fonctionne même si ça fait stocker du code en base. Y'a le problème que les value sont récupérer en appel de WebService et ça je peux pas le stocker.
Je fais un foreach dans mon formulaire et selon l'affiliation de l'utilisateur, le bon formulaire est là.

Maintenant les input filter... Je pensais faire la même mais quand y'a un callback qui contient une fonction, ça fonctionne pas. Et je sais pas comment faire.

On m'a proposé de faire une factory mais j'ai du mal a voir ce que ça apporte ou comment la réaliser

Est-ce que vous avez des idées sur comment réaliser ça ? la méthode que j'ai commencé n'est pas terrible alors si vous voyez autres choses. Et comment faire pour les input filter.

J'espère avoir été assez clair hmm
Merci d'avance !

Je n'avais pas précisé, j'ai pour le moment 4 champs concerné.

Dernière modification par zigo (10-08-2016 17:31:30)

Hors ligne

 

#2 04-05-2016 10:05:28

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 420

Re: [résolu]Formulaire générique et paramétrable

Bonjour,

Les formulaire spécifiques par client, généralement si tu veux faire ça propre faut construire une archi autour pour le gérer. Ta solution d'un formulaire en base est une solution. A savoir si elle est propre ce sera a vous de le juger au fur et a mesure du temps.

Pour ton problème des input filter, la notion de callback dérange, parcequ'un callback au niveau des validator te fait péter la mise en cache de la config. Il vaut mieux que tu remplace les callback par des objet qui etendent abstract Validator. (et donc implémentent la méthode isValid)

De la en base tu pourrait stocker en lieu et place de ton callback qui ne marche pas, ton FQCN de ta classe de validation. Et là tu devrait régler ton problème puisque c'est une chaine et non du code.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 04-05-2016 10:35:26

zigo
Membre
Date d'inscription: 24-02-2016
Messages: 20

Re: [résolu]Formulaire générique et paramétrable

Ok, merci je vais regarder ça, par contre je me pose une question.
Dans mon callback, je récupère le contexte.

Code:

'options' => [
                                'messages'  => [
                                    Callback::INVALID_VALUE => 'La date de départ ne peut être supérieure ou égale à la date d\'arrivée',
                                ],
                                'callback'  => function($value, $context = array()){
                                    $depart = \DateTime::createFromFormat('d/m/Y H:i', $context['date_depart'] . ' ' . $context['heure_depart']);
                                    $retour = \DateTime::createFromFormat('d/m/Y H:i', $context['date_retour'] . ' ' . $value);
                                    return ($retour > $depart);
                                }
                            ]

Si je crée un objet, comment je compare les valeurs envoyés avec d'autres input du formulaire ?

Hors ligne

 

#4 05-05-2016 18:25:56

JGreco
Modérateur
Date d'inscription: 22-12-2012
Messages: 420

Re: [résolu]Formulaire générique et paramétrable

Et bien c'est quand tu déclare un validator pour ton input, si c'es tun objet le contexte est automatique envoyé a ta méthod isValid en deuxième paramètre !


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#5 10-08-2016 17:30:47

zigo
Membre
Date d'inscription: 24-02-2016
Messages: 20

Re: [résolu]Formulaire générique et paramétrable

Je viens de retravailler sur ce sujet et en utilisant des validator custom avec le FQCN dans mon filtre, ça fonctionne donc je vais rester sur cette solution pour le moment !
Merci pour ton aide, je tag le topic en résolu.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages