HTML::Template::Extension::HEAD_BODY.3pm

Langue: en

Version: 2007-01-16 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

HTML::Template::Extension::HEAD_BODY - Plugins for html file

SYNOPSIS

  use HTML::Template::Extension;
 
 
  my $text = qq
     |
      <HTML>
         <HEAD>
             <meta http-equiv="Content-Language" content="it">
             <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
             <title>Test Page</title>
             <STYLE>
             body
                     {
                             font-family: Verdana, Arial, Helvetica;
                             background-color: rgb(0,0,0);
                             color: rgb(102,255,51);
                     }
             </STYLE>
             <SCRIPT Language="Javascript">
                 function do_nothing {
                     return void;
                 }
             </SCRIPT>
         </HEAD>
         <BODY backgroud="#FFFFFF">
             <H1>This is a template example...</H1>
                 The sum between 1+1 is: <TMPL_VAR NAME="result">
         </BODY>
      </HTML>
     |;
 
 
  my $comp       = new HTML::Template::Extension(
                                             scalarref => \$text,
                                             plugins=>["HEAD_BODY"],
                                             );
 
 
  $comp->param('result' => 1+1);
 
 
  print $comp->output;
 
 
  #  OUTPUT:
  #
  #   <HTML>
  #      <HEAD>
  #              <SCRIPT Language="Javascript">
  #                      function do_nothing {
  #                              return void;
  #                      }
  #              </SCRIPT>
  #      </HEAD>
  #      <BODY backgroud="#FFFFFF">
  #              <H1>This is a template example...</H1>
  #                      The sum between 1+1 is: 2
  #      </BODY>
  #   </HTML>
 
 
  $comp->autoDeleteHeader(1);
  print $comp->output;
 
 
  #  OUTPUT:
  #
  #              <H1>This is a template example...</H1>
  #                      The sum between 1+1 is: 2
 
 
  print $comp->header;
 
 
  # OUTPUT:
  #
  #       <HTML>
  #       <HEAD>
  #               <meta http-equiv="Content-Language" content="it">
  #               <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  #               <title>Test Page</title>
  #               <STYLE>
  #               body
  #                       {
  #                               font-family: Verdana, Arial, Helvetica;
  #                               background-color: rgb(0,0,0);
  #                               color: rgb(102,255,51);
  #                       }
  #               </STYLE>
  #           <SCRIPT Language="Javascript">
  #               function do_nothing {
  #                   return void;
  #               }
  #           </SCRIPT>
  #       </HEAD>
  #       <BODY backgroud="#FFFFFF">
 
 
  print $comp->header_js;
 
 
  # OUTPUT:
  #
  #              <SCRIPT Language="Javascript">
  #                      function do_nothing {
  #                              return void;
  #                      }
  #              </SCRIPT>
 
 
  print $comp->header_css;
 
 
  # OUTPUT:
  #
  #               <STYLE>
  #               body
  #                       {
  #                               font-family: Verdana, Arial, Helvetica;
  #                               background-color: rgb(0,0,0);
  #                               color: rgb(102,255,51);
  #                       }
  #               </STYLE>
 
 
  print $comp->body_attributes;
 
 
  # OUTPUT:
  #
  # backgroud="#FFFFFF"
 
 
  print Data::Dumper::Dumper($comp->header_tokens);
 
 
  # OUTPUT:
  #
  #      $VAR1 = {
  #         'style' => [
  #                      [
  #                        '<STYLE>',
  #                        '
  #               body
  #                       {
  #                               font-family: Verdana, Arial, Helvetica;
  #                               background-color: rgb(0,0,0);
  #                               color: rgb(102,255,51);
  #                       }
  #               ',
  #                        '</STYLE>'
  #                      ]
  #                    ],
  #         'meta' => [
  #                     [
  #                       '<meta http-equiv="Content-Language" content="it">',
  #                       '
  #               ',
  #                       undef
  #                     ],
  #                     [
  #                       '<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">',
  #                       '
  #               ',
  #                       undef
  #                     ]
  #                   ],
  #         'title' => [
  #                      [
  #                        '<title>',
  #                        'Test Page',
  #                        '</title>'
  #                      ]
  #                    ],
  #         'script' => [
  #                       [
  #                         '<SCRIPT Language="Javascript">',
  #                         '
  #               function do_nothing {
  #                   return void;
  #               }
  #           ',
  #                         '</SCRIPT>'
  #                       ]
  #                     ]
  #       };
 
 

DESCRIPTION

This plugin add nothing syntax to HTML::Template but add some methods usefull for parsing html template in an environment where web pages are built embedding more little html templates (have you see my HTML::Puzzle CPAN module?).

It add a costructor parameter ``autoDeleteHeader'' that, is set to 1, automatically remove html header returning only html code inside BODY tag.

If you have see HTML::Template::Extension::CSTART plugin this is equivalent to

  <HTML>
         <HEAD>
         </HEAD>
         <BODY>
                 <TMPL_CSTART>
                 ...
                 </TMPL_CSTART>
         </BODY>
  </HTML>
 
 

But more than this a ``header'' method will be added to return removed header.

It also have a ``js_header'' method to return javascript code present in the header.

AUTHOR

Bruni Emiliano, <info@ebruni.it>

SEE ALSO

  HTML::Template
  HTML::Template::Extension::DO_NOTHING
  HTML::Template::Extension::SLASH_VAR
  HTML::Template::Extension::CSTART
  HTML::Template::Extension::DOC
  HTML::Template::Extension::HEAD_BODY