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 ($q, $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: $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: Return: HTML codes. This method generates HTML codes based on the information provided. This method is also called frameset. 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) POD ERRORS Hey! The above document had some coding errors, which are explained below: Around line 252: You forgot a '=back' before '=head1'