NAME

CGI::AppBuilder::Frame - Configuration initializer

SYNOPSIS

use CGI::AppBuilder::Frame;

my $ab = CGI::AppBuilder::Frame->new(
   'ifn', 'my_init.cfg', 'opt', 'vhS:a:');
my ($q, $ar, $ar_log) = $ab->start_app($0, \%ARGV);
print $ab->disp_form($q, $ar); 

DESCRIPTION

This class provides methods for reading and parsing configuration files.

new (ifn => 'file.cfg', opt => 'hvS:')

This is a inherited method from CGI::AppBuilder. See the same method in CGI::AppBuilder for more details.

frame_set ($fr, $pr)

Input variables:

$fr - frame set definiton array reference. The $fr contains two
      elements [$hr, $ar]: 
      $hr - a hash ref containing the frame set attributes
      $ar - a array ref containing hash references defining each
            frames in the frame set.
$pr  - tag attribute array ref. It contains three elements:
  class - CSS class name
  attr  - attribute string such as 'width=5 onChange=js_func'
  hr    - hash ref with key and value pairs. This will be obtained
          from $fr for each frame set and frame.
  pretty - whether to add line breaks 

Variables used or methods called:

CGI::AppBuilder::Table
  html_tag - generate HTML tags
CGI::AppBuilder::Message
  echo_msg - display message

How to use:

The following shows how to define the frame array ($fr):

+-+----+    The following defines the left layout:
| | T  |    
| +----+    [{cols=>"150,*"},[     
| |    |       {src=>"left.htm",name=>"L"},  
|L| C  |      [{rows=>"100,*,50"},[           
| |    |         {src=>"top.htm",name=>"T"},   
| |----|         {src=>"main.htm",name=>"C"},
| | B  |         {src=>"bottom.htm",name=>"B"}]]]
+-+----+    ]

In YAML, here is how it looks like:

---
cols: 150,\*
  - src: left.htm
    name: L
  - rows: 100,\*,50
    - src: top.htm
      name: T
    - src: main.htm
      name: C
    - src: bottom.htm
      name: B
...

+-+------+  The following defines the left layout:
| |  T   |  
| +----+-+  [{cols=>"150,*"},[     
| |    | |     {src=>"left.htm",name=>"L"},  
|L| C  |R|     [{rows=>"100,*,50"},[           
| |    | |       {src=>"top.htm",name=>"T"},   
| |    | |       [{cols=>"*,100"},[
| |----+-+         {src=>"main.htm",name=>"C"},
| |      |         {src=>"right.htm",name=>"R"}] ] ],
| |   B  |       {src=>"bottom.htm",name=>"B"}]]
+-+----+-+  ]

In YAML, here is how it looks like:

---
cols: 150,\*
  - src: left.htm
    name: L
  - rows: 100,\*,50
    - src: top.htm
      name: T
    - cols: \*,100
      - src: main.htm
        name: C
      - src: right.htm
        name: R
    - src: bottom.htm
      name: B
...

Here is the testing codes:

my $fr = [{cols=>"150,*"},[
          {src=>"left.htm",name=>"L"},
         [{rows=>"100,*,50"},[
             {src=>"top.htm",name=>"T"},
             {src=>"main.htm",name=>"C"},
             {src=>"bottom.htm",name=>"B"}]
         ]]
       ];
my $pr = {pretty=>1};
print $obj->frame_set($fr,$pr);
# the following is the result:

<FRAMESET cols='150,*'>
  <FRAME src='left.htm' name='L'>
  <FRAMESET rows='100,*,50'>
    <FRAME src='top.htm' name='T'>
    <FRAME src='main.htm' name='C'>
    <FRAME src='bottom.htm' name='B'>
  </FRAMESET>
</FRAMESET>

$pr->{_frameset_count} = 0;  # reset frame set counter
my $f2 = [ {cols=>"150,*"},[
           {src=>"left.htm",name=>"L"},
          [{rows=>"100,*,50"},[
             {src=>"top.htm",name=>"T"},
            [{cols=>"*,100"},[
               {src=>"main.htm",name=>"C"},
               {src=>"right.htm",name=>"R"}]
            ],
             {src=>"bottom.htm",name=>"B"}]
          ]]
   ];
print $obj->frame_set($f2,$pr);
# the following is the result:

<FRAMESET cols='150,*'>
  <FRAME src='left.htm' name='L'>
  <FRAMESET rows='100,*,50'>
    <FRAME src='top.htm' name='T'>
    <FRAMESET cols='*,100'>
      <FRAME src='main.htm' name='C'>
      <FRAME src='right.htm' name='R'>
    </FRAMESET>
    <FRAME src='bottom.htm' name='B'>
  </FRAMESET>
</FRAMESET>

Return: HTML codes.

This method generates HTML codes based on the information provided. This method is also called <I>frameset</I>.

HISTORY

  • Version 0.10

    This version includes the frame_set method.

  • Version 0.20

SEE ALSO (some of docs that I check often)

Oracle::Loader, Oracle::Trigger, CGI::Getopt, File::Xcopy, CGI::AppBuilder, CGI::AppBuilder::Message, CGI::AppBuilder::Log, CGI::AppBuilder::Config, etc.

AUTHOR

Copyright (c) 2005 Hanming Tu. All rights reserved.

This package is free software and is provided "as is" without express or implied warranty. It may be used, redistributed and/or modified under the terms of the Perl Artistic License (see http://www.perl.com/perl/misc/Artistic.html)

1 POD Error

The following errors were encountered while parsing the POD:

Around line 251:

You forgot a '=back' before '=head1'