1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
|
Revision history for CGI-Application-Plugin-AnyTemplate
0.18 Oct 18, 2009
- Can now use Clone::PP if Clone is not installed.
Thanks to Bianka Martinovic (RT #37999). Note that there
doesn't appear to be a way to indicate to Module::Build that
the module can use either Clone or Clone::PP - that it
requires one (but not both) of them. So for now, Clone is
still listed as a prerequisite.
- updated Template::Toolkit driver docs to indicate how to use
different encodings. Thanks to Shmuel Fomberg (RT #34791).
- removed spurious call to $template->error on Petal templates.
Thanks to William McKee (RT #20221).
- Component handler now weakens reference to containing_template,
in an attempt to avoid crazy memory usage. Thanks to Dan Horne
(RT #18157).
- Changes of interest to module maintainers only:
- t/prereqs-scenarios is now included in the distribution.
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
- fixed storage of TT objects so that objects with different
named configs don't trample each other (discovered by RA Jones)
0.16 Nov 03, 2005
- fixed fill() so that when it is called without parameters, it
does not set the filename to undef.
- changed skip_libs to prereq_scenarios (and removed the scenarios
from the distribution)
- added new scenario for old CAP::Forward
0.15 Oct 03, 2005
- include fix to work with old version of CAP::Forward that
doesn't always install its hooks properly.
0.14 Sep 25, 2005
- added template_filename_generator
- minor doc fix
0.13 Sep 14, 2005
- fixd bug where clear_params didn't work (Wojciech Pietron)
- fixed typos in docs regarding include_paths and
add_include_paths (Wojciech Pietron)
- minor doc fix
0.12 Sep 13, 2005
- added return_references option, defaulting to true.
- changed load_tmpl to always return a string, rather than a
reference
- added documentation indicating that output returns a reference
by default
0.11 Sep 08, 2005
- fixed a bug fill/process when called with a single non-hashref
argument. The following used to be broken; now they DWIM:
$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
- This is a major new release with a lot of new features and
some incompatible API changes.
The new features are:
* new driver (HTMLTemplatePluggable) has support for
HTML::Template::Pluggable and HTML::Template::Plugin::Dot
* AnyTemplate can now optionally provide a load_tmpl method
like the one built into CGI::Application, so that old code
can get the benefit of AnyTemplate.
* added support for the load_tmpl hook
* test suite should be less fragile for users who don't have
all of the templating modules installed
The incompatibilities are:
* associate_query off by default
* associate_query now deprecated
* CAP::Forward now required
* default template names determined from $self->current_runmode, not
from the name of the calling sub
* template_pre_process and template_post_process now need to be
explicitly registered with $self->add_callback()
* tmpl_path is respected
- for more info on these changes see the changelog below for the developer
versions released since 0.08
0.10_06 Aug 17, 2005 [**DEVELOPER RELEASE**] [unreleased]
- added an explit test to see if HTML::Template::Plugin::Dot works
0.10_05 Aug 13, 2005 [**DEVELOPER RELEASE**]
- fixed a bug in the tests for testing module prerequisites
- it is now possible to run the test suite while simulating the
absense of specific templating modules. To run the test suite
multiple times (each with a different selection of absent
modules), run:
$ 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**]
- new driver HTMLTemplatePluggable has support for
HTML::Template::Pluggable and HTML::Template::Plugin::Dot
(thanks to Mark Stosberg for starting the driver)
0.10_03 July 27, 2005 [**DEVELOPER RELEASE**]
- moved 'forward' to its own module: CGI::Application::Plugin::Forward
- changed instances of 'use base' to use... and @ISA to be kinder to old Perls
- made hook-based tests skip if installed CGI::Application
doesn't support hooks
0.10_02 July 25, 2005 [**DEVELOPER RELEASE**]
- wrapped usage of CGI::Application's callback system in
if ($webapp->can('call_hook')) { ... }
...or equivalent, so CGI::Application 4.x is not required.
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
|