Доброе время суток.
чтобы не закидали старыми тряпками сразу скажу что с такой фигней не работал, перерыл кучу всего, но до конца так и не врубился.

Имеем шаблон блога(для примера)
http://docs.google.com/Doc?id=ac5m4dxmjw6b_80hg9ksd
http://2.bp.blogspot.com/_AOJK6bFFsUI/Rg7AitHHIZI/AAAAAAAAAuc/T9efqVucZ6Q/s800/backstage.jpg
в нём есть теги которые определяют начало и конец блока.
Результат XML::Parser, XML::LibXML ужасен так же как и всё остальное типа HTML::Parser.
Хочется странного. Правда мне кажется велосипед уже изобретен.
Хочется объектного древовидного обращения к блокам данных внутри шаблона.

как ко внутренним так и к внешним.
типа есть
<blogger>
Posted by <$BlogItemAuthorNickname$> on <BlogDateHeader><$BlogDateHeaderDate$></BlogDateHeader> at <$BlogItemDateTime$> <BlogItemComments><a id="<$BlogCommentNumber$>"></a><p><$BlogCommentBody$></p><p style="font-size:11px;">Posted by <$BlogCommentAuthor$> | <a href="<$BlogCommentPermalinkURL$>"><$BlogCommentDateTime$></a> <$BlogCommentDeleteIcon$> <br /><br /></BlogItemComments>
</blogger>
Хочется
$blog->{BlogDateHeader} =~ s/\<$BlogDateHeaderDate$\>/$arrayref->{Blog}->{TodayDate}/;# замена даты внутри б блока входящего в <blogger> $blog->{blogger} =~ s/\<$BlogItemDateHeader$\>/$arrayref->{Blog}->{Item}->{5}->{Date}/;# прямая замена даты в <blogger> my $comment_template = $blog->{BlogItemComments}; # сохранение шаблона в переменной $blog->{blogger} =~ s/$comment_template/sub { &printcomments($comment_template,5) }/; # замена блока шаблонов требуемым значением
или
$blog->{BlogItemComments} = &printcomments($comment_template,5); # замена блока шаблонов требуемым значением
print $blog->{blogger}

Это реально ? :)
Прямое указание ссылок сильно утомительно типа $html->{body}->{blogger}->{BlogDateHeader} и т.д.
Так как я структуры шаблона не знаю, но знаю нужные мне теги.
с xml вообще труба, получил в некоторых местах уровень вложения 30.
Пока придумал только схему на HTML::Parser где в &start и &end выгребаются нужные именованные блоки и запихиваются
в hash, потом в шаблон вставляется ссылка на хеш вместо самого кода.
Потом при выводе всё получается красиво и быстро.

Я тупочка ?
Может кто ткнёт носом куда копать ?






--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить