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 :

Probleme sur les template hérités et les blocks. [2.x]


Sujet :

Symfony PHP

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut Probleme sur les template hérités et les blocks.
    Bonjour,

    J'ai écrit une application dont une route peut-être accessible en étant anonyme.
    Le problème ce situe sur le twig de rendue puisque l'action PHP est bien executée. Si j'appelle cette route en étant connecté ça marche, mais si je l'appelle en anonyme ça ne marche pas, il ne rentre pas dans mes blocs de mon twig.
    Voici mon 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    // monrendu.html.twig
    {% extends "::TitleLayout.html.twig" %}
     
    {% block body %}
        coucou
    {% endblock %}
     
     
    // TitleLayout.html.twig
    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     
            <title>{% block title %}APP{% endblock %}</title>
     
            {% block stylesheets %}
                <link rel="stylesheet" href="{{ asset('css/bootstrap.css') }}" type="text/css" />
            {% endblock %}
     
            {% block javascripts %}
                <script type="text/javascript" src="{{ asset('js/jquery-1.10.2.js') }}"></script>
                <script type="text/javascript" src="{{ asset('js/jquery-ui-1.10.4.custom.min.js') }}"></script>
                <script type="text/javascript" src="{{ asset('js/jquery.ui.draggable.js') }}"></script>
                <script type="text/javascript" src="{{ asset('js/jquery.ui.mouse.js') }}"></script>
                <script type="text/javascript" src="{{ asset('js/bootstrap.min.js') }}"></script>
                <script type="text/javascript" src="{{ asset('js/bootstrap-datepicker.js') }}"></script>
            {% endblock %}
        </head>
     
        <body>
     
        {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
            <br>    
            <div class="container">
                <div class="row">
                    <div class="pull-left">
                        <b>
                            {% include "::header.html.twig" %}
                        </b>
                    </div>
                    <div class="pull-right">
                        {% include "UserBundle::connexion.html.twig" %}
                    </div>
                </div>
                <div class="row" style="text-align: right; background-image: url({{ asset('images/top.jpg') }});">
                    &nbsp; 
                </div>
                <div class="row">
                    <div id="header" class="container-fluid">
                        <div class="pull-left">
                            <img src="{{ asset('images/logo.png') }}">
                            <img src="{{ asset('images/center.png') }}">
                            <!-- Insert page title here -->
                        </div>
     
                    </div>
                </div>
                <div class="row" style="text-align: right; background-color: #0075be;">
                    &nbsp; 
                </div>
                <div class="row">
                    {%  block menusite %}{% endblock %}
                </div>
                <div class="row">
                    <div id="content" class="container">
                        {% block body %}
                        {% endblock %}
                    </div>
                </div>
                {% include "UserBundle::footer.html.twig" %}
            </div>
        {% else %}
            {% if app.request.attributes.get('_route') == 'view_all_quickpolls' %}
    <br>    
    <div class="container">
        <div class="row">
            <div class="pull-left">
                <b>
                {% block header %}
                    Member site
                {% endblock %}
                </b>
            </div>
            <div class="pull-right">
            </div>
        </div>
        <div class="row" style="text-align: right; background-image: url({{ asset('images/top.jpg') }});">
            &nbsp; 
        </div>
        <div class="row">
            <div id="header" class="container-fluid">
                <div class="pull-left">
                    <img src="{{ asset('images/logo.png') }}">
                    <img src="{{ asset('images/center.png') }}">
                </div>
     
            </div>
        </div>
        <div class="row" style="text-align: right; background-color: #0075be;">
            &nbsp; 
        </div>
        <div class="row">
            {%  block menusite %}{% endblock %}
        </div>
        <div class="row">
            <div id="content" class="container">
                {% block body %}
                {% endblock %}
            </div>
        </div>
        {% include "TMTGIPUserBundle::footer.html.twig" %}
    </div>
            {% else %}
                {# not authenticated + route != quickpolls => this is the login page #}
                <br />
                <div class="row-fluid">
                    <div class="span2">
                        <!-- empty -->
                    </div>
                    <div class="span8" ALIGN="Center">
                       (...)
                    </div>
                </div>
            {% endif %}
        {% endif %}
     
        </body>
    </html>
    Mon souci est qu'en mode non connecté, lorsque que j'appelle monrendu.html.twig il étend bien mon TitleLayout.html.twig mais il ne redefinit pas mes blocks, du coup le "coucou" du block body je ne le voit pas.
    Pourquoi ?
    Merci de votre aide.
    Jérôme

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut
    J'ai trouvé !!
    En fait je définissait mon block dans un include et quand j'étends mon twig, les block dans les include ne sont pas importé.
    du coup faut que je réfléchisse autrement... ;-)
    Jérôme

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    en élaguant le code, je vois qu'il n'y a pas de bloc body dans le dernier bloc if/else

    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
     
        {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
     
                    <div id="content" class="container">
                        {% block body %}
                        {% endblock %}
                    </div>
        {% else %}
            {% if app.request.attributes.get('_route') == 'view_all_quickpolls' %}
                {% block body %}
                {% endblock %}
            {% else %}
                {# not authenticated + route != quickpolls => this is the login page #}
            {% endif %}
        {% endif %}
    EDIT: oups tu as résolu ça pendant que je cherchais

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 546
    Points : 219
    Points
    219
    Par défaut
    Citation Envoyé par gototog Voir le message
    EDIT: oups tu as résolu ça pendant que je cherchais
    Jérôme

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

Discussions similaires

  1. Lister les disques durs USB, les clés ainsi que les appareils photos
    Par infosam76 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 25/02/2015, 23h26
  2. Probleme sur les templates (un peu stupide)
    Par fastone dans le forum C++
    Réponses: 3
    Dernier message: 06/04/2009, 13h41
  3. [Templates] Erreur avec les templates
    Par tmanta7 dans le forum C++
    Réponses: 4
    Dernier message: 07/10/2008, 14h09
  4. [Templates] re-lancer les templates
    Par BainE dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 07/08/2006, 17h31
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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