Revision history for CGI-Application-Plugin-AnyTemplate
0.10_01 July 25, 2005 [**DEVELOPER RELEASE**]
- this version has several API changes that are not backwards compatible:
- template names used to be automatically determined from the name
of the calling subroutine:
sub my_runmode {
my $self = shift;
$self->other_method;
}
sub other_method {
my $self = shift;
$self->template->fill; # loads 'other_method.html'
}
There were two problems with this method:
1. Not every subroutine or method is a run mode
2. Under debuggers, the name of the calling subroutine is
often not available, so code that uses automatic
template names can't be run under a debugger.
So now AnyTemplate has been changed to get the template name
from $self->get_current_runmode:
sub my_runmode {
my $self = shift;
$self->other_method;
}
sub other_method {
my $self = shift;
$self->template->fill; # loads 'my_runmode.html'
}
If you want to pass control to another runmode and you want
$self->get_current_runmode to be updated, then you use the
new 'forward' method:
sub my_runmode {
my $self = shift;
return $self->forward('other_runmode');
}
sub other_runmode {
my $self = shift;
$self->template->fill; # loads 'other_runmode.html'
}
- template_pre_process and template_post_process are no longer
called automatically. Instead you must register them as
hooks.
$self->add_callback('template_pre_process', \&template_pre_process);
$self->add_callback('template_post_process', \&template_post_process);
- associate_query and emulate_associate_query have now been
disabled by default. Having this feature enabled by default
was a potential XSS (Cross Site Scripting) security risk.
The use of this feature is now deprecated. The feature
will be removed in the future
- other changes:
- added option to override load_tmpl. It is enabled by:
use CGI::Application::Plugin::AnyTemplate qw(load_tmpl);
When this feature is enabled, you can do the following:
$self->load_tmpl('somefile.txt',
path => '/path/to/templates',
%other_options
);
And this is translated into:
$self->template->load('somefile.txt',
add_include_path => '/path/to/templates',
HTMLTemplate => \%other_options,
auto_add_template_extension => 0,
);
- added support for the load_tmpl hook, compatible with the
one built into CGI::Application
- $self->tmpl_path is now merged into 'include_path'
- documentation for authors of plugins and re-usable applications
- documentation for why the automatic extension mechanism is there
- re-numbered some test scripts
0.08 July 20, 2005
- fixed bug where keys of configuration hashref were clobbered,
so if you used the same config repeatedly (e.g. under
mod_perl), onlyt the first call would work.
(thanks to R.A. Jones)
0.07 July 10, 2005
- templates can also be created from strings via fill:
return $self->template->fill(\$some_text, \%params);
0.06 July 10, 2005
- allowed templates to be created from strings (works in all
drivers except Petal):
$self->template->load(string => \$some_text);
$self->template->load(\$some_text);
0.05 Jun 15, 2005
- changed embedded components from 'dispatch' to 'embed' to
avoid confusion with CGI::Application::Dispatch
This is an incompatible API change, which hopefully won't
actually affect anybody since I don't think there are any
users of AnyTemplate yet.
The default syntax has changed from:
CGIAPP_dispatch, CGIAPP.dispatch, CGIAPP/dispatch, etc.
to:
CGIAPP_embed, CGIAPP.embed, CGIAPP/embed, etc.
The old syntax still works to embed components in TT and
Petal (but is undocumented). Users of HTML::Template and
HTML::Template::Expr can return to the old syntax by setting
embed_tag_name to 'cgiapp_dispatch'
Related API changes:
- CAP:AnyTemplate::Dispatcher has been renamed to
CAP:AnyTemplate::ComponentHandler
- the dispatcher_class option has been renamed to
component_handler class
- the dispatch_tag_name driver config key has been renamed to
embed_tag_name
0.04 May 19, 2005
- fixed Pod links and other minor doc issues
0.03 May 19, 2005
- Fixed one More POD NAME error
0.02 May 19, 2005
- Fixed NAME sections in driver POD
0.01 May 18, 2005
- Initial Release