PERL, HTML::Template, ссылки.
Добавлено: 12 фев 2004, 12:48
Иеем шаблон:
Вот код, который его должен был бы звполнять:
По идее должен получиться список из 3 колонок произвольной длинны, но:
1) @ROWS может быть только хэшем с сылкой на массив.
2) @COL = () обнуляет массив => нифига на экран не выводится, т.к. в @ROWS - ссылки
3) Количество данных взятых из базы традиционно неизвестно...
4) Пробывал делать так: push @ROWS, {PREVIEW_COLS=>\(@COL)};
и \[@COLS] - получил следующую ошибку:
Можно наверное загнать данные в массив массивов и кидать ссылки на строки, но что-то мне этот вариант не нравится.
Код: Выделить всё
<TMPL_LOOP NAME=PREVIEW_ROWS>
<TR>
<TMPL_LOOP NAME=PREVIEW_COLS>
<TD><TMPL_VAR NAME=ID></TD>
<TD><TMPL_VAR NAME=PATH></TD>
</TMPL_LOOP>
</TR>
</TMPL_LOOP>
Код: Выделить всё
while ( my $sth_hash = $sth->fetchrow_hashref)
{
$counter++;
push @COL, {ID=>${$sth_hash}{'LINK_ID'}, PATH=>${$sth_hash}{'path'}};
if ($counter == 3)
{
$counter=0;
push @ROWS, {PREVIEW_COLS=>\@COL};
@COL = ();
}
}
1) @ROWS может быть только хэшем с сылкой на массив.
2) @COL = () обнуляет массив => нифига на экран не выводится, т.к. в @ROWS - ссылки
3) Количество данных взятых из базы традиционно неизвестно...
4) Пробывал делать так: push @ROWS, {PREVIEW_COLS=>\(@COL)};
и \[@COLS] - получил следующую ошибку:
Код: Выделить всё
HTML::Template->output() : fatal error in loop output : Can't call method "isa" on unblessed reference at /usr/share/perl5/HTML/Template.pm line 2464.