1
我正在一些公寓的网站上工作。Smarty替换和阵列
我有一些数据在foreach循环中分配给Smarty。
$i = 0;
foreach ($obj2 as $array) {
$smarty->assign('name'.$i, $obj2[$i]['name']);
$smarty->assign('numbedrooms'.$i, $obj2[$i]['number_of_bedrooms']);
$smarty->assign('numbathrooms'.$i, $obj2[$i]['number_of_bathrooms']);
$smarty->assign('sqfeet'.$i, $obj2[$i]['square_feet']);
$smarty->assign('deposit'.$i, $obj2[$i]['deposit']);
$smarty->assign('rent'.$i, $obj2[$i]['rent']);
$smarty->assign('vacantunits'.$i, $obj2[$i]['vacant_units']);
$i++;
}
当模板被加载($smarty->display('template.tpl');
)我要所有的数据经由replace
是可用的(像replace:'[[lowestrate]]':{$lowestrate}
(例如,从代码)另一个块)。
但是,由于$obj2
中的物品数量可能会发生变化(目前为3),因此我不能只说replace:'[[name1]]':{$name1}
。 (更不用说需要多长时间)
此外,需要更换原因的原因是页面内容由CMS系统通过所见即所得编辑器进行管理,编辑器可以输入[[lowestrate]]
以将其替换为最低版本价格公寓。他们应该可以输入[[name1]]
以将其替换为第一套公寓的名称,或者[[numberbedrooms1]]
替换为第一套公寓的套数。
有没有人有任何想法,我应该怎么做呢?
想到的第一件事是一个自定义插件,'preg_match'内容找到伪变量并用相应的变量值替换它们('$ smarty-> getTemplateVars()') – bububaba 2012-08-03 13:10:30
为什么使用foreach?难道你不能将数据作为数组发送给smarty吗? – 2012-08-03 13:47:56