Comment affecter un tableau dans un fichier Smarty template?

je me demandais s'il était possible d'assigner un tableau à une variable dans un fichier Smarty template? J'ai essayé cette

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

Mais quand j'imprime le tableau produit:

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

Comment puis-je empêcher Smarty d'échapper aux valeurs du tableau?

Merci d'avance

36
demandé sur Jenski 2010-02-11 15:22:23

5 réponses

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

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

Smarty v. 3 nouvelle syntaxe est disponible à

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

voir pour plus de détails : http://www.smarty.net/docs/en/language.syntax.variables.tpl

46
répondu Kirzilla 2012-04-17 07:57:33

je viens de trouver une autre réponse ici qui vous permet de le faire sans l'utilisation de {php} balises (recommandé par Smarty)

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

toujours ouvert à d'autres idées si...

43
répondu Jenski 2010-02-11 12:53:56

qu'en est-il {$system=['freebsd','windows','macosx','linux']}?

8
répondu Mituha Sergey 2012-03-22 21:19:21
$smarty->assign("lat",$lat);

{foreach $lat as $latlongval}
    {assign var="myArray" value=","|explode:$latlongval} 
    {$myArray['0']}
    {$myArray['1']}
{/foreach}
0
répondu nhahtdh 2013-09-02 11:24:57

ses pas la bonne façon d'écrire un code dans le fichier de template smarty. vous devez créer un tableau en php et ensuite obtenir les valeurs de 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}
-1
répondu RaJeSh 2012-12-17 05:26:41