|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Antony Gerasimov 2:5010/148.46 26 May 2003 16:31:28 To : All Subject : HTML::Template -------------------------------------------------------------------------------- Пpивет All! Заметил такой "глюк" у модуля. В опредлённых случаях он не обрабатывает свои конструкции. Hапример, имеется вот такой шаблон: === начался |cat ~/spc-ed.tmpl.html === <h2><TMPL_VAR NAME=HEADER></h2> <TMPL_IF NAME=ISVIEW> <form action="<TMPL_VAR NAME=SCRIPT>" method="POST"> <input type="hidden" name="job" value="<TMPL_VAR NAME=H_JOB>"> <input type="hidden" name="dat" value="<TMPL_VAR NAME=H_DAT>"> </TMPL_IF> <table width="100%" border="0" cellspacing="2" cellspacing="2"> <tr bgcolor="#c0c0c0"> <th width="5%"><strong>X</strong></th> <th><a href="<TMPL_VAR NAME=SCRIPT>?job=<TMPL_VAR NAME=H_JOB>&by=0">Описание специальности</a></th> <th width="15%"><a href="<TMPL_VAR NAME=SCRIPT>?job=<TMPL_VAR NAME=H_JOB>&by=1">Шифр</a></th> </tr> <TMPL_LOOP NAME=SPECS> <tr bgcolor="<TMPL_VAR NAME=COLOR>"> <td align="center"> <TMPL_IF NAME=ISVIEW> <input type="radio" name="sid" value="<TMPL_VAR NAME=SID>" > </TMPL_IF> </td> <td><TMPL_VAR NAME=TXT_VALUE></td> <td align="center"><TMPL_VAR NAME=CODE_VALUE></td> </tr> </TMPL_LOOP> <TMPL_IF NAME=ISVIEW> <tr> <td colspan="3"><input type="submit" value="<TMPL_VAR NAME=BUTTON>"></td> </tr> </TMPL_IF> </table> </form> === закончился |cat ~/spc-ed.tmpl.html === Имеется условие и цикл. Далее всё вызывается так === начался |cat /stuff/www/cgi-bin/peoples/peoples.cgi === my $edt_template = HTML::Template->new(filename => 'spc-ed.tmpl.html', path => 'templates/' ); $edt_template->param( HEADER => 'Редактирование специальности', SCRIPT => $ENV{'SCRIPT_NAME'}, H_JOB => 'sEdit', H_DAT => 'edt', BUTTON => 'Редактировать запись', ISVIEW => 1); my @loop_data = (); while ( @arr = $sth->fetchrow_array() ) { my %row_data; if ($clr) { $color='#fff5ee'; $clr=0; } else { $color='#e6e6fa'; $clr=1; } $row_data{COLOR} = $color; $row_data{SID} = $arr[0]; $row_data{TXT_VALUE} = $arr[1]; $row_data{CODE_VALUE} = $arr[2]; push (@loop_data, \%row_data); } $edt_template->param( SPECS => \@loop_data); print $edt_template->output(); === закончился |cat /stuff/www/cgi-bin/peoples/peoples.cgi === Если делаем 'ISVIEW => 1', то получаем форму, и кнопку внизу таблицы. Радиокнопки, которые генерятся в цикле по такому же условию, отсуствуют. В чём загвозка -- непонятно. Делаем 'ISVIEW => 0' (просто убираем) при вызове метода param() -- кнопка исчезает, как и положено. В чём может быть проблема? зы. Template-Toolkit просьба не предлагать. Hеобходимо решить задачу данным модулем. --- GoldED+/BSD 1.1.4.7 * Origin: No one wants to be someone else's control. (2:5010/148.46) Вернуться к списку тем, сортированных по:
Архивное /ru.cgi.perl/39693ed1f0fa.html, оценка из 5, голосов 10
|