This module is a subclass of Template::TT3::Service for running a template before the main page template is processed. It is typically used to process site-wide configuration templates.
Unlike the
header
service, no output is
generated from the before
template. Although configuration template are
usually employed to pre-define some global variables, functions, macros, etc.,
and don't intentionally generate any content, it's not unusual for them to
have a few trailing newlines that can end up being inserted at the start of
every page generated. The before
service avoids this problem by discarding
any output generated by the template.
Used to specify the default template that should be processed by the before
service. It can be specified as anything that the
Template::TT3::Templates
template()
method will accept, e.g. a
template name, text references, subroutine reference, etc.
template
is the default option for the service. Thus the following:
my $before = Template::TT3::Services->service( before => 'site/config.tt3', );
is syntactic sugar for:
my $before = Template::TT3::Services->service( before => { template => 'site/config.tt3', }, );
This can be used to change the name of the service component. The default
name is before
. If a before
is specified in the environment passed
to the pipeline service function then it will be used in preference to the
default
template
.
$pipeline->( context => $context, input => 'example.tt3', before => 'my/config.tt3', # over-ride default before template );
This module implements the following methods in addition to those inherited from the Template::TT3::Service , Template::TT3::Base and Badger::Base base class modules.
This is the main service method. It is called automatically when the service is bound in a pipeline that is executed. A copy of the environment is passed as the first argument (a reference to a hash array). A reference to a subroutine representing the rest of the pipeline is passed as the second argument.
The method looks in the environment for an item named before
, or whatever
alternate
name
the service has been given. It processes the template,
discards any output generated and then executes the $pipeline
function to render the rest of the service pipeline. It returns the output
generated from the $pipeline
function.
If no before
template is specified, or if it is set to any false value
(e.g. 0
or the empty string ''
) then it goes straight on to call the
$pipeline
function and returns its result.
Andy Wardley http://wardley.org/
Copyright (C) 1996-2009 Andy Wardley. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
This module inherits methods from the Template::TT3::Service , Template::TT3::Base and Badger::Base base classes.
Services are loaded and instantiated by the Template::TT3::Services factory module. This is accessible via the Template::TT3::Hub module. The Template::TT3::Engine::TT3 module uses the services module to construct a template processing pipeline.
Other similar services include Template::TT3::Service::Header Template::TT3::Service::Footer and Template::TT3::Service::After .