Smarty и индекс массива с []

Дмитрий_rnd

Новичок
Smarty и индекс массива с []

Вопрос вот в чем:
У меня есть такой массив:
PHP:
$fields = array();
$fields["field1"] = ...
...
$fields["filters[]"] = ...
В smarty прекрасно работает конструкции типа $fields.field1, но не работают такие: $fields.filters[]. Полэтому мне приходится делать так: {assign var=tmp_var value="filters[]"} после чего $fields.$tmp_var прекрасно работает.
А нельзя ли это сделать покрасивше как-нибудь?
 

kvf77

Red Devil
Дмитрий_rnd

объясните мне философский смысл такой записи индекса?
 

Дмитрий_rnd

Новичок
это параметр функции - в данном случае - функция генерации контрола с зананным атрибутом name. Но я поступил иначе - просто усложнил внутренности функции :)
 

WP

^_^
Вот такую шнягу сейчас по этому случаю написал.
PHP:
function kv($params,&$smarty) {return $params['array'][$params['key']];}
function smarty_prefilter_smartarrays($tpl_source,&$smarty)
{
 return preg_replace('~{(\$\w+)\."([^"]+)"}~','{kv array=$1 key="$2"}',$tpl_source);
}
$smarty->register_prefilter('smarty_prefilter_smartarrays');
$smarty->register_function('kv', 'kv');
 
Сверху