【问题标题】:setting a var in smarty with a condition使用条件在 smarty 中设置 var
【发布时间】:2012-01-11 10:59:24
【问题描述】:

我真的很喜欢smarty documentation,但有时很难找到简单的东西......所以这是我的问题。是否可以在条件中设置 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>

【问题讨论】:

  • 抱歉忘记了...它不是我的插件/php,也许它不允许我触摸它;)总而言之...我更喜欢聪明的解决方案。谢谢

标签: php templates variables smarty var


【解决方案1】:
{if $lang eq 'ch'}
    {assign var="currency" value="CHF"}
{else}
    {assign var="currency" value="EURO"}
{/if}

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

【讨论】:

  • 很好...不知道它可以在 smarty 模板本身中分配。将记住它以用于 QAD 解决方案,或者如果再次错过某些访问权限;)感谢作品。
【解决方案2】:

为什么不在模板之外设置它,在代码中,您将价格分配给模板?

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

【讨论】:

  • 好的,我尝试了,就像我想的那样......无法访问插件只能访问 HTML 文件......客户......所以我什至不喜欢 smarty 解决方案......没有其他办法现在对我来说。
【解决方案3】:

捷径:

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

【讨论】:

    【解决方案4】:
    {if $lang eq 'ch'}
        <div class="payment">{$price} CHF</div>
    {else}
        <div class="payment">{$price} EURO</div>
    {/if}
    

    不需要变量吗?

    【讨论】:

    • 阅读问题,页面上有很多欧元符号(例如 40)...我不想这样做 40 次;)
    • 啊,我忽略了这一点。仍然认为这最好在 php 文件本身内完成。
    猜你喜欢
    • 2012-06-19
    • 2012-10-14
    • 2018-02-10
    • 1970-01-01
    • 2012-07-14
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    相关资源
    最近更新 更多