setting a var in smarty with a condition
10,254
Solution 1
{if $lang eq 'ch'}
{assign var="currency" value="CHF"}
{else}
{assign var="currency" value="EURO"}
{/if}
<div class="payment">{$price} {$currency}</div>
Solution 2
Why not set it outside the template, in the code, where you assign the price to the template?
I would argue that's where this belongs. Templates are supposed to control the presentation; anything to do with logic belongs in the code driving it.
Solution 3
Short way:
{assign currency ($lang eq 'ch') ? 'CHF' : 'EURO'}
Author by
ggzone
Updated on June 05, 2022Comments
-
ggzone almost 2 years
I really like the smarty documentation but sometimes its hard to find easy stuff... so heres my question. Is it possible to set a var in a condition? theres a large template with many euro signs. now there is another new language but they not paying with euro. so instead of settung up a condition for the language around each euro sign. i want to use a var which is set at the start of my template once with the language condition like:
{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>
-
ggzone over 12 yearsok i tried like i thought... no access to the plugin only to the HTML file... customers...... so i not even prefer smarty solution.. theres no other way for me right now.
-
ggzone over 12 yearsnice... didnt know its possible to assign in smarty template itself. will remember it for QAD solutions or if a miss some access rights again ;) thanks works.
-
ggzone over 12 yearsread the question there are many euro signs on the page (like 40)... and i dont want to do that condition 40 times ;)
-
OptimusCrime over 12 yearsAh, I overlooked that. Still think this is better done within the php-file itself.