Мне было интересно, можно ли присвоить массив переменной в файле шаблона Smarty? Я пробовал это
{assign var='file' value = array('dir','doc','exe')}
Но когда я распечатываю массив, он производит это:
array(\'dir\',\'doc\',\'exe\')
Как я могу остановить Smarty, избегая значений массива?
заранее спасибо
{php} $this->assign("array", array('dir','doc','exe')); {/php} {foreach from=$array item=item} {$item} {/foreach}
С Smarty v.3 доступен новый синтаксис
{$array = ['item1','item2',$item3]}
подробнее см .: http://www.smarty.net/docs/en/language.syntax.variables.tpl
Я просто нашел здесь другой ответ, который позволяет вам делать это без использования тэгов {php} (рекомендуется Smarty)
{assign var='icon' value=','|explode:"dir,doc,exe"}
все еще открыты для большего количества идей, хотя …
как насчет {$system=['freebsd','windows','macosx','linux']}
?
$smarty->assign("lat",$lat); {foreach $lat as $latlongval} {assign var="myArray" value=","|explode:$latlongval} {$myArray['0']} {$myArray['1']} {/foreach}
его неправильный способ написать код в файле шаблона smarty. вы должны создать массив в php, а затем получить значения из smarty.
This is the right way to create a standard development code. like.
PHP:
public function arrSam(){ $colors = array( 0 => '#1f1f1f', 1 => '#696969', 2 => '#878787', 3 => '#b4b4b4', 4 => '#d2d2d2', 5 => '#f0f0f0', 6 => '#ffffff'); $smarty->assign('colors', $colors); }
Smarty:
{assign var=colors value=$smarty->arrSam()} {$colors|print_r}