2016-11-02 2 views
1

erfüllt habe ich oft ähnlich vorformulierten Code in Zweig:Wrap Inhalt durch ein Element, das eine Bedingung in Zweig

{% if (somelongcond) %} 
<div> 
{% endif %} 
    <p>Some long content</p> 
{% if (somelongcond) %} 
</div> 
{% endif %} 

Das Problem mit der oben, wenn die Bedingung geändert wird, kann es einen Alptraum in Sachen Wartung, ich muss auch ganz nach unten schauen, um die passende if-Anweisung zu finden und zu sehen, ob die Bedingung die gleiche ist.

Eine Alternative ist so etwas wie diese:

{% if (somelongcond) %} 
    <div> 
     {% include 'content' %} 
    </div> 
{% endif %} 
{% include 'content' %} 

Aber das erfordert eine neue Datei zu erstellen, die ein Chaos werden können, wenn ich dies viele Male tun müssen.

Gibt es einen besseren Weg, um das oben genannte zu tun.

Antwort

0

Das ist ein bisschen kürzer

{{ if somelongcond ? '<div>'|raw }} 
    <p>Some long content</p> 
{{ if somelongcond ? '</div>'|raw }} 

Wenn dann die gleiche Bedingung wiederholt wird, können Sie es vielleicht am Anfang der Datei gesetzt, dann, wenn Sie es nur ändern müssen, um es zu tun Einmal.

{% if somelongcond %} 
    {% set cond = true %} 
{% else %} 
    {% set cond = false %} 
{% endif %} 

{{ if cond ? '<div>'|raw }} 
    <p>Some long content</p> 
{{ if cond ? '</div>'|raw }} 
Verwandte Themen