php - examples - ¿Cómo asignar una matriz dentro de un archivo de plantilla inteligente?
smarty if (5)
¿Qué pasa con {$system=[''freebsd'',''windows'',''macosx'',''linux'']}
?
Me preguntaba si era posible asignar una matriz a una variable dentro de un archivo de plantilla Smarty. Lo he intentado
{assign var=''file'' value = array(''dir'',''doc'',''exe'')}
Pero cuando imprimo la matriz produce esto:
array(/'dir/',/'doc/',/'exe/')
¿Cómo puedo evitar que Smarty escape de los valores de la matriz?
Gracias por adelantado
Acabo de encontrar otra respuesta here que te permite hacer esto sin el uso de etiquetas {php} (recomendadas por Smarty)
{assign var=''icon'' value='',''|explode:"dir,doc,exe"}
aún abierto a más ideas, aunque ...
no es la forma correcta de escribir un código en el archivo de plantilla inteligente. deberías crear una matriz en php y luego obtener los valores 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);
}
Sabelotodo:
{assign var=colors value=$smarty->arrSam()}
{$colors|print_r}
$smarty->assign("lat",$lat);
{foreach $lat as $latlongval}
{assign var="myArray" value=","|explode:$latlongval}
{$myArray[''0'']}
{$myArray[''1'']}
{/foreach}
{php}
$this->assign("array", array(''dir'',''doc'',''exe''));
{/php}
{foreach from=$array item=item}
{$item}
{/foreach}
De Smarty v.3 nueva sintaxis está disponible
{$array = [''item1'',''item2'',$item3]}
vea para más detalles: http://www.smarty.net/docs/en/language.syntax.variables.tpl