Igor Ageyev
Guest
sigma - вложенные блоки
Пользуюсь шаблонным движком HTML_Template_Sigma.
Не могу понять, почему не разбираются вложенные блоки шаблона;( Если верить документации, то анализироваться они должны.
Подскажите в чем могут быть грабли?
Привожу упрощенный пример кода:
******** файл test.php ***************
*********** файл test.tpl **************
-~{}~ 24.07.05 15:28:
Проблему разрешил
Грабли были не во вложенности блока "inner", а в том, что он не содержал никаких данных (плейсхолдеров, блоков).
Для разбора таких блоков нужно использовать метод touchBlock() вместо parse().
Т.е. вместо строки $tpl->parse('inner'); нужно поместить $tpl->touchBlock('inner');
Зачем было усложнять класс sigma, добавлением отдельного метода для пустых блоков? (для меня это загадка).
Кто нибудь пользуется этим шаблонным движком?
Пользуюсь шаблонным движком HTML_Template_Sigma.
Не могу понять, почему не разбираются вложенные блоки шаблона;( Если верить документации, то анализироваться они должны.
Подскажите в чем могут быть грабли?
Привожу упрощенный пример кода:
******** файл test.php ***************
PHP:
<?php
require_once 'HTML/Template/Sigma.php';
$tpl =& new HTML_Template_Sigma();
$tpl->loadTemplateFile('test.tpl');
// посчитаем от 0 до 9
for ($num=0; $num<10; $num++) {
// задаем значение переменным шаблона
$tpl->setVariable('number', $num);
// Следующая строка не выполняется!!!!!!!!!!!!!
// Вложенный блок 'inner' не анализируется;(
$tpl->parse('inner');
// разбирает внешний блок
$tpl->parse('outer');
}
// выводим шаблон
$tpl->show();
?>
PHP:
<!-- BEGIN outer -->
{number}<br/>
<!-- BEGIN inner -->
ЭТОТ БЛОК НЕ ВЫВОДИТСЯ
<!-- END inner -->
<!-- END outer -->
Проблему разрешил

Грабли были не во вложенности блока "inner", а в том, что он не содержал никаких данных (плейсхолдеров, блоков).
Для разбора таких блоков нужно использовать метод touchBlock() вместо parse().
Т.е. вместо строки $tpl->parse('inner'); нужно поместить $tpl->touchBlock('inner');
Зачем было усложнять класс sigma, добавлением отдельного метода для пустых блоков? (для меня это загадка).
Кто нибудь пользуется этим шаблонным движком?