使用条件在smarty中设置var

时间:2011-12-02 11:50:07

标签: php templates variables smarty var

我真的很喜欢smarty documentation,但有时很难找到容易的东西...所以继承我的问题。是否可以在条件中设置var?这是一个有很多欧元符号的大模板。 现在还有另一种新语言,但他们不支付欧元。所以不要为每个欧元符号周围的语言设定条件。我想使用一个var,它在模板的开头设置一次,语言条件如下:

{if $lang eq 'ch'}
{*need to set "CHF" as a smarty or php var*}
{else}
{*need to set "EURO" as a smarty or php var*}
{/if}

<div class="payment">{$price} {*CHF or EURO var*}</div>

4 个答案:

答案 0 :(得分:5)

{if $lang eq 'ch'}
    {assign var="currency" value="CHF"}
{else}
    {assign var="currency" value="EURO"}
{/if}

<div class="payment">{$price} {$currency}</div>

答案 1 :(得分:2)

为什么不在代码中将模板设置在模板之外?

我认为这就是它所属的地方。模板应该控制演示;任何与逻辑有关的东西都属于驱动它的代码。

答案 2 :(得分:0)

{if $lang eq 'ch'}
    <div class="payment">{$price} CHF</div>
{else}
    <div class="payment">{$price} EURO</div>
{/if}

不需要变量吗?

答案 3 :(得分:0)

快捷方式:

{assign currency ($lang eq 'ch') ? 'CHF' : 'EURO'}