NAME
Postgres::Handler::HTML - HTML Component for PostgreSQL data.
DESCRIPTION
Accessors for PostgreSQL data. Simplifies data access through a series of standard class methods.
SYNOPSIS
# Instantiate Object
#
use Postgres::Handler;
my $DB = Postgres::Handler->new(dbname=>'products',dbuser=>'postgres',dbpass=>'pgpassword');
# Retrieve Data & List Records
#
$DB->PrepLEX('SELECT * FROM products');
while ($item=$DB->GetRecord()) {
print "$item->{PROD_ID}\t$item->{PROD_TITLE}\t$item->{PROD_QTY}\n";
}
# Add / Update Record based on CGI Form
# assuming objCGI is an instatiated CGI object
# if the CGI param 'prod_id' is set we update
# if it is not set we add
#
my %cgimap;
foreach ('prod_id','prod_title','prod_qty') { $cgimap{$_} = $_; }
$DB->AddUpdate( CGI=>$objCGI , CGIKEY=>'prod_id',
TABLE=>'products', DBKEY=>'prod_id',
hrCGIMAP=>\%cgimap
);
EXAMPLE
#!/usr/bin/perl
#
# Connect to the postgres XYZ database owned by user1/mypass
# Set the primary key field for the abc table to the field named pkid
# Print the contents of the fldone field in the abc table where the pkid=123
#
use Postgres::Handler::HTML;
our $STORE = Postgres::Handler::HTML->new(dbname=>'xyz', dbuser=>'user1', dbpass=>'mypass');
$STORE->data('abc!PGHkeyfld'=>'pkid');
$STORE->ShowThe('abc!fldone',123);
exit(1);
REQUIRES
Subclass of Postgres::Handler
Postgres::Handler
+- CGI::Carp
+- CGI::Util
+- Class::Struct
+- DBI
METHODS
CheckBox()
Produce an HTML Checkbox for the specified boolean field
Parameters
TABLE => name of table to get data from
CBNAME => name to put on the checkbox, defaults to VALUE
VALUE => field that contains the t/f use to set the checkmark
LABEL => what to put next to the checkbox as a label (defaults to field name)
KEY => value of the key used to lookup the data in the database
CHECKED => set to '1' to check by default if KEY not found
SCRIPT => script tags (or class tags) to add to checkbox HTML
NOLABEL => set to '1' to skip printing of label
Action
prints out the HTML Checkbox, checked if field is true
Return
0 = failure, sets error message, get with lasterror()
1 = success
Pulldown()
Produce an HTML pulldown menu for the specified table/fields
Parameters
TABLE => name of table to get data from
PDNAME => name to put on the pulldown, defaults to VALUE
VALUE => which field we stick into the option values
SHOW => which field we spit out on the selection menu, defaults to VALUE
SELECT => mark the one with this VALUE as selected
ALLOWBLANK => set to 1 to allow blank selection (noted as ---)
ORDERBY => special ordering, defaults to SHOW field
WHERE => filtering selection clause (without WHERE, i.e. pdclass='class1')
SCRIPT => event script, such as 'onChange="DoSumthin();"'
PREADD => address to hashref of Add-ons for begining of list
key = the value
content = show
GROUP => group the data
Action
prints out the HTML pulldown
RadioButtons()
Produce an HTML Radio Button menu for the specified table/fields
Parameters
TABLE => name of table to get data from
RBNAME => name to put on the pulldown, defaults to VALUE
VALUE => which field we stick into the option values
SHOW => which field we spit out on the menu, defaults to VALUE
SELECT => mark the one with this VALUE as selected
ORDERBY => special ordering, defaults to SHOW field
WHERE => filtering selection clause (without WHERE, i.e. rbclass='class1')
Action
prints out the HTML Radio Buttons
ShowHeader()
Display header for retrieved records in an HTML <table> row
One of these 2 id required
DATAREF => reference to hash storing record
DISPCOLS => reference to array of columns to show, defaults to hash key names
Optional parameters
FULLNAME => set to 1 to show full field name, otherwise we trunc up to first _
SORT => set to 1 to sort keys
ShowRecord()
Display retrieved records in an HTML <table> row
Parameters
DATAREF => reference to hash storing record (required)
DATAMODREF => reference to hash storing data modifiers
The field specified by the hash key is replaced
with the data specified in the value.
Use $Record{???} to place the record field ??? within
the substitution string.
If the modifier starts with ~eval(<blah>) then the modifier
evaluates <blah> and returns it's result. For example:
$datmodref{THISFIELD} = '~eval(substr($Record{FIELD},0,10))';
would display the first 10 characters of the field.
DISPLAYREF => reference to hash storing special cell formats for
each data element. Key = element, value = <td> modifier
DISPCOLS => reference to array of columns to show, defaults to hash key names
TRIMDATES => set to 'minute' or 'day' to trim date fields
date fields are any ending in 'LASTUPDATE'
WRAP => set to 1 to allow data wrapping
SORT => set to 1 to sort keys
ASFORM => set to 1 to show data as input form fields
NOTABLE => set to 1 to drop all table html tags
OUTPUT => output file handle
ROWMOD => modifier to <tr> row definition
CELLMOD => modifier to each <td> Cell definition
ValOrZero()
Set these CGI parameters to 0 if not defined. Used for checkbox
form variables when we want to ensure the value is set to 0 (false)
if they are not set via the CGI interface.
HTML checkboxes are NOT passed to the CGI module if they are not
checked, so this function helps us out by forcing the assumption
that the CGI parameters passed here should be 0 if the are not
received.
Parameters
[0] - the CGI variable
[1] - an array of CGI parameters to be set
Action
Sets the named CGI parameters to 0 if they are not set, otherwise
leaves the original value intact.
ShowThe
Load the DB record and spit out the value of the specified field
- Parameters
-
Parameters are positional. Required <0> field name to be displayed in "table!field" format <1> key, lookup the record based on the Postgres::Handler key that has been set for this field. Reference the Postgres::Handler->Field method for more info. Optional [2] trim to this many characters
AUTHOR
Cyber Sprocket Labs, Advanced Internet Technology Consultants
Contact info@cybersprocket.com for more info.
ABOUT CSL
Cyber Sprocket Labs (CSL) is and advanced internet technology
consulting firm based in Charleston South Carolina. We provide custom
software, database, and consulting services for small to mid-sized
businesses.
For more information, or to schedule a consult, visit our website at
www.cybersprocket.com
CONTRIBUTIONS
Like the script and want to contribute?
You can send payments via credit card or bank transfer using
PayPal and sending money to our paypal@cybersprocket.com PayPal address.
COPYRIGHT
(c) 2008, Cyber Sprocket Labs
This script is covered by the GNU GENERAL PUBLIC LICENSE.
View the license at http://www.gnu.org/copyleft/gpl.html
REVISION HISTORY
v1.0 - May 2008
Attach to Postgres::Handler via use base() construct
Cleaned up perldocs
Build new distro so we can do routine updates
v0.9 - January 2006
GROUP option on Pulldown()
Added some docs, minor code cleanup
v0.8 - September 2005
PREADD option on Pulldown()
v0.7 - August 2005
minor updates
v0.6 - Jun 13 2005
added script option to checkbox type
added no label option to checkbox type
v0.5 - Jun 09 2005
moved under Postgres::Handler:: namespace
initial CPAN release
v0.4 - Apr 28 2005
pod updates
Updated CheckBox() w/ default 'checked' option
Added ShowThe() method
v0.1 - Dec/2004
Initial private release