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 :

Affichage form différent entre generator et "normal" [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Par défaut Affichage form différent entre generator et "normal"
    Bonjour,

    Je me suis rendu compte d'un truc bizarre...
    Si j'appelle un form dans un module, il s'affiche différemment que si je l'appelle avec un module générer par l'admin generator...
    Dans mon module je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class testformActions extends sfActions
    {
     /**
      * Executes index action
      *
      * @param sfRequest $request A request object
      */
      public function executeIndex(sfWebRequest $request)
      {
          $this->form = new sfGuardUserAdminForm();
      }
    }
    ca donne :
    [URL=http://img202.imageshack.us/i/pressepapiers2.jpg/]

    Et dans le generator.yml je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    generator:
      class: sfPropelGenerator
      param:
        model_class:           sfGuardUser
        theme:                 admin
        non_verbose_templates: true
        with_show:             false
        singular:              sfGuardUser
        plural:                sfGuardUsers
        route_prefix:          sf_guard_user_sfGuardUser
        with_propel_route:     1
        actions_base_class:    sfActions
     
        config:
          actions: ~
          fields:  ~
          list:    ~
          filter:  ~
          form:    
            class: sfGuardUserAdminForm
          edit:    ~
          new:     ~
    ca donne :
    [URL=http://img842.imageshack.us/i/pressepapiers1.jpg/]

    Une idée ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    De manière générale, cela ne me choque pas :
    - l'admin generator utilise sa propre panoplie de templates, peut-être même de css, du coup l'affichage diffère logiquement (notamment : gestion des fieldset comme "Permissions and groups").

    Par contre, tu as des champs en plus dans le formulaire sans admin-generator (tickets, name, firstname, etc.), c'est normal ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Par défaut
    En fait ce n'était pas l'affichage qui me gênait, car comme tu le dis, l'admin generator utilise ses propre template et autre...
    Non ce qui me gêne c'est justement que je n'ai pas les mêmes champs dans les 2 cas...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    J'avoue ne jamais avoir testé cette méthode :
    - générer dans un admin-generator de la classe "x" un formulaire pour l'objet "y".

    Mais visiblement cela vient de là :
    - tu as fait de l'admin generator sur ton model sfGuardUser ;
    - tu lui demandes d'afficher le formulaire sfGuardUserAdminForm dedans.

    Apparemment il merge les deux. Reste à savoir si c'est le comportement normal et pourquoi.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Par défaut
    Merci !!!
    En fait tu m'as mis sur la piste en me parlant de sfGuardUser et sfGuardUserAdminForm ...
    Dans le genrator.yml on appelle spécifiquement le form sfGuardUserAdminForm qui n'existe pas dans mon appli, mais qui existe dans le plugin sfGuardUser
    Et quand je regarde dedans, je vois qu'il utilise le form sfGuardUserForm (du plugin aussi car il n'existe pas dans le form de mon appli)
    Et quand j'ouvre le sfGuardUserForm du plugin, je vois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class sfGuardUserForm extends sfGuardUserAdminForm
    {
      public function configure()
      {
        parent::configure();
     
        unset(
          $this['last_login'],
          $this['created_at'],
          $this['salt'],
          $this['algorithm'],
          $this['is_active'],
          $this['is_super_admin'],
          $this['sf_guard_user_group_list'],
          $this['sf_guard_user_permission_list']
        );
      }
    }
    Donc je me dis, je recrée un form dans le lib/ de mon appli, que je défini ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class sfGuardUserForm extends sfGuardUserAdminForm
    {
      public function configure()
      {
        parent::configure();
      }
    }
    Et du coup il ne prend plus celui du plugin mais celui de mon appli où tous les champs sont visibles...
    Et donc ca marche !!!

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 396
    Par défaut
    Oh attends !!
    Tu veux dire que le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class sfGuardUserForm extends sfGuardUserAdminForm
    {
      public function configure()
      {
        parent::configure();
      }
    }
    tu l'as définis dans ton projet à toi ??

    Si c'est le cas, c'est assez dangereux d'un point de vue capacité à bugger : il faut absolument que tu donnes à tes classes des noms différents de ceux qu'il y a dans Symfony ou tes plugins, sinon tu vas vite te faire des cheveux blancs à ne jamais être certain de savoir quelle classe (celle que tu as écrite ? Celle du plugin ?) va être réellement appelée.

    Si ce n'est pas le cas, il y a quelque chose que je n'ai pas compris, car :
    - c'est sfGuardUserAdmin qui étend de sfGuardUser, et non l'inverse.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise en forme différente entre .doc et .pdf
    Par damdam37 dans le forum Word
    Réponses: 7
    Dernier message: 31/01/2013, 20h31
  2. submit form différent entre IE et FF
    Par zozizozu dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2010, 13h04
  3. affichage listes différents entre IE et FF aka THE Problem
    Par trotters213 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 31
    Dernier message: 25/09/2006, 11h21

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