/ / Symfony2 Klasse hinzufügen, die im Menü aktiv ist - PHP, Klasse, Symfony, Zweig

Symfony2 Klasse im Menü aktiv hinzufügen - PHP, Klasse, Symfony, Zweig

{% for node in menu.nodes %}
<li><a href="{{ page_url(node,node.defaultParams) }}">{{ node.title }}</a></li>
{% endfor %}

Gibt es eine einfache Möglichkeit, eine Klasse = "aktiv" für den aktuellen Knoten hinzuzufügen? Vielen Dank.

Antworten:

2 für die Antwort № 1

Ich neige dazu, es mit einem Makro zu lösen. Es funktioniert so (ungetesteter Code, der hier direkt eingegeben wird):

{% macro menuitem(route, params, text) %}
{% set _url = path(route, params) %}
<li{% if _url == app.request.requesturi %} class="current"{% endif %}>
<a href="{{ _url }}">{{ text }}</a>
</li>
{% endmacro %}

Diese Methode fügt die aktuelle Klasse hinzu, wenn die Route, die Sie gerade generieren, die vom Benutzer angeforderte ist.

Zur einfacheren Verwendung importieren Sie es: {% from _self import menuitem %}

Verwendung: {{ menuitem("blogpost", { "id": 1 }, "my first blogpost") }}

Beachten Sie auch, dass ich silex verwende, über das auf die aktuelle Anfrage zugegriffen werden kann app.request, nicht sicher darüber im Full-Stack-Framework.