[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не работает функция parseTpl
kent666
Всем привет. Помогите а то что то не получается
У меня есть массив $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

Спустя 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 написал(а):
Спасибо. Заработало)))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.