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

Plugins PHP Discussion :

Customization backend sfGuardUser


Sujet :

Plugins PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Customization backend sfGuardUser
    Bonjour à tous, j'ai une question au sujet de la customization du backend de sfGuardUser. J'ai intégré la description de sfGuardUser dans ma description de tables et y ait ajouter une relation avec une autre table. Je me retrouve donc avec un champ xxx_id que je peux ajouter à mon formulaire de création d'user mais cela n'est pas vraiment 'user friendly' et j'aimerai, à la place de renseigner l'xxx_id, avoir une liste déroulante (à la manière des permissions_lists) qui liste les xxx_name, ces derniers pouvant être ensuite associés à leur id.
    J'ai testé rapidement de modifier les fichiers du plugins et j'arrive à avoir cette liste déroulante mais pas encore à sauvegarder l'xxx_id lorsque je crée le nouveau user.
    J'aimerai donc savoir si il y avait un moyen de faire cela et surtout comment faire pour ne pas avoir à modifier les fichiers du plugins.

    Merci d'avance,

    Choucwoot

  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
    De ta description je n'arrive pas à savoir si ta liaison est 1-n ou n-n ?

    Si elle est 1-n, met la méthode configure modifiée du form.

    Si elle est n-n, met le schéma de ta base.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci de ta réponse, ma relation est 1-n ( en fait xxx désignait une entreprise dans mon précédent post et une entreprise peut avoir plusieurs utilisateurs).
    Quand tu parles de la méthode configure modifiée du form tu veux dire celle que j'ai utilisé pour avoir la liste déroulante d'entreprise ? J'avais juste fait le test en copiant exactement les fonctions utilisées pour la permission_list du form de sfGuardUser mais je n'ai pas gardé les modifs ne voulant pas changer le code du plugin.

  4. #4
    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 ce cas tu as utilisé la bonne méthode.

    Presque. Disons, la bonne méthode mais pas au bon endroit.

    Dans tes form (lib/form/...) tu vas retrouver celui de sfGuardUser, c'est là que tu pourras faire tes modifications.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    J'arrive à obtenir le résultat souhaité en modifiant lib/form/doctrine/sfDoctrineGuardPlugin/base/BasesfGuardUserForm mais pas en modifiant lib/form/doctrine/sfDoctrineGuardPlugin/sfGuardUserForm. En effet en utilisant la méthode configure de ce dernier je n'arrive pas à ajouter des widgets au form. J'ai également essayé de créer une méthode setup dans la classe sfGuardUserForm mais cela ne marche toujours pas. Avez-vous des idées pour obtenir le même résultat sans toucher à la classe Base ?

  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
    Tu modifies quoi dans : BasesfGuardUserForm ?
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
      public function setup()
      {
        $this->setWidgets(array(
         ...
          'companies_list' => new sfWidgetFormDoctrineChoice(array('multiple' => false, 'model' => 'Company')),
         ...
        ));
     
        $this->setValidators(array(
         ...
          'companies_list'      => new sfValidatorDoctrineChoice(array('multiple' => false, 'model' => 'Company', 'required' => true)),
         ...
        ));
     
      public function updateDefaultsFromObject()
      {
        parent::updateDefaultsFromObject();
        ...
        if (isset($this->widgetSchema['companies_list']))
        {
          $this->setDefault('companies_list', $this->object->getCompanyId());
        }
        ...
      }
     
      protected function doSave($con = null)
      {
        ...
        $this->saveCompaniesList($con);
        ...
        parent::doSave($con);
      }
     
      public function saveCompaniesList($con = null)
      {
        if (!$this->isValid())
        {
          throw $this->getErrorSchema();
        }
     
        if (!isset($this->widgetSchema['companies_list']))
        {
          // somebody has unset this widget
          return;
        }
     
        if (null === $con)
        {
          $con = $this->getConnection();
        }
     
        $this->object->setCompanyId($this->getValue('companies_list'));
     
      }

  8. #8
    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
    Modifies dans config et utilises setWidget() (sans le s).

    Et pense à faire un appel à la méthode parent.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    La classe lib/form/doctrine/sfDoctrineGuardPlugin/sfGuardUserForm ne semble pas être la bonne classe à modifier. J'ai essayé d'effectuer les changements dans cette classe et ça ne fonctionne toujours pas. D'ailleurs cette classe ne semble pas être utilisée pour afficher le formulaire de création d'user puisque quand je mets un die() à l'intérieur de celle-ci ça n'a aucun effet. Par contre la classe plugins/sfDoctrineGuardPlugin/lib/form/doctrine/sfGuardUserAdminForm est appelée, je lui ai donc ajoutée les widget avec la fonction setWidget et ça a fonctionné.
    Je me demande donc à quoi sert cette classe sfGuardUserForm et où je pourrai effectuer les changements, hors classes du plugin, pour qu'ils soient appliqués dans le formulaire de création d'user ?

Discussions similaires

  1. Custom Event Set
    Par toure32 dans le forum JBuilder
    Réponses: 1
    Dernier message: 26/08/2005, 12h03
  2. Insertion d'un Custom Control: CMyListBox
    Par Neo41 dans le forum MFC
    Réponses: 6
    Dernier message: 21/06/2005, 15h26
  3. [JSF] mon premier custom component
    Par anitshka dans le forum JSF
    Réponses: 5
    Dernier message: 14/06/2005, 13h31
  4. [C#] Custom Control : Recuperer valeur formulaire
    Par victorbru dans le forum ASP.NET
    Réponses: 22
    Dernier message: 21/04/2005, 09h02
  5. [C#] Custom Control et message de confirmation
    Par lancelot69 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/12/2004, 15h04

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