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 :

Mettre un titre à une page [1.x]


Sujet :

Symfony PHP

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 669
    Points : 188 661
    Points
    188 661
    Par défaut Mettre un titre à une page


    Toujours débutant avec symfony, je me demandais comment mettre un titre à une page.

    J'ai déjà trouvé deux solutions :
    - Passer par le fichier de configuration view.yml : bof, on définit le titre d'une page à des milliards de lieues des action et template de la page ; quid de la traduction du titre ?
    - Passer par un slot dans le layout principal de l'application (<title><?php include_slot('title'); ?></title>) : maintenant, il faut définir ce slot title ; l'idéal serait dans l'action, il n'y a que là que je peux le définir mais comment le définir ? Je n'ai trouvé de méthode pour mettre des slots que dans le template et définir une variable de titre dans l'action pour la mettre en slot dans le template .

    Auriez-vous donc une meilleure solution que ceci ?

    d'avance !

  2. #2
    Membre actif

    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
    Points : 234
    Points
    234
    Par défaut
    Salut,

    Dans ton template principale layout.php, tu peux mettre cette balise après le <head>.
    Elle va inclure par défaut un slot identifié par title, et de valeur de défaut 'Coucou' !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // apps/frontend/templates/layout.php
    <title><?php include_slot('title', 'Coucou') ?></title>
    Ensuite dans ton module, dans ton actions.class.php, dans la méthode executeIndex tu peux par exemple avoir un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->variable = 'Mon nouveau titre !'
    Et dans le template indexSuccess.php tu ajoutes la balise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php slot(
    'title', sprintf($variable))
    ?>
    Si tu veux en savoir plus il y a ce lien.

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 669
    Points : 188 661
    Points
    188 661
    Par défaut
    C'est une solution que j'avais envisagée mais elle ne me paraît pas propre du tout : définir une variable dans mon modèle à transmettre à ma vue qui se charge de la définir pour une autre partie de la vue ?! Ça ne me paraît pas des plus propres, c'est pour ça que je cherchais une autre solution. Apparemment, c'est comme ça qu'on fait. Donc .


  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
    Ce n'est pas apparemment "propre" mais c'est conforme aux couches MVC. Tu prépare des données dans le contrôleur et tu gères l'affichage dans le template.

    Et vu que le titre doit figurer tout en haut dans le schéma html et que ton template va débuter après, tu n'as pas le choix des moyens.

    C'est la méthode préconisée par symfony.


    Il reste la possibilité de définir le titre dans le contrôleur et de l'afficher directement, mais c'est moins souple que cette solution.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/10/2013, 09h27
  2. Mettre un titre à une fenêtre en GTK
    Par sasssah dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 22/06/2010, 11h03
  3. [OpenOffice][Tableur] Mettre en mémoire une page html
    Par junior76 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 25/02/2010, 13h58
  4. Mettre un titre à une dataTable
    Par mymyma dans le forum JSF
    Réponses: 4
    Dernier message: 30/08/2006, 10h29
  5. mettre en ligne une page
    Par somatino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 27/03/2006, 10h01

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