使用条件在 smarty 中设置 var
Posted
技术标签:
【中文标题】使用条件在 smarty 中设置 var【英文标题】:setting a var in smarty with a condition 【发布时间】: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,也许它不允许我触摸它;)总而言之...我更喜欢聪明的解决方案。谢谢 【参考方案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 文件本身内完成。以上是关于使用条件在 smarty 中设置 var的主要内容,如果未能解决你的问题,请参考以下文章
在 Ansible/Jinja2 中设置 var 的 case 语句
Laravel 5.2:如何在刀片模板中设置变量,没有 php 标签?