Récupérer le contenu d'un block d'une vue Twig
Bonjour,
Tout d'abord je tiens à préciser que je suis débutant dans le développement web, et du coup, encore plus sur Symfony2 :roll:
Je suis en train de me faire un portfolio qui contient plusieurs sections les unes en dessous des autres (à propos, compétences, expériences professionnelles, etc.), ainsi qu'une barre de navigation contenant les liens (anchor) vers ces sections.
Pour l'instant j'en suis la:
index.html.twig:
Code:
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
|
{% extends "::base.html.twig" %}
{% block title %}
PortFolio
{% endblock %}
{% block nav %}
{% if sections is defined %}
<ul class="nav masthead-nav">
{% for section in sections %}
<li>
<a href="#section_anchor">section_menuitem</a> <!-- C est ici que je bloque! -->
</li>
{% endfor %}
</ul>
{% endif %}
{% endblock %}
{% block body %}
{% if sections is defined %}
{% for section in sections %}
{% include section %}
{% endfor %}
{% else %}
<h4>Aucun contenu pour le moment.</h4>
{% endif %}
{% endblock %} |
section.html.twig:
Code:
1 2 3 4 5
|
<a name="{% block section_anchor %}{% endblock %}">
<h2>{% block section_title %}{% endblock %}</h2>
</a>
{% block section_content %}{% endblock %} |
apropos.html.twig:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
{% extends "WebSitePortFolioBundle:Default:section.html.twig" %}
{% block section_menuitem %}
A Propos
{% endblock %}
{% block section_anchor %}
a_propos
{% endblock %}
{% block section_title %}
A Propos de Moi
{% endblock %}
{% block section_content %}
Du contenu..
{% endblock %} |
competences.html.twig:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
{% extends "WebSitePortFolioBundle:Default:section.html.twig" %}
{% block section_menuitem %}
Compétences
{% endblock %}
{% block section_anchor %}
competences
{% endblock %}
{% block section_title %}
Mes Compétences
{% endblock %}
{% block section_content %}
Du contenu..
{% endblock %} |
et l'action de mon controller pour rendre la page:
Code:
1 2 3 4 5 6 7 8 9
|
public function indexAction() {
return $this->render('WebSitePortFolioBundle:Default:index.html.twig', array(
"sections" => array(
"WebSitePortFolioBundle:Sections:apropos.html.twig",
"WebSitePortFolioBundle:Sections:competences.html.twig"
))
);
} |
Comme vous pouvez le voir, j'envoie en paramètre, depuis mon controller vers mon template index.html.twig, une liste de template à include. Dans chacun de ces templates, j'ai des blocks récurrents dont j'aimerais récupérer le contenu (section_menuitem, section_anchor) afin de m'en servir pour générer ma barre de navigation (toujours dans mon template index.html.twig). Mais je ne sais pas comment faire!
Merci de votre aide.
PS: J'aurais pu être plus concis dans la description de mon problème mais j'aimerais avoir, si possible, des retours sur la manière dont je m'y suis pris..