{% 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 № 1Ich 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.