=head1 DESCRIPTION
-This is the default view class for Maypole; it uses the Template Toolkit to
-fill in templates with the objects produced by Maypole's model classes. Please
-see the L<Maypole manual|Maypole::Manual>, and in particular, the
+This is the default view class for Maypole; it uses the Template Toolkit to fill
+in templates with the objects produced by Maypole's model classes. Please see
+the L<Maypole manual|Maypole::Manual>, and in particular, the
L<view|Maypole::Manual::View> chapter for the template variables available and
for a refresher on how template components are resolved.
=head1 TEMPLATE TOOLKIT INTRODUCTION
-The Template Toolkit uses it's own mini language described in L<Template::Manual::Directives>.
+The Template Toolkit uses it's own mini language described in
+L<Template::Manual::Directives>.
A simple example would be :
=back
-TT uses '[%' and '%]' (by default) to delimit directives within a template, and the simple directives
-above just display the value of variable named within those delimiters -- [% title %] will be replaced
-inline with the value of the 'title' variable passed in the 'stash' to the template when it is processed.
+TT uses '[%' and '%]' (by default) to delimit directives within a template, and
+the simple directives above just display the value of variable named within
+those delimiters -- [% title %] will be replaced inline with the value of the
+'title' variable passed in the 'stash' to the template when it is processed.
-You can access nested data through the dot ('.') operator, which will dereference array or hash elements,
-but can also be used to call methods on objects, i.e. '[% name.salutation("Dear %s,") %]'. The other main
-operator is underscore ('_'), which will concatonate strings or variables.
+You can access nested data through the dot ('.') operator, which will
+dereference array or hash elements, but can also be used to call methods on
+objects, i.e. '[% name.salutation("Dear %s,") %]'. The other main operator is
+underscore ('_'), which will concatonate strings or variables.
-The value returned by a directive replaces the directive inline when the template is processes, you can also
-SET a value which will not return anything, or CALL a method or operation which will also not return anything.
+The value returned by a directive replaces the directive inline when the
+template is processes, you can also SET a value which will not return anything,
+or CALL a method or operation which will also not return anything.
-You can specify expressions using the logical (and, or, not, ?:) and mathematic operators (+ - * / % mod div).
+You can specify expressions using the logical (and, or, not, ?:) and mathematic
+operators (+ - * / % mod div).
=over 4
=back
-TT allows you to include or re-use templates through it's INCLUDE, PROCESS and INSERT directives, which
-are fairly self explainatory. You can also re-use parts of template with the BLOCK or MACRO directives.
+TT allows you to include or re-use templates through it's INCLUDE, PROCESS and
+INSERT directives, which are fairly self explainatory. You can also re-use parts
+of template with the BLOCK or MACRO directives.
-Conditional and Looping constructs are simple and powerful, and TT provides an inbuilt iterator and helper
-functions and classes that make life sweet.
+Conditional and Looping constructs are simple and powerful, and TT provides an
+inbuilt iterator and helper functions and classes that make life sweet.
-Conditional directives are IF, UNLESS, ELSIF, ELSE and behave as they would in perl :
+Conditional directives are IF, UNLESS, ELSIF, ELSE and behave as they would in
+perl :
=over 4
Looping directives are FOREACH, LAST and BREAK.
-FOREACH loops through a HASH or ARRAY processing the enclosed block for each element.
+FOREACH loops through a HASH or ARRAY processing the enclosed block for each
+element.
Looping through an array
The LAST and BREAK directive can be used to exit the loop.
-The FOREACH directive is implemented using the Template::Iterator module. A reference
-to the iterator object for a FOREACH directive is implicitly available in the 'loop' variable.
-The loop iterator object provides a selection of methods including size(), max(), first(), last(),
-count(), etc
+The FOREACH directive is implemented using the Template::Iterator module. A
+reference to the iterator object for a FOREACH directive is implicitly available
+in the 'loop' variable. The loop iterator object provides a selection of methods
+including size(), max(), first(), last(), count(), etc
=over 4
See Template::Iterator for further details on looping and the Iterator.
-You might notice the minus ('-') operator in the example above, it is used to remove a newline
-before or after a directive so that you can layout the Template logic as above but the resulting
-output will look exactly how you require it.
+You might notice the minus ('-') operator in the example above, it is used to
+remove a newline before or after a directive so that you can layout the Template
+logic as above but the resulting output will look exactly how you require it.
-You will also frequently see comments and multi-line directives, # at the start of a directive
-marks it as a comment, i.e. '[%# this is a comment %]'. A multiline directive looks like :
+You will also frequently see comments and multi-line directives, # at the start
+of a directive marks it as a comment, i.e. '[%# this is a comment %]'. A
+multiline directive looks like :
[% do.this;
do.that;
do.the_other %]
-You can see that lines are terminated with a semi-colon (';') unless the delimter ('%]') closes the directive.
+You can see that lines are terminated with a semi-colon (';') unless the
+delimter ('%]') closes the directive.
-For full details of the Template Toolkit see Template::Manual and Template::Manual::Directives, you can
-also check the website, mailing list or the Template Toolkit book published by O Reilly.
+For full details of the Template Toolkit see Template::Manual and
+Template::Manual::Directives, you can also check the website, mailing list or
+the Template Toolkit book published by O Reilly.
=head1 TEMPLATE PLUGINS, FILTERS AND MACROS
-The Template Toolkit has a popular and powerful selection of Plugins and Filters.
+The Template Toolkit has a popular and powerful selection of Plugins and
+Filters.
-TT Plugins provide additional functionality within Templates, from accessing CGI and
-databases directly, handling paging or simple integration with Class::DBI (for those
-rare occasions where you don't actually need Maypole). See L<Template::Manual::Plugins>.
+TT Plugins provide additional functionality within Templates, from accessing CGI
+and databases directly, handling paging or simple integration with Class::DBI
+(for those rare occasions where you don't actually need Maypole). See
+L<Template::Manual::Plugins>.
One plugin that is indispensible when using Maypole and the Template View is
-C<Template::Plugin::Class> -- This allows you to import and use any class installed
-within a template. For example :
+C<Template::Plugin::Class> -- This allows you to import and use any class
+installed within a template. For example :
=over 4
=back
-Would do the equivilent of 'use Foo; Foo->bar;' in perl. See L<Template::Plugin::Class>
-for details.
+Would do the equivilent of 'use Foo; Foo->bar;' in perl. See
+L<Template::Plugin::Class> for details.
-TT Filters process strings or blocks within a template, allowing you to truncate,
-format, escape or encode trivially. A useful selection is included with Template Toolkit
-and they can also be found on CPAN or can be written easily.
-See L<Template::Manual::Filters>.
+TT Filters process strings or blocks within a template, allowing you to
+truncate, format, escape or encode trivially. A useful selection is included
+with Template Toolkit and they can also be found on CPAN or can be written
+easily. See L<Template::Manual::Filters>.
-TT Macros allow you to reuse small blocks of content, directives, etc. The MACRO directive
-allows you to define a directive or directive block which is then evaluated each time the
-macro is called. Macros can be passed named parameters when called.
+TT Macros allow you to reuse small blocks of content, directives, etc. The MACRO
+directive allows you to define a directive or directive block which is then
+evaluated each time the macro is called. Macros can be passed named parameters
+when called.
-Once a MACRO is defined within a template or 'include'd template it can be used as if it
-were a native TT directive. Maypole provides a selection of powerful and useful macros
-in the templates/ directory of the package and these are used in the beerdb and default
-templates. See the MACRO section of the L<Template::Manual::Directives> documentation.
+Once a MACRO is defined within a template or 'include'd template it can be used
+as if it were a native TT directive. Maypole provides a selection of powerful
+and useful macros in the templates/ directory of the package and these are used
+in the beerdb and default templates. See the MACRO section of the
+L<Template::Manual::Directives> documentation.
=head1 MAYPOLE MACROS AND FILTERS