Главная страница


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)
 
 

Вернуться к списку тем, сортированных по:

 Тема:    Автор:    Дата:  
 HTML::Template   Antony Gerasimov   26 May 2003 16:31:28 
 Re: HTML::Template   Andrey Savitsky   26 May 2003 15:01:18 
 HTML::Template   Antony Gerasimov   26 May 2003 23:55:00 
 Re: HTML::Template   Andrey Savitsky   27 May 2003 10:21:59 
Архивное /ru.cgi.perl/39693ed1f0fa.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional