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 :

[Twig] Problème avec extends [2.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut [Twig] Problème avec extends
    Bonjour,

    Je suis face à un problème très embêtant. J'ai un fichier news.html.twig qui extends base.html.twig.

    J'aimerais définir des variables pour base.html.twig (par exemple un l'id du joueur courant). Hors les données que je passe à news.html.twig ne sont pas remontées vers base.html.twig, du coup je suis dans l'incapacité d'utiliser des variables dans base.html.twig.

    Comment puis-je faire?

    Merci d'avance,
    Cordialement, Max

    PS : merci d'éviter les réponses du style {% set ... %}, les variables doivent être dynamiques et provenir de php.

  2. #2
    Membre expérimenté

    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
    Par défaut
    Que veux tu faire de ces variables ? Juste les afficher à un endroit précis ?

    Tu peux utiliser les block pour ça, un block joueur dans ton base.html.twig par exemple, et depuis news.html.twig tu ouvres le block et tu modifies ce que tu veux dedans.

    Sinon montres ton code qu'on comprenne ce que tu souhaites faire

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Par défaut
    Citation Envoyé par max13fr Voir le message
    PS : merci d'éviter les réponses du style {% set ... %}, les variables doivent être dynamiques et provenir de php.
    On a le droit à des réponses du style : {% block tavariable %} {% endblock %} ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    Bonjour,

    J'aimerais par exemple savoir dans le block base si le joueur est connecté ou pas, si oui qu'elle est son id, etc...
    L'utilité serait par exemple d'afficher un lien connexion ou déconnexion en haut pour toutes les pages. Le problème d'extends c'est qu'il faudrait l'ajouter dans toutes les sous pages du coup on perd complètement l’intérêt de l'extends en lui même .

    En gros j'aimerais passer des variables provenant d'un contrôleur à un template twig générique à toutes les pages.

    Merci d'avance,
    Cordialement, Max

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    Citation Envoyé par Guybrush113 Voir le message
    On a le droit à des réponses du style : {% block tavariable %} {% endblock %} ?
    Non ! C'est pas ce que je veux .

    Je blague Le prenez pas mal mon PS, c'est juste que je voulais éviter des réponses hors sujet

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 319
    Par défaut
    Salut,

    Inspire toi de FOSUB pour le connexion/deconnexion : https://github.com/FriendsOfSymfony/...yout.html.twig

    Pour le reste, est-ce que le tag render peut t'aider ? Je pense

  7. #7
    Membre expérimenté

    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
    Par défaut
    Avec SF2 tu peux savoir si un utilisateur est identifié via Twig en faisant ce test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {% if is_granted('ROLE_USER') %
    Cela implique que le rôle existe bien sûr.

    Au final tu peux avoir dans ton template principale quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {% if is_granted('ROLE_USER') %}
                <a href="{{ path('logout') }}">Quitter</a>
                {% else %}
                <a href="{{ path('login') }}">Connexion</a>
                {% endif %}
    Peut importe l'id de l'utilisateur, lorsqu'il s'est identifié via ton formulaire, il est passé du statut de visiteur anonyme à celui de ROLE_USER.

    A toi d’implanter les routes, regardes les aides sur le site de SF2 ou ici dans les tutos

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    Arf j'ai pris un mauvais exemple. J'aimerais par exemple afficher le nombre de connecter en haut de la page dans base.html.twig, il y a pas moyen?

    Une autre petite question : est-il possible de définir ses propres fonctions twig dans un controller par exemple? Ou à un autre endroit?

    Merci d'avance,
    Cordialement, Max

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    J'ai trouvé une partie de la solution : il faut utiliser les variables globales de twig. Pour cela il faut étendre twig comme expliqué ici : http://tcuvelier.developpez.com/tuto...eer-extension/

    Mais mon problème persiste car les variables définies ici ne proviennent pas du controleur . Quelqu'un aurait une solution?

    Merci d'avance,

    Max

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

Discussions similaires

  1. problème avec <extend> & <include>
    Par kmb46 dans le forum Cas d'utilisation
    Réponses: 4
    Dernier message: 28/05/2015, 11h43
  2. [2.x] Probléme avec un opérateur de comparasion dans Twig
    Par bilbi dans le forum Symfony
    Réponses: 5
    Dernier message: 22/06/2012, 11h08
  3. Problème avec Extended Kalman Filter (EKF)
    Par kronanberg dans le forum Signal
    Réponses: 4
    Dernier message: 26/07/2011, 09h12
  4. [POO] Problème avec extends + implements ?
    Par Alp dans le forum Langage
    Réponses: 1
    Dernier message: 04/07/2008, 20h42

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