2017-02-16 6 views
0

Ich muss Set Körper Klassen mit Twig root_path Variable hinzufügen. Welches für jeden Seitenstring 'Knoten' druckt.Twig increment Wert von Twig Variable für eine

Wie kann ich schreiben, if root_path == 'node' Wert für 1 inkrementieren, so dass 1 zu String-Knoten hinzugefügt wird. Und für jedes Seiteninkrement node_1, node_2, node_3 und so weiter.

Twig ist total neu für mich, und es tut mir auch leid, wenn ich jetzt unklar bin. Versucht dies, aber ich denke, es macht überhaupt keinen Sinn.

{% if root_path === 'node' %} 

{% set root_path = root_path + 1 %} 

{% endif %} 
+1

Wie bestimmen Sie eine neue Seite? Hast du irgendwo einen Twig for Loop? Können Sie den Code anzeigen, wenn dies der Fall ist? Es würde eine viel einfachere Antwort geben als die, die bereits gepostet wurde. –

Antwort

1

Ich weiß nicht genau, ob es eine Frage der Erhöhung der Anzahl der Variablen root_path innerhalb einer Seite. Wenn ja, dann müssen Sie es durch einige String-Operatoren machen. Hier ist eine Möglichkeit:

{% if root_path[0:4] == 'node' %} 
    {% set root_path = 'node_' ~ (root_path|split('_', 2)[1] + 1) %} 
    {% endif %} 

    <p>{{ root_path }}</p> // show node_1 

    {% if root_path[0:4] == 'node' %} 
    {% set root_path = 'node_' ~ (root_path|split('_', 2)[1] + 1) %} 
    {% endif %} 

    <p>{{ root_path }}</p> // show node_2 

Wenn Sie es über eine Seite zählen möchten, arbeiten Sie mit einem Zähler innerhalb der Sitzung.

Aber in jedem Fall, trennen Sie die Kombination aus der Zeichenfolge und dem Index und fügen Sie sie bei Bedarf zusammen.

<body id=”{{ ‘node_’ ~ counter }}”> 
+0

Danke Mann! Genau das möchte ich fast dort haben. '{% if root_path [0: 4] == 'node'%} {% set root_path = 'node_' ~ (root_path | split ('_', 2) [1] + 1)%} {% endif %} 'Aber als Ergebnis habe ich für jede Seite Pfad-Knoten-1-Klasse. Ich wollte jedes Mal, wenn es für eins erhöht wird, so hat jede Seite eindeutige Nummer page-node-2, page-node-3 und so weiter. – user2977046

+0

Ein Weg ist, die Sitzung in PHP http://stackoverflow.com/ Fragen/865015/how-to-increment-a-counter-jede-Seite-load-in-php – pwunderlich

+0

Danke für den Aufwand Mann, aber es löst nicht mein Problem. Sie müssen nur etwas hinzufügen, das für jede Seitenklasse neben node- .. – user2977046

0

Sie sollten ein bisschen Ihre Frage zum Beispiel klären, indem das zeigt, wie Sie Ihre Variable mit Seiten sieht und die erwartete Markup.

Wenn es Ihr Ziel ist, einen Baum von Links zu durchlaufen, um einen Index zu generieren, könnten Sie an einer von mir entwickelten Erweiterung interessiert sein.

https://github.com/ninsuo/jordan-tree

{% tree item in menu %} 
    {% if treeloop.first %}<ul>{% endif %} 
    <li> 
     <a href="{{ item.url }}">{{ item.name }}</a> 
     {% subtree item.children %} 
    </li> 
    {% if treeloop.last %}</ul>{% endif %} 
{% endtree %}