我创建了一个带有返回数组的函数的EE插件。 e.g。
function things(){
return array(
array(
'name'=>'bob',
'age'=>40
),
array(
'name'=>'mary',
'age'=>50
)
);
}
我找不到用vanilla EE模板标签遍历这个数组的任何方法。插件只能返回字符串吗?这真的不可能,还是我忽略了一些简单的事情?我想做点什么:
{foreach {things} }
Name: {name}
Age: {age}
{/foreach}
答案 0 :(得分:3)
您的阵列结构正确,但您需要使用Template Class' Parse Variables method。这个方法的好处在于它允许你根据需要嵌套很多层(允许标记对中的标记对中的标记对),并且你自动获得{count}
和{total_results}
。
所以在你的插件中:
function things()
{
$things = array(
array(
'name'=>'bob',
'age'=> '40'
),
array(
'name'=>'mary',
'age'=> '50'
)
);
return $this->EE->TMPL->parse_variables($this->EE->TMPL->tagdata, $things);
}
然后在你的模板中:
{exp:my_plugin:things}
Name: {name}
Age: {age}
{/exp:my_plugin:things}
答案 1 :(得分:0)
针对EE3修改的上一个答案的补充:
在模板中(同样):
{exp:addon_name:method_name}
Name: {name}
Age: {age}
{/exp:addon_name:method_name}
在插件插件中需要使用ee() - > TMPL:
$things = array(
array(
'name'=>'bob',
'age'=> '40'
),
array(
'name'=>'mary',
'age'=> '50'
)
);
return ee()->TMPL->parse_variables(ee()->TMPL->tagdata, $things);