This module is a subclass of Template::TT3::Service for adding a page header to a processed template.
Used to specify the default template that should be used for a header. 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 $header = Template::TT3::Services->service( header => 'site/header.tt3', );
is syntactic sugar for:
my $header = Template::TT3::Services->service( header => { template => 'site/header.tt3', }, );
This can be used to change the name of the service component. The default
name is header
. If a header
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', header => 'my/header.tt3', # over-ride default header template );
If you want to have several different header services in the same pipeline
then you should give them unique names. For example, you might set one to
site_header
and the other to section_header
. This allows you to
change the name of either independently.
$pipeline->( context => $context, input => 'example.tt3', site_header => 'site/header.tt3', section_header => 'section/products/header.tt3', );
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 header
, or whatever
alternate
name
the service has been given (e.g. site_header
,
section_header
, etc). If the item isn't specified then it instead uses the
default header
template
defined when the service is created. If that is
undefined or set to a false value (e.g. 0
or the empty string ''
) then
no header is added.
Otherwise it processes the header template and then executes the $pipeline
function to render the rest of the service pipeline. It returns the output
generated from the header concatenated with that returned by the $pipeline
function. If no header is specified then it returns only the output from the
$pipeline
function.
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::Footer , Template::TT3::Service::Wrapper , Template::TT3::Service::Layout , Template::TT3::Service::Before and Template::TT3::Service::After .