How about using another instance of HTML::Template within your code to generate the upselling HTML text and assign the Template output to a TMPL_VAR.
Something like: # generate the upsell HTML my $upsell_template = HTML::Template->new(filename => 'test.tmpl'); ... my $upsell_html = $upsell_template->output; # handle the main template my $main_template = HTML::Template->new ... ... # include the upsell HTML as a TMPL_VAR $template->param(UPSELL_HTML => $upsell_html); Then, in your main HTML file, just use a normal <TMPL_VAR name="UPSELL_HTML"> to include the HTML where you want it. ----- Original Message ----- From: "Adrian Grigore" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, March 28, 2004 9:04 AM Subject: [htmltmpl] TMPL_INCLUDE with variable name? > Hi, > > I would like to create a template representing a sales checkout page which > is supposed to have different upselling items on the bottom, depending > which items are currently in the shopping basket. I would like to include > the HTML tag to the upselling item with TMPL_INCLUDE, but the problem is > that the name of the template that should be included is dynamic, so I > cannot write that as fixed string into the shopping basked template. > > The problem description above is probably too confusing, so here's an > example of what I am trying to do. I have this template which the contents > of the user's shopping basket plus an upselling item: > > some code for displaying shopping cart.... > <!-- now include the template that includes the upselling item --> > <TMPL_INCLUDE NAME="myupsellingitem1.tmpl"> > some more code for the page footer. > > Now, this works fine if I have only one upselling item. But If I have 2 of > them and only the perl script knows which one should be displayed I would > need I TMPL_INCLUDE that works with a name refers to the name of a TMPL_VAR > of the same context. I would need something like this: > > some code for displaying shopping cart.... > <!-- now include the template that includes the upselling item --> > <TMPL_INCLUDE NAME=UPSELLING_TEMPLATE_FILENAME> > some more code for the page footer. > > and of course I would need to have something like > $Template->param(UPSELLING_TEMPLATE_FILENAME => 'myupsellingitem1.tmpl'); > in my template. > > Unfortunately this is currently not possible in HTML::Template. I could > think of loading the template via HTTP and using server side includes or > php to do the job, but that would be an ugly solution. It would also be > possible to "filter" the output of one template and use it as input for the > next, but that would be quite messy too. Is there any clean way to do this? > > Thanks, > > Adrian Grigore > > -- > Adrian Grigore > [EMAIL PROTECTED] > Lobstersoft - Fun Brain-Bending Games For All Ages > http://www.lobstersoft.com > Member of the Association of Shareware Professionals > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IBM Linux Tutorials > Free Linux tutorial presented by Daniel Robbins, President and CEO of > GenToo technologies. Learn everything from fundamentals to system > administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click > _______________________________________________ > Html-template-users mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/html-template-users ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click _______________________________________________ Html-template-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/html-template-users