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 :

Sample FosUser personnalisé [2.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut Sample FosUser personnalisé
    Bonjour à tous,

    Débutant en symfony2 et FosUser je réalise un site pour lequel j'ai besoin d'utiliser des formulaires bien personnalisé et ce aussi bien dans la structure que dans le visuel.

    Pour ce qui est de la structure, c'est fait, j'ai rajouté mes champs sans réel problème.

    Mais maintenant que je dois en gérer l'affichage, je ne comprends pas comment intégrer proprement mes formulaires à l’intérieur de mes autres pages. (D'autant plus que je désire les afficher sous forme de modal et je ne peux donc pas simplement personnaliser la page du formulaire.)

    C'est pourquoi j'aimerais savoir si vous auriez un sample d'utilisation personnalisée de FosUser? Car bien qu'ayant cherché, je n'ai rien trouvé de concluant.

    Merci à vous,
    Kevin

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Pour mettre le formulaire dans toutes les pages, il suffit de l'ajouter au fond de page, dans un DIV pour le placer facilement.

    Pour afficher différemment selon que l'utilisateur est connecté ou pas, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {% if app.user %}
    <p>{{app.user}} <a href="{{path('fos_user_security_logout')}}">Déconnexion</a></p>
     
    {% else %}
    <form id="connexion" action="{{ path('fos_user_security_check') }}" method="post">
        <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
        Identifiant ENT : <input type="text" id="username" name="_username" />
        <br />
        Mot de passe : <input type="password" id="password" name="_password" />
        <br />
        <input type="submit" id="_submit" name="_submit" value="Connexion" />
    </form>
    {% endif %}

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    J'avais déjà tenté cette technique. Voici ce que j'ai fait:

    UserBundle/Ressource/Views/Security/login.html.twig
    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
     
    {% extends "FOSUserBundle::layout.html.twig" %}
     
    {% trans_default_domain 'FOSUserBundle' %}
     
    {% block fos_user_content %}
    {% if error %}
        <div>{{ error|trans }}</div>
    {% endif %}
     
    <form action="{{ path("fos_user_security_check") }}" method="post">
            <ul>
                    <li><label for="username">Nom d'utilisateur</label></li>
                    <li class="error"><input type="text" id="username" name="username" value="{{ last_username }}" required="required" placeholder="Ex. : johndoe@mail.com" /></li>
                    <li class="second"><label for="password">Mot de passe</label></li>
                    <li><input type="password" id="password" name="password" required="required" placeholder="Votre mot de passe" /></li>
                    <div class="forgotten-password">
                            <a href="#">
                                    <div class="bubble">
                                            <div class="bubble-left"></div>
                                            <div class="bubble-middle">
                                                    <form method="post" action="">
                                                            <p>Mot de passe oublié?</p>
                                                            <input type="text" name="email" placeholder="Insérez votre adresse eMail"/>
                                                            <input type="submit" name="submit" value="Ok"/>
                                                    </form>
                                            </div><!--end:bubble-middle-->
                                            <div class="bubble-right"></div>
                                    </div><!--end:bubble-->
                            </a>
                    </div><!--end:forgotten-password-->
                    <li class="remember-me">
                        <input type="checkbox" id="remember-me" name="remember-me" value="Se souvenir de moi" />
                        <label for="remember_me">Se souvenir de moi</label>
                    </li>
                    <li class="connect"><input type="submit" id="_submit" name="submit" value="Je me connecte" /></li>
            </ul>
            <input type="hidden" name="_csrf_token" value="{{ csrf_token }}" />
    </form>
    {% endblock fos_user_content %}
    Et dans mon fichier qui affiche le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% render "KevinrolinbeUserBundle:Default:Login" %}
    Le code du controller:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public function LoginAction()
        {
            $csrfToken = $this->container->get('form.csrf_provider')->generateCsrfToken('authenticate');
     
            return $this->container->get('templating')->renderResponse('KevinrolinbeUserBundle:Security:login.html.twig', array(
                'last_username' => null,
                'error'         => null,
                'csrf_token'    => $csrfToken
            ));
        }
    Mon formulaire s'affiche mais il m'affiche ceci:
    Invalid CSRF token.
    Une petite idée?

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Selon la doc de Symfony 2.3 http://symfony.com/fr/doc/current/bo...eurs-imbriques (3ème code source)
    il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% render(controller('KevinrolinbeUserBundle:Default:Login')) %}

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Malheureusement, cela n'arrange rien, bien au contraire:
    The function "controller" does not exist in ... at line 11

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    La réponse précédente était pou une version 2.3 de Symfony.

    Est-ce que l'appel direct à l'action Login donne quelque chose ?

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Citation Envoyé par okapi63 Voir le message
    La réponse précédente était pou une version 2.3 de Symfony.
    J'ai donc revérifier l’existence de cette méthode en 2.1 (j'avais vérifier mais j'avais regardé pour la 2.2 :/) et en effet, elle n'existe pas.

    la méthode a utiliser est bien celle que j'utilisais précédemment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% render "KevinrolinbeUserBundle:Default:Login" %}
    Mais malheureusement, elle me ressort une erreur...

    Cette méthode étant appelée depuis un autre bundle, celà pourrais poser problème?

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Juillet 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Mais malheureusement, elle me ressort une erreur...
    Quelle erreur ?
    Cette méthode étant appelée depuis un autre bundle, celà pourrais poser problème?
    A priori, non

    Que donne l'appel direct à l'action KevinrolinbeUserBundle: Default:Login ? http://site/app_dev.php/route_vers_l_action

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    A force de chercher, j'ai finalement trouver l'erreur...

    Dans la structure de mon formulaire, j'ai fait une erreur de débutant, j'ai intégré le formulaire de perte de mot de passe dans le formulaire de login... Grossière erreur je te l'accorde.

    Cependant maintenant j'ai une nouvelle erreur...

    Bad credentials
    Aucun moyen de me connecter !

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Hé bien je vais finalement me repondre a moi même.

    Il suffisait de décommenter la ligne suivante en y ajoutant la langue:
    app/ressources/config/config.yml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    translator: { fallback: fr }
    Mais décidément, la chance n'est pas avec moi car malgré le fait que se problème soit corrigé, un problème étrange vient d’apparaître.

    Impossible de me connecter !

    J'ai tenté différentes choses: j'ai créer de nouveau compte, j'ai bien vérifier si les comptes étaient activés, j'ai régénérer de nouveau mot de passe mais impossible de s'y connecter...
    A chaque fois il me ressort:
    Nom d'utilisateur ou mot de passe incorrect
    Une idée?

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2012
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Hé bien comme me l'a dit un ami: "T'as vérifier le nom de tes champs?"

    En effet, j'avais mal nommé les champs.

    Le nom correcte est _username et non pas username !

    Mon problème est cette fois totalement résolu !

    Merci à vous !

    Kevin

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

Discussions similaires

  1. [VB.NET] Contrôle personnalisé dans une dll personnalisée
    Par c3b12 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/10/2004, 07h56
  2. [VB.NET] Evenement par défaut sur controle personnalisé
    Par anthony70 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 31/08/2004, 16h19
  3. [CR]Help numero page personnalisé
    Par juelo dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 09/01/2004, 16h59
  4. XML sample can't be loaded...
    Par coca dans le forum XMLRAD
    Réponses: 2
    Dernier message: 03/11/2003, 12h11
  5. Réponses: 9
    Dernier message: 14/10/2003, 15h35

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