Nasıl bir smarty şablon dosyası içinde bir dizi atamak?

4 Cevap php

Bir Smarty şablon dosyası içinde bir değişken için bir dizi atamak mümkün olsaydı ben merak ediyorum? Ben denedim

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

Ben dizi yazdırmak Ama bu üretir:

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

Nasıl Smarty dizi değerlerini kaçan durdurabilirim?

Şimdiden teşekkürler

4 Cevap

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

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

Dan Smarty v.3 yeni sözdizimi mevcuttur

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

Daha fazla bilgi için bakınız: http://www.smarty.net/docs/en/language.syntax.variables.tpl

Ben sadece {php} tags (Smarty tarafından önerilir) kullanmadan bunu sağlar here başka bir cevap bulundu

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

Ama hala daha fikirlere açık ...

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

smarty şablon dosyasında bir kod yazmak için onun doğru değil yoldur. Eğer php bir dizi oluşturmak ve sonra smarty gelen değerleri almak gerekir.

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}