У меня есть массив $group который храниться в файле
на подобии
[1]=>Первый
[2]=>Второй
Есть шаблон
<!-- ./skins/tpl/admin/catalogue/group.tpl begin -->
<table id="group">
<tr>
<td><input type="checkbox" value="" /></td>
<td> <?php echo $val; ?> </td>
</tr>
</table> <br />
<!-- ./skins/tpl/admin/catalogue/group.tpl end -->
есть код
$all_group="";
if (empty($group))
{
$all_group.=SVV_LANG_NO_GROUP;
}
else
{
$cont = getTpl('admin/catalogue/group');
foreach ($group as $var => $val)
{
$all_group.= parseTpl($cont, $val);
}
}
Есть малость переделанная функция parseTpl
/**
* Function of analysis of a template
* Функция разбора шаблона
*/
function parseTpl($cont, $data = '')
{
if(is_array($data))
{
extract($data, EXTR_PREFIX_ALL, 'tpl');
ob_start();
eval('?>'. $cont .'<?php ');
$cont = ob_get_contents();
ob_end_clean();
}
else
{
ob_start();
eval('?>'. $cont .'<?php ');
$cont = ob_get_contents();
ob_end_clean();
}
return $cont;
}
Почему то не работает!!! Пишет что в шаблоне не определена переменная $val
Спустя 10 минут, 1 секунда (16.05.2011 - 21:18) ZSH написал(а):
потому что в функции переменной $val нету
функция принимает $data
функция принимает $data
Спустя 8 минут, 23 секунды (16.05.2011 - 21:26) T1grOK написал(а):
....
foreach ($group as $var => $val){
$all_group.= parseTpl($cont, array('val'=>$val));
}
....
а так как ехtract использует префикс, то переменные в шаблоне будут формироваться таким образом:
<префикс>+<ключ массива>
Спустя 13 минут, 20 секунд (16.05.2011 - 21:39) kent666 написал(а):
Спасибо. Заработало)))