X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2FMaypole%2FView%2FTT.pm;h=6f9fbc6bbc7115278c717983066e403670c7c9aa;hb=6c19a422c2c4bc3457f311ffc0403b8644690074;hp=1ea4a8efb663a8717c65331c9ae80445c2a0c9c9;hpb=4a8ca505c7550ed92d136b71824e29cd8a13ce44;p=maypole.git diff --git a/lib/Maypole/View/TT.pm b/lib/Maypole/View/TT.pm index 1ea4a8e..6f9fbc6 100644 --- a/lib/Maypole/View/TT.pm +++ b/lib/Maypole/View/TT.pm @@ -58,9 +58,9 @@ Maypole::View::TT - A Template Toolkit view class for Maypole =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, 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, and in particular, the L chapter for the template variables available and for a refresher on how template components are resolved. @@ -78,7 +78,8 @@ Processes the template and sets the output. See L =head1 TEMPLATE TOOLKIT INTRODUCTION -The Template Toolkit uses it's own mini language described in L. +The Template Toolkit uses it's own mini language described in +L. A simple example would be : @@ -94,18 +95,22 @@ enclose more details of ... =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 @@ -117,13 +122,15 @@ You can specify expressions using the logical (and, or, not, ?:) and mathematic =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 @@ -141,7 +148,8 @@ Conditional directives are IF, UNLESS, ELSIF, ELSE and behave as they would in p 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 @@ -163,10 +171,10 @@ Looping through an array of hashes 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 @@ -180,33 +188,38 @@ count(), etc 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. +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. One plugin that is indispensible when using Maypole and the Template View is -C -- This allows you to import and use any class installed -within a template. For example : +C -- This allows you to import and use any class +installed within a template. For example : =over 4 @@ -215,22 +228,24 @@ within a template. For example : =back -Would do the equivilent of 'use Foo; Foo->bar;' in perl. See L -for details. +Would do the equivilent of 'use Foo; Foo->bar;' in perl. See +L 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. +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. -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 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 documentation. =head1 MAYPOLE MACROS AND FILTERS