Création d'une page statique "A propos" - Symfony 2 partie 4

Tutorial Symfony 2 : Création d'une page statique "A propos".

Publié le 02/10/2013

3.1 Création de la route

sudo nano /var/www/symblog/src/Blogger/BlogBundle/Resources/config/routing.yml

Ajouter le règle de routage suivante :


BloggerBlogBundle_about:
    pattern:  /about
    defaults: { _controller: BloggerBlogBundle:Page:about }
    requirements:
        _method:  GET

3.2 - Ajout de l'action "aboutAction()" dans le controller Page

sudo nano /var/www/symblog/src/Blogger/BlogBundle/Controller/PageController.php

Ajouter la méthode suivante :


public function aboutAction()
{
    return $this->render('BloggerBlogBundle:Page:about.html.twig');
}

3.3 - Création de la vue associée

sudo nano /var/www/symblog/src/Blogger/BlogBundle/Resources/views/Page/about.html.twig

Ajouter le code html suivant :


{# src/Blogger/BlogBundle/Resources/views/Page/about.html.twig #}
{% extends 'BloggerBlogBundle::layout.html.twig' %}

{% block title %}About{% endblock%}

{% block body %}
    <header>
        <h1>About symblog</h1>
    </header>
    <article>
        <p>Donec imperdiet ante sed diam consequat et dictum erat faucibus. Aliquam sit
        amet vehicula leo. Morbi urna dui, tempor ac posuere et, rutrum at dui.
        Curabitur neque quam, ultricies ut imperdiet id, ornare varius arcu. Ut congue
        urna sit amet tellus malesuada nec elementum risus molestie. Donec gravida
        tellus sed tortor adipiscing fringilla. Donec nulla mauris, mollis egestas
        condimentum laoreet, lacinia vel lorem. Morbi vitae justo sit amet felis
        vehicula commodo a placerat lacus. Mauris at est elit, nec vehicula urna. Duis a
        lacus nisl. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices
        posuere cubilia Curae.</p>
    </article>
{% endblock %}

3.4 - Création de liens entre les pages

Nous allons créer un lien dans la navigation vers la page "A propos" :

sudo nano /var/www/symblog/app/Resources/views/base.html.twig

Modifier les balises de liens :


<!-- app/Resources/views/base.html.twig -->
{% block navigation %}
    <nav>
        <ul class="navigation">
            <li><a href="{{ path('BloggerBlogBundle_homepage') }}">Home</a></li>
            <li><a href="{{ path('BloggerBlogBundle_about') }}">About</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </nav>
{% endblock %}

Et un liens vers la home sur le logo du header, pour cela modifier le code comme suit dans le même fichier /app/Resources/views/base.html.twig :


<!-- app/Resources/views/base.html.twig -->
<hgroup>
    <h2>{% block blog_title %}<a href="{{ path('BloggerBlogBundle_homepage') }}">symblog</a>{% endblock %}</h2>
    <h3>{% block blog_tagline %}<a href="{{ path('BloggerBlogBundle_homepage') }}">creating a blog in Symfony2</a>{% endblock %}</h3>
</hgroup>