d_xtc
Guest
FastTemplate: помогите разобраться с динамическими блоками!
Вопрос в следующем. Заказчику нужен сайт, который бы работал с FastTemplate.
Сайтик простой, вроде бы уже все получилось, но немогу справиться с динамическими блоками. На главной странице сайта должны располагаться опросы, причем их может быть несколько.
делаю следующий tpl:
<!-- BEGIN DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ON_TOP -->
{NOT_ACTIVE_VOTE_QUESTION}<br>
<!-- BEGIN DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ANSWER -->
{NOT_ACTIVE_VOTE_ANSWER_FLOAT}% (87) {NOT_ACTIVE_VOTE_ANSWER_TITLE}
<!-- END DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ANSWER -->
{NOT_ACTIVE_VOTE_TOTAL}
<!-- END DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ON_TOP -->
начинаю выводить
$tpl->define_dynamic( "NOT_ACTIVE_VOTE_ANSWER" , "body" );
$res = mysql_query("select SUM(count) as sum from answers where id_test=$id_test");
$total = mysql_result($res,0,"sum");
$res = mysql_query("select id_answer, answer, count from answers where id_test=$id_test order by id_answer");
while(list($id_answer, $answer, $count) = mysql_fetch_row($res))
{
$percent = $count * 100 / $total;
$percent_int = floor($percent);
$percent_float = number_format($percent, 1);
$tpl->assign( array(
NOT_ACTIVE_VOTE_ANSWER_INT => $percent_int,
NOT_ACTIVE_VOTE_ANSWER_FLOAT => $percent_float,
NOT_ACTIVE_VOTE_ANSWER_TITLE => stripslashes($answer)
));
$tpl->parse("NOT_ACTIVE_VOTE_ON_ANSWER_", ".NOT_ACTIVE_VOTE_ANSWER");
}
$tpl->assign( array(
NOT_ACTIVE_VOTE_QUESTION => stripslashes($question),
NOT_ACTIVE_VOTE_TOTAL => $total
));
$tpl->parse(NOT_ACTIVE_VOTE_ON_TOP_, ".NOT_ACTIVE_VOTE_ON_TOP");
$tpl->clear_dynamic("NOT_ACTIVE_VOTE_ANSWER");
в результате во втором опросе "прилепляются" ответы от первого опроса, в третьем от первого и второго и т.д.
попытка "чистить" $tpl->clear_dynamic("NOT_ACTIVE_VOTE_ANSWER"); ни к чему не приводит.
Смотрите здесь http://ya.rikt.ru, ошибка сразу броситься в глаза.
Что нужно сделать, чтобы не повторялся вывод "прилепляющихся ответов".
Вопрос в следующем. Заказчику нужен сайт, который бы работал с FastTemplate.
Сайтик простой, вроде бы уже все получилось, но немогу справиться с динамическими блоками. На главной странице сайта должны располагаться опросы, причем их может быть несколько.
делаю следующий tpl:
<!-- BEGIN DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ON_TOP -->
{NOT_ACTIVE_VOTE_QUESTION}<br>
<!-- BEGIN DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ANSWER -->
{NOT_ACTIVE_VOTE_ANSWER_FLOAT}% (87) {NOT_ACTIVE_VOTE_ANSWER_TITLE}
<!-- END DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ANSWER -->
{NOT_ACTIVE_VOTE_TOTAL}
<!-- END DYNAMIC BLOCK: NOT_ACTIVE_VOTE_ON_TOP -->
начинаю выводить
$tpl->define_dynamic( "NOT_ACTIVE_VOTE_ANSWER" , "body" );
$res = mysql_query("select SUM(count) as sum from answers where id_test=$id_test");
$total = mysql_result($res,0,"sum");
$res = mysql_query("select id_answer, answer, count from answers where id_test=$id_test order by id_answer");
while(list($id_answer, $answer, $count) = mysql_fetch_row($res))
{
$percent = $count * 100 / $total;
$percent_int = floor($percent);
$percent_float = number_format($percent, 1);
$tpl->assign( array(
NOT_ACTIVE_VOTE_ANSWER_INT => $percent_int,
NOT_ACTIVE_VOTE_ANSWER_FLOAT => $percent_float,
NOT_ACTIVE_VOTE_ANSWER_TITLE => stripslashes($answer)
));
$tpl->parse("NOT_ACTIVE_VOTE_ON_ANSWER_", ".NOT_ACTIVE_VOTE_ANSWER");
}
$tpl->assign( array(
NOT_ACTIVE_VOTE_QUESTION => stripslashes($question),
NOT_ACTIVE_VOTE_TOTAL => $total
));
$tpl->parse(NOT_ACTIVE_VOTE_ON_TOP_, ".NOT_ACTIVE_VOTE_ON_TOP");
$tpl->clear_dynamic("NOT_ACTIVE_VOTE_ANSWER");
в результате во втором опросе "прилепляются" ответы от первого опроса, в третьем от первого и второго и т.д.
попытка "чистить" $tpl->clear_dynamic("NOT_ACTIVE_VOTE_ANSWER"); ни к чему не приводит.
Смотрите здесь http://ya.rikt.ru, ошибка сразу броситься в глаза.
Что нужно сделать, чтобы не повторялся вывод "прилепляющихся ответов".