Вернуть массив из хука в шаблон (РЕШЕНО)
Добрый день. Имеется хук, возвращающий в качестве результата массив.
Вызываю в шаблоне:
Ожидаю, что в $aResult окажется «ассоциативный» массив, т.е. {$aResult.foo} вернет «bar». Но в результате возвращается массив вида array(0=>'A', 1=>'r', 1=>'r', 1=>'a', 1=>'y', 1=>'(' и так далее.
Помогите, пожалуйста, как корректно передать массив из хука в шаблон?
UPD: По-быстрому сделал костыльный вариант для одноуровневого массива. Буду рад предложениям как это сделать «академически верно» :)
В шаблоне:
class PluginLive_HookLive extends Hook { public function RegisterHook() { $this->AddHook('template_header_banner_begin', 'GoGoGo'); } public function GoGoGo() { return array('foo'=>'bar'); } }
Вызываю в шаблоне:
{hook run='header_banner_begin' assign='aResult'}
Ожидаю, что в $aResult окажется «ассоциативный» массив, т.е. {$aResult.foo} вернет «bar». Но в результате возвращается массив вида array(0=>'A', 1=>'r', 1=>'r', 1=>'a', 1=>'y', 1=>'(' и так далее.
Помогите, пожалуйста, как корректно передать массив из хука в шаблон?
UPD: По-быстрому сделал костыльный вариант для одноуровневого массива. Буду рад предложениям как это сделать «академически верно» :)
class PluginLive_HookLive extends Hook { public function RegisterHook() { $this->AddHook('template_header_banner_begin', 'Countdown'); } public function Countdown() { r = array('foo'=>'bar', 'foo2'=>'bar2'); ksort($r); return implode(',',$r); } }
В шаблоне:
{assign var="aLive" value=","|explode:$aLive} {assign var="sVar1" value=$aLive[0]} {assign var="sVar2" value=$aLive[1]}