Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to assign an array within a smarty template file?

Tags:

php

smarty

I was wondering if it was possible to assign an array to a variable within a Smarty template file? I have tried this

{assign var='file' value = array('dir','doc','exe')}

But when I print out the array it produces this:

array(\'dir\',\'doc\',\'exe\') 

How can I stop Smarty escaping the array values?

Thanks in advance

like image 714
Jenski Avatar asked Feb 11 '10 12:02

Jenski


3 Answers

{php}
  $this->assign("array", array('dir','doc','exe'));
{/php}

{foreach from=$array item=item}
  {$item}
{/foreach}

From Smarty v.3 new syntax is available

{$array = ['item1','item2',$item3]}

see for more details : http://www.smarty.net/docs/en/language.syntax.variables.tpl

like image 121
Kirzilla Avatar answered Nov 19 '22 18:11

Kirzilla


I just found another answer here that allows you to do this without the use of {php} tags (recommended by Smarty)

{assign var='icon' value=','|explode:"dir,doc,exe"}

still open to more ideas though...

like image 20
Jenski Avatar answered Nov 19 '22 18:11

Jenski


what about {$system=['freebsd','windows','macosx','linux']}?

like image 9
Mituha Sergey Avatar answered Nov 19 '22 18:11

Mituha Sergey