IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

modifier l'ordre des champs dans un module admin-generator


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut modifier l'ordre des champs dans un module admin-generator
    bonjour a tous,

    voila toujours sous les modules générer par admin-generator

    Aujourd'hui dans mon module j'ai une formulaire avec une autre (embedded form).

    Dans le fichier generator.yml j'ai pu modifier l'ordre des champs du formulaire principale mais le problème est dans l'ordre des champs du formulaire imbriqué (embedded)

    Vraiment j'ai cherché beaucoup dans le cache ainsi que dans generator.yml mais pas de solution.

    alors qui connait ce genre des trucs ?

    Merci

  2. #2
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Ne t'occupe pas du génerator.yml.

    Modifie l'ordre dans le form imbriqué...

  3. #3
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Est-ce que tu as créés un module pour ce formulaire embriqué ? Si oui, si tu changes l'ordre des champs à partir du generator.yml ils le seront dans les deux cas.

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    oui , j'ai un module , et j'ai modifier le generator.yml mais ça change l'ordre des champs du formulaires principales (main) mais pas l'embeded form

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Je te propose une solution. Créé un nouveau formulaire appellé XXXEmbedForm.class.php et qui étendra ton formulaire imbriqué.

    Dedans tu ajoutes la méthode configure et tu peux faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public function configure(){
     
            parent::configure();
     
            $this->widgetSchema->moveField('telephone', 'after', 'intitule');
            $this->widgetSchema->moveField('adresse', 'after', 'telephone');
     
            // etc...
     
     
        }
    Ensuite quand tu fais ton embedForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $new = new XXXEmbedForm();
          $this->embedForm('new',  $new);
    Tu vois le principe ?
    Sinon il y a le plugin ahDoctrineEasyEmbeddedRelations pour se simplifier la vie avec les embedform

  6. #6
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Dans un cas pareil, et sauf très forte relation avec le formulaire développé (par opposition au formulaire de base) je pense qu'il vaut mieux partir du formulaire de base.

    Un exemple ? Un objet Client.
    Le formulaire de base est :
    lib/form/doctrine/base/BaseClientForm.class.php

    Le formulaire développé est :
    lib/form/doctrine/ClientForm.class.php

    Pour le formulaire spécifique je recommanderais plutôt :
    lib/form/doctrine/embedClientForm.class.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    class embedClientForm extand BaseClientForm
    ...
    Ceci permet d'avoir toute latitude de modifier les différents formulaires sans risquer d'altérer l'un par la modification de l'autre.

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    bonjour , le problème c'est que je voudrais modifier l'ordre de champs de façon d'avoir un champs du main_form puis un champs de l'embeded_form puis un autre de main_form

    donc y a pas un ordre main_form puis embeded_form
    je voudrais mélanger les champs des deux form

    je sais que très difficile , mais j'ai besoin de ce truc


  8. #8
    Membre actif

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2008
    Messages : 186
    Points : 234
    Points
    234
    Par défaut
    Pour ce que tu proposes Mimi68 je ne suis pas totalement de ton avis, pour la raison que si dans mon formulaire j'ai redéfini par exemple des widget, mettre un textArea, ou un champs date tournant sous JQuery, je n'aurai pas à modifier à deux endroits différents si je décide que mon textArea devienne plutôt widget TyniMCE.

    Sinon Fedora40, je ne sais pas si c'est possible, peut être mais long, car il y a bien le mergeForm qui pourrait faire ce que tu veux, mais la sauvegarde échouerait car il ne gère pas l'imbrication de formulaires. Il faudrait redéfinir une méthode avant la sauvegarde j'imagine.

    On peut savoir ce que tu veux en faire au juste ?

  9. #9
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    @skipe2 : tu as raison, c'est l'exception dont je parlais. Quoique, dans un pareil cas, je ferais (j'ai fais) 3 formulaires. Un parents avec les modifications a prendre dans le embed et le direct et deux autres form, un pour le embed et un pour le direct. Ainsi, les modifications du direct n'impacte pas l'embed et vis versa. Et les modifications générales sont bien prises en compte dans les deux form.


    Tu peux, dans ton template, adresse chaque champs les uns après les autres et entièrement être maître de l'affichage. Cela marche très bien, sauf ... pour les modules admins. Quoique... Si tu redéfinis dans ton module un template, par défaut créé et défini dans le cache, c'est le fichier que tu as redéfini qui va être pris en compte. Tu peux donc réécrire le template et prendre celui-là en compte. Par contre, tu vas perdre une grande partie de la souplesse du générateur et toutes modification du generator.yml entrainera une modification manuel du template... On est loin de la souplesse. Il est peut-être plus simple, alors, de générer l'admin qui ressemble le plus à ce que tu veux, d'en récupérer le code dans le cache et de l'utiliser comme un module normal.

Discussions similaires

  1. Modifier l'ordre des champs dans un formulaire
    Par Jeannot45 dans le forum Word
    Réponses: 3
    Dernier message: 19/06/2008, 13h23
  2. ordre des champs dans une table
    Par antartica dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 13/02/2007, 15h25
  3. [Débutant]Ordre des champs dans une table
    Par goony dans le forum Débuter
    Réponses: 4
    Dernier message: 16/02/2006, 12h05
  4. Modifier l'ordre des objets dans dans une liste
    Par Mac_Gyver dans le forum Access
    Réponses: 2
    Dernier message: 24/01/2005, 11h55
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo