Michael -- > Here's a new proposal for solving the multiple template parsing problem > when die_on_bad_params is enabled. Add another callback to > CGI::Application: > > loaded_html_tmpl > > This gets called with the newly created template object before it gets > returned to the user. CAP::AnyTemplate and CAP::TT would not call this > hook. > > Plugins wishing to automatically pass variables to templates would do > the following: > > * hook the 'load_tmpl' callback > - if html_tmpl_class isa 'HTML::Template' then return. > - Otherwise, add parameters to $tmpl_params > > * hook the 'loaded_html_template' callback > - return unless html_tmpl_class isa 'HTML::Template' > - check $ht_params for die_on_bad_params (default to 1) > - if die_on_bad_params is enabled, use HTML::Template's query method > to determine whether or not it is safe to add the parameter. > - if it is safe, add the parameter via $tmpl->param(); > > I don't know how many people use die_on_bad_params, so I don't > know how worth it it is to modify the core. > > However, this hook would improve performance for users of > die_on_bad_params when using plugins that automatically add > template values, and it would greatly simplify the code required in > each of these plugins.
How would your propose to deal with the "HTML::Template-like" modules that do not pass the "isa HTML::Template" test but are generally compatible? Could we test for the features we need instead of the classes they come from? Mark -- . . . . . . . . . . . . . . . . . . . . . . . . . . . Mark Stosberg Principal Developer [email protected] Summersault, LLC 765-939-9301 ext 202 database driven websites . . . . . http://www.summersault.com/ . . . . . . . . ##### CGI::Application community mailing list ################ ## ## ## To unsubscribe, or change your message delivery options, ## ## visit: http://www.erlbaum.net/mailman/listinfo/cgiapp ## ## ## ## Web archive: http://www.erlbaum.net/pipermail/cgiapp/ ## ## Wiki: http://cgiapp.erlbaum.net/ ## ## ## ################################################################
