NAME
HTML::MagicTemplate - HTML handlers for Text::MagicTemplate used in a HTML environment
VERSION 3.5
Included in MagicTemplate 3.5 distribution.
SYNOPSIS
$mt = new HTML::MagicTemplate ;
# that means
$mt = new Text::MagicTemplate
markers => 'HTML' ,
value_handlers => 'HTML' ;
# that explicitly means
$mt = new Text::MagicTemplate
markers => [ qw( <!--{ / }--> ) ],
value_handlers => [ qw( SCALAR
REF
CODE
TableTiler
ARRAY
HASH
FillInForm ) ] ;
DESCRIPTION
HTML::MagicTemplate is a collection of handlers for Text::MagicTemplate useful when used in a HTML environment. It adds a couple of magic HTML specific value handlers to Text::MagicTemplate default value handlers. Just create and use the MagicTemplate object as usual, to have a trasparent interface to HTML::TableTiler and HTML::FillInForm too.
Other interesting readings about how to use this collection are in:
Text::MagicTemplate (general documentation about the MagicTemplate system)
HTML VALUE HANDLERS
- HTML
-
This is the shortcut for the complete HTML collection of handlers that defines the following value handlers:
SCALAR REF CODE TableTiler ARRAY HASH FillInForm
See "standard value handlers" in Text::MagicTemplate for details about SCALAR REF CODE ARRAY and HASH handlers.
- TableTiler
-
- Condition
-
a bidimensional array value
- Action
-
magic generation of HTML table. No need to create and use a HTML::TableTiler object: this handler will manage it magically.
- Description
-
The bidimensional array:
$matrix_generating_a_table = [ [1..3], [4..6], [7..9] ];
The template could be as simple as a simple label with the same identifier of the bidimensional array:
<p>paragraph text</p> <!--{matrix_generating_a_table}--> <p>other paragraph</p>
so the output will be a generic table including the array data:
<p>paragraph text</p> <table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>4</td> <td>5</td> <td>6</td> </tr> <tr> <td>7</td> <td>8</td> <td>9</td> </tr> </table> <p>paragraph text</p>
or the template could be a complete table Tile included in a block with the same identifier of the bidimensional array, and with the optional ROW and COL TableTiler modes, passed as label attributes:
<p>paragraph text</p> <!--{matrix_generating_a_table H_TILE V_TILE}--> <table border="1" cellspacing="2" cellpadding="2"> <tr> <td><b><i>?</i></b></td> <td>?</td> </tr> <tr> <td>?</td> <td><b><i>?</i></b></td> </tr> </table> <!--{/matrix_generating_a_table}--> <p>other paragraph</p>
so the output will be a complete tiled table including the array data:
<p>paragraph text</p> <table border="1" cellspacing="2" cellpadding="2"> <tr> <td><b><i>1</i></b></td> <td>2</td> <td><b><i>3</i></b></td> </tr> <tr> <td>4</td> <td><b><i>5</i></b></td> <td>6</td> </tr> <tr> <td><b><i>7</i></b></td> <td>8</td> <td><b><i>9</i></b></td> </tr> </table> <p>paragraph text</p>
See HTML::TableTiler for details about this module.
Note: if your template don't need this specific handler you can avoid its loading by explicitly omitting it:
$mt = new HTML::MagicTemplate value_handlers => [ qw( SCALAR REF CODE ARRAY HASH FillInForm ) ] ;
Warning: since this handler checks for a bidimensional ARRAY, it must be checked BEFORE the ARRAY value handler in order to work.
- FillInForm
-
- Condition
-
a CGI query object value (or by a blessed object that has a param() method)
- Action
-
magic fill in of a HTML form with the parameter in the CGI object
- Description
-
The CGI object in your code:
$my_query = new CGI;
If you want to fill a form with the param in the $my_query, just transform the form into a block giving it the same identifier.
<!--{my_query}--> <form action="my.cgi"> ... </form> <!--{/my_query}-->
One useful application of this handler is when a user submits an HTML form without filling out a required field. FillInForm handler will magically redisplay the form with all the form elements (input, textarea and select tags) filled with the submitted info ($my_query), without any other statement in your code. (No need to create and use a HTML::FillInForm object: this handler will manage it magically).
You can use this handler to fill the form with default values too, To do this, just create a new query object and fill it with the default param that you want in the form:
$query = new CGI; $query->param( name => 'John', surname => 'Smith', ...);
See HTML::FillInForm for details about this module.
Note: if your template don't need this specific handler you can avoid its loading by explicitly omitting it:
$mt = new HTML::MagicTemplate value_handlers => [ qw( SCALAR REF CODE TableTiler ARRAY HASH ) ] ;
SEE ALSO
SUPPORT and FEEDBACK
I would like to have just a line of feedback from everybody who tries or actually uses this module. PLEASE, write me any comment, suggestion or request. ;-)
More information at http://perl.4pro.net/?HTML::MagicTemplate.
AUTHOR and COPYRIGHT
© 2003 by Domizio Demichelis <dd@4pro.net>.
All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 260:
Non-ASCII character seen before =encoding in '©'. Assuming CP1252