NAME CGI::AppBuilder - Configuration initializer SYNOPSIS use CGI::AppBuilder; my $cg = CGI::AppBuilder->new('ifn', 'my_init.cfg', 'opt', 'vhS:a:'); my $ar = $cg->get_inputs; DESCRIPTION There are already many application builders out there. Why you need another one? Well, if you are already familiar with CGI::Builder or CGI::Application, this one will provide some useful methods to you to read your configuration file and pre-process your templates. Please read on. new (ifn => 'file.cfg', opt => 'hvS:') Input variables: $ifn - input/initial file name. $opt - options for Getopt::Std Variables used or routines called: None How to use: my $ca = new CGI::AppBuilder; # or my $ca = CGI::AppBuilder->new; # or my $ca = CGI::AppBuilder->new(ifn=>'file.cfg',opt=>'hvS:'); # or my $ca = CGI::AppBuilder->new('ifn', 'file.cfg','opt','hvS:'); Return: new empty or initialized CGI::AppBuilder object. This method constructs a Perl object and capture any parameters if specified. It creates and defaults the following variables: $self->{ifn} = "" $self->{opt} = 'hvS:'; start_app ($prg,$arg,$nhh) Input variables: $prg - program name $arg - array ref for arguments - %ARGV $nhh - no html header pre-printed 1 - no HTML header is set in any circumstance 0 - HTML header will be set when it is possible Variables used or routines called: build_html_header - build HTML header array Debug::EchoMessage echoMSG - echo messages start_log - start and write message log CGI::Getopt get_inputs - read input file and/or CGI form inputs How to use: my ($q, $ar, $ar_log) = $self->start_app($0,\@ARGV); Return: ($q,$ar,$ar_log) where $q - a CGI object $ar - hash ref containing parameters from input file and/or CGI form inputs and the following elements: ifn - initial file name opt - command input options cfg - configuratoin array html_header - HTML header parameters (hash ref) msg - contain message hash $ar_log - hash ref containing log information This method performs the following tasks: 1) initial a CGI object 2) read initial file if specified or search for a default file (the same as $prg with .ini extension) and save the file name to $ar->{ifn}. 3) define message level 4) start HTML header and body using I and I if they are defined. 5) parse CGI form inputs and combine them with parameters defined in initial file 6) read configuration file ($prg.cfg) if it exists and save the array to $ar->{cfg} 7) prepare log record if write log is enabled It checks the parameters read from initial file for page_title, page_style, page_author, page_meta, top_nav, bottom_nav, and js_src. end_app ($q, $ar, $ar_log) Input variables: $q - CGI object $ar - array ref for parameters $ar_log - hash ref for log record Variables used or routines called: Debug::EchoMessage echoMSG - echo messages end_log - start and write message log set_param - get a parameter from hash array How to use: my ($q, $ar, $ar_log) = $self->start_app($0,\@ARGV); $self->end_app($q, $ar, $ar_log); Return: none This method performs the following tasks: 1) ends HTML document 2) writes log records to log files 3) close database connection if it finds DB handler in {dbh} build_html_header ($q, $ar) Input variables: $q - CGI object $ar - array ref for parameters Variables used or routines called: Debug::EchoMessage echoMSG - echo messages set_param - get a parameter from hash array How to use: my $ifn = 'myConfig.ini'; my ($q,$ar) = $s->get_inputs($ifn); my $hrf = $self->build_html_header($q, $ar); Return: hash array or array ref This method performs the following tasks: 1) check the following parameters: page_title, page_style, page_meta, page_author, page_target, js_src, 2) writes log records to log files 3) close database connection if it finds DB handler in {dbh} disp_form ($q, $ar) Input variables: $q - CGI object $ar - array ref for parameters Variables used or routines called: Debug::EchoMessage echoMSG - echo messages set_param - get a parameter from hash array How to use: my $ifn = 'myConfig.ini'; my ($q,$ar) = $s->get_inputs($ifn); $self->disp_form($q, $ar); Return: none This method expects the following varialbes: gi - GUI items gc - GUI columns gf - GUI form db - database connection varialbes (optional) vars_keep - variables separated by comma for hidden variables This method performs the following tasks: 1) checks whether GI, GC and GF variables being defined. 2) replaces AR, DB, GI, and GC variables with their contents 3) builds GF elements 4) add hidden variables 5) print the form HISTORY * Version 0.10 This version is to extract out the app methods from CGI::Getopt class. It was too much for CGI::Getopt to include the start_app, end_app, build_html_header, and disp_form methods. * Version 0.11 Rewrote start_app method so that content-type can be changed. SEE ALSO (some of docs that I check often) CGI::Getopt, Oracle::Loader, Oracle::Trigger, CGI::AppBuilder, File::Xcopy, Debug::EchoMessage 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)