Я работаю над сайтом для некоторых квартир.Smarty replace and array
У меня есть некоторые данные, присваиваемые Smarty в цикле foreach.
$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 с помощью редактора WYSIWYG, где редактор может набирать [[lowestrate]]
, чтобы заменить его самым низким стоимость квартиры. Они должны иметь возможность набрать [[name1]]
, чтобы заменить его на первую квартиру, или [[numberbedrooms1]]
на замену на количество спальных апартаментах 1.
Есть ли у кого-нибудь идеи относительно того, как я должен это делать?
Первое, что приходит в голову - это настраиваемый плагин 'preg_match'ing содержимого найти псевдопеременные и заменить их соответствующими значениями переменных ('$ smarty-> getTemplateVars()') – bububaba
Почему foreach? Не могли бы вы отправить данные в smarty как массив? –