Re: [htmltmpl] HTML::Template with simplified/automated fill in from database.
Brought to you by:
samtregar
|
From: Mathew R. <mat...@ne...> - 2008-02-24 23:39:26
|
Hi Ronald, >>> I am looking to generate easy visualizations of >>> objects serialized in a database USING the underlying model. >> It sounds like you're talking about a glue between "model" components >> like dbix::class, class::dbi, etc? >> > Close. Yes a glue layer between HTML::Template and a database. I > could try to use some of these higher layer abstractions (including > Rose:DB) or use a modern DBI layer with its > primay_key/primary_key_info/foreign_key_info functions ... Based on your example below, are you thinking of something like Template::Plugin::DBI (as used in Template::Toolkit)? ie: see examples here: http://search.cpan.org/~abw/Template-DBI-2.64/lib/Template/Plugin/DBI.pm Alternatively, have you looked at HTML::FillInForm? > <html> > <head><title>Test Template</title> > <body> > <TMPL_LOOP NAME="+books"> > <ul> > <li />Title is "<TMPL_VAR NAME=".title">" > <li />ISBN is <TMPL_VAR NAME=".isbn"> > <li />Authors are: > <ul> > <!-- name below is shorthand for +books.book_id.authors --> > <!-- could still be abbreviated to +authors if fk's link > tables --> > <TMPL_LOOP NAME=".book_id.authors:ORDER_BY:.last_name,.first_name" > > <li /><TMPL_VAR NAME=".last_name">, <TMPL_VAR > NAME=".first_name"> > </TMPL_LOOP> > </ul> > </ul> > </TMPL_LOOP> > </body> > </html> If so, (IMO) H::T wasn't designed to be pluggable/extensible in that way. However, that hasn't stopped a number of users extending/modifying the H::T codebase in various ways, ie: I use a version which allows me to subclass H::T (or H::T::E) so that I can extend the tag syntax. From memory, I think someone else on this list has hooked together H::T and HTML::FillInForm. In your example above, I would subclass H::T to handle the following (or something similar): ... <TMPL_SQL_LOOP NAME="books"> ...<TMPL_FIELD NAME="title"> ...<TMPL_SQL_LOOP NAME="authors" WHERE="book_id = books.book_id" ORDER_BY="last_name, first_name"> ...<TMPL_FIELD last_name>... ...</TMPL_SQL_LOOP> </TMPL_SQL_LOOP> ... cheers, Mathew |