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 :

FOSUser & SonataUser - Virer des champs


Sujet :

Symfony PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut FOSUser & SonataUser - Virer des champs
    J'utilise FOSUser avec SonataUser & SonataAdmin. J'ai aussi utilisé SonataEasyExtends pour créer app/Application/Sonata/UserBundle comme il est conseillé dans plusieurs tutos quand on veux étendre SonataUser.

    Je cherche simplement à virer des champs du formulaire d'admin des users, principalement les champs "Social" (facebook, twitter, ...)

    J'ai tenté d'overrider le formulaire en créant

    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
    #app/Application/Sonata/UserBundle/Admin/Model/UserAdmin.php
     
    namespace Application\Sonata\UserBundle\Admin\Model;
     
    use Sonata\UserBundle\Admin\Model\UserAdmin as UserAdmin;
     
    class MyUserAdmin extends UserAdmin
    {
        /**
         * {@inheritdoc}
         */
        protected function configureFormFields(FormMapper $formMapper)
        {
            $formMapper
                ->with('General')
                    ->add('username')
                    ->add('email')
                    ->add('plainPassword', 'text', array('required' => false))
                ->end()
                ->with('Groups')
                    ->add('groups', 'sonata_type_model', array('required' => false))
                ->end()
            ;
     
            if (!$this->getSubject()->hasRole('ROLE_SUPER_ADMIN')) {
                $formMapper->with('Management')
                    ->add('roles', 'sonata_security_roles', array(
                        'expanded' => true,
                        'multiple' => true,
                        'required' => false
                    ))
                    ->add('locked', null, array('required' => false))
                    ->add('expired', null, array('required' => false))
                    ->add('enabled', null, array('required' => false))
                    ->add('credentialsExpired', null, array('required' => false))
                ->end();
            }
     
            $formMapper
                ->with('Security')
                    ->add('token', null, array('required' => false))
                    ->add('twoStepVerificationCode', null, array('required' => false))
                ->end();
        }
    }
    Je pense que je dois déclarer un service et dire à Sonata de l'utiliser. Je ne sais pas comment faire. Est-ce que je suis au moins dans la bonne direction ?

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Avril 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2010
    Messages : 141
    Par défaut
    Pour retirer des champs, il me semble qu'il n'y a pas d'autres solutions que de redéfinir toi même la classe SonataUser... J'avais vu cela pour FOSUser mais c'est la même chose ici à priori.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3
    Par défaut
    Je n'ai pas forcément besoin d'enlever les champs de la base de donnée ni même du modèle (j'en aurais peut-être besoin plus tard) mais juste du formulaire.
    En fait la question est plutôt, comment overrider la fonction `configureShowFields()` de `Sonata\UserBundle\Admin\Model\UserAdmin`, dans laquelle je vais en effet certainement avoir à redéfinir les champs dont j'ai besoin.

  4. #4
    Invité de passage
    Femme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2012
    Messages : 1
    Par défaut
    Il suffit juste de spécifier ton nouveau UserAdmin dans ta config :
    https://github.com/sonata-project/So...min_orm.xml#L8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <parameter key="sonata.user.admin.user.class">Application\Sonata\UserBundle\Admin\Model\MyUserAdmin</parameter>

Discussions similaires

  1. [LG]Vision des champs d'un objet
    Par YéTeeh dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2003, 21h20
  2. [SQL] Compter des champs indépendement l'un de l'autre
    Par rippey dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 29/10/2003, 15h35
  3. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Taille des champs proportionnelle...
    Par Depteam1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/08/2002, 11h48

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