Smarty: вывод элемента массива с вычисляемым ключем

Silex

unitecsys
Smarty: вывод элемента массива с вычисляемым ключем

Положим, в шаблон загружается некий ассоциативный массив, у которого есть элемент, ключ которого зависит от текущего языка, например, $arr["article_".$current_lang]. Как в шаблоне вывести этот элемент, если известен $current_lang ?

Конструкция типа {eval var=$arr.article_$current_lang} не работает. Можно, конечно, жестко привязаться к цифровому индексу, но это как крайняя мера.

Есть соображения?
 

Frenk

Guest
Вопрос несколько неясен...
Возможно, тебе надо это?
$var=${"arr.article_$current_lang"};
 

Silex

unitecsys
2 Frenk:
Нет, вопрос касается не РНР, а языка шаблонов Smarty. В шаблон приходит массив с элементом {$arr.article_eng} или {$arr.article_rus} - какой ключ, неизвестно. Я знаю, что получить его можно по правилу "article_".$current_lang (это в синтаксисе РНР).

Нужно вывести в шаблоне этот самый элемент с ключем, сформированным по этому правилу. Иными словами, доступ к элементу массива, у которого ключ - переменная. Повторюсь, все это в шаблоне Smarty.
 

tony2001

TeaM PHPClub
изврат редкий:

setup.conf
Код:
language = rus
array_key = article_{#language#}
template.tpl
Код:
{config_load file="setup.conf"}
{eval var=#array_key# assign="key"}
{$key}
 

tony2001

TeaM PHPClub
можно несколько конфигов сделать для каждого языка и подгружать разные.
но все-таки это изврат =(
 
Сверху