Revision history for CGI-Application-Plugin-AnyTemplate
0.18 Oct 18, 2009
This is how I simulate the absense of specific modules when
running the test suite. For instance, the user may have
HTML::Template::Expr installed, but not HTML::Template::Pluggable.
Or they may have Clone::PP installed, but not Clone.
To test the various prerequisite scenarios, use the included
prove-prereqs.pl script:
./misc/prove-prereqs.pl t/prereq_scenarios -Ilib t/
This runs the test suite several times. Each time it simulates
a different set of unavailable modules.
Adapted from the Perl Hacks book.
- fixed the makedocs script to work with more recent pod2html
- changed noindex to no_index in META.yml
0.17 Nov 07, 2005
0.16 Nov 03, 2005
0.15 Oct 03, 2005
0.14 Sep 25, 2005
0.13 Sep 14, 2005
0.12 Sep 13, 2005
0.11 Sep 08, 2005
$self->template->fill('filename');
$self->template->fill(\$template);
- fixed a bug in template_post_process that has been there since
the beginning. The callback was being called as:
template_post_process($self, \$output) # wrong!
But it was documented as:
template_post_process($self, $template, \$output) # right!
It's been fixed to match the documentation.
0.10 Aug 17, 2005
The new features are:
The incompatibilities are:
0.10_06 Aug 17, 2005 [**DEVELOPER RELEASE**] [unreleased]
0.10_05 Aug 13, 2005 [**DEVELOPER RELEASE**]
$ perl misc/prove_without_modules.pl t/*.t
To customize this process, see the instructions at the top of
misc/prove_without_modules.pl
0.10_04 Aug 13, 2005 [**DEVELOPER RELEASE**]
0.10_03 July 27, 2005 [**DEVELOPER RELEASE**]
0.10_02 July 25, 2005 [**DEVELOPER RELEASE**]
if ($webapp->can('call_hook')) { ... }
...or equivalent, so CGI::Application 4.x is not required.
0.10_01 July 25, 2005 [**DEVELOPER RELEASE**]
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
0.07 July 10, 2005
return $self->template->fill(\$some_text, \%params);
0.06 July 10, 2005
$self->template->load(string => \$some_text);
$self->template->load(\$some_text);
0.05 Jun 15, 2005
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.
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
0.03 May 19, 2005
0.02 May 19, 2005
0.01 May 18, 2005