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 :

Affichage du header et footer


Sujet :

Symfony PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2015
    Messages : 22
    Points : 18
    Points
    18
    Par défaut Affichage du header et footer
    Bonsoir,

    Dans ma homepage j'ai mon controller HomePage qui me permet de gère le contenu de header et footer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /**
    * @Route("/", name="homepage")
    * @Template(":frontend:index.html.twig")
    */
    public function indexAction()
    {
         $partner_manager = $this->get('partner_manager');
         $parts = $partner_manager->getPartners();
         $social_manager = $this->get('socialLink_manager');
         $socials = $social_manager->getSocials();
         return ['partners' => $parts, 'socials' => $socials];
    }
    le soucis est que dans les autres pages je dois faire un copier coller de ça dans chaque contrôleur. Y-a-t-il un autre moyen de faire plus simple ?

  2. #2
    Membre confirmé
    Avatar de vinmar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Service public

    Informations forums :
    Inscription : Août 2012
    Messages : 139
    Points : 516
    Points
    516
    Par défaut
    Si tu veux avoir un header et un footer sur toutes tes pages, avec du traitement avant, tu peux passer par une extension Twig.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # index.html.twig
    {% header() %}
     
    [Ton contenu]
     
    {% footer() %}
    En suite, tu crées tes fonctions header() et footer() comme une extension twig qui retournera le contenu de ton header et footer : http://symfony.com/doc/current/cookb...extension.html.

    Il faut que ton extension twig retourne un template : http://www.robinvdvleuten.nl/blog/re...wig-extension/
    Il faut que ton extension twig est accès aux services désirés (à donner dans la définition du service Twig).
    M. Lebowski : Avez-vous un emploi, monsieur ?
    Le Duc : Un emploi ?
    M. Lebowski : Ne me dites pas que vous cherchez un emploi dans cette tenue un jour de semaine ?
    Le Duc : Un jour de… Quel jour on est ?

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 45
    Points : 46
    Points
    46
    Par défaut
    Citation Envoyé par vinmar Voir le message
    ...
    Il faut que ton extension twig retourne un template : http://www.robinvdvleuten.nl/blog/re...wig-extension/
    ...
    hmmm, c'est pas très MVC tout ça...

    Mieux vaut utiliser le helper "controller" de symfony.

    Tu créés un contrôlleur pour générer ton en-tête et ton pied de page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class LayoutController extends Controller
    {
        public function headerAction(Request $request)
        {
            return $this->render('header.html.twig');
        }
     
        public function footerAction(Request $request)
        {
            return $this->render('footer.html.twig');
        }
    }
    et dans ton template :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!-- affiche l'en-tête -->
    {{ render(controller('AppBundle:Layout:header')) }}
     
    ton contenu
     
    <!-- affiche le pied de page -->
    {{ render(controller('AppBundle:Layout:footer')) }}

Discussions similaires

  1. [FLASH MX2004] Problème de décalage & d'affichage du header flash
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 11
    Dernier message: 08/06/2006, 12h05
  2. [FPDF] Méthodes header et footer
    Par dun73 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 17/03/2006, 10h00
  3. [Mail] Problème d'affichage d'HEADERS avec mail();
    Par JeanMi66 dans le forum Langage
    Réponses: 3
    Dernier message: 17/01/2006, 06h46
  4. [JTable] pas d'affichage du header
    Par I o dans le forum Composants
    Réponses: 2
    Dernier message: 27/04/2005, 13h42
  5. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31

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