Создать массив в шаблоне smarty?

Мне нужно создать новый массив из другого одномерного массива в шаблоне smarty. Итак, каковы наилучшие возможности для создания массива в файле шаблона.

Спасибо, Сачин

Ответы

Ответ 1

Smarty3 позволяет вам {$var = ['foo' => 'bar', 'sub' => [1, 2, 3]]} и {$var.foo = 'other'}

если этих параметров недостаточно, напишите функцию плагина.

Ответ 2

В прошлом я использовал два подхода - злой и грязный - чтобы быстро назначить массив внутри tpl:

{* Am I evil? *}
{php}
    $array = array("cat", "dog", "rabbit");
    $this->assign("myArray", $array);
{/php}

{* Am I dirty? *}
{assign var='myArray' value=','|explode:"cat,dog,rabbit"}

Оба результата приводят к тому, что ваш массив доступен внутри шаблона для создания простого цикла. В любом случае, я всегда менял свой код таким образом, поэтому мне вообще этого не нужно.

Ответ 3

На самом деле это очень просто:

{assign 'myArray' ['cat', 'dog', 'rabbit']}

Ответ 5

С точки зрения MVC часть просмотра не отвечает только за отображение данных. Я бы посоветовал вам переосмыслить приложение таким образом, чтобы он позволял обрабатывать данные в модели и передавать их для отображения только в представлении.