NAME
CGI::Portal - Extensible Framework for Multiuser Applications
SYNOPSIS
use CGI::Portal;
CGI::Portal::activate({'database_type' => "mysql",
'database_name' => "some_name",
'database_host' => "localhost",
'database_user' => "some_user",
'database_passw' => "some_password",
'user_table' => "users",
'user_index_field' => "id",
'user_user_field' => "user",
'user_passw_field' => "passw",
'user_email_field' => "email",
'add_user_fields' => "first_name,middle_initial,last_name,city,state,country",
'session_table' => "sessions",
'session_index_field' => "id",
'session_sid_field' => "sid",
'session_user_field' => "user",
'session_start_field' => "session_start",
'add_session_fields' => "",
# Modules in the CGI::Portal::Scripts namespace, the first is the default action
'actions' => ["logon", "logoff", "register", "profile", "changepw", "emailpw"],
'session_length' => 7200,
'admin_email' => "some_user\@some_host.com",
'header_html' => "header.html",
'footer_html' => "footer.html",
'logon_success_html' => "logon.html"});
DESCRIPTION
CGI::Portal is intended as a framework for the design of extensible,
plug-configure-and-play multiuser web applications based on preferred object
oriented coding standards. It includes authentication and session management.
Applications are build by first configuring a simple startup script as above
and then by creating modules that reside in the CGI::Portal::Scripts namespace
and extend CGI::Portal::Sessions. These modules must provide a subroutine "launch"
that the application calls once it receives an "action" parameter equal to the
modules names.
For example, portal.cgi?action=foo calls CGI::Portal::Scripts::foo::launch().
In your modules, do not "print" or "exit". Instead append to $self->{'out'} and
return from launch().
Functions
Sessions->new CGI::Portal::Sessions->new($ref) is automatically called and receives the correct parameter if your modules extend CGI::Portal::Sessions.
RDB->exec CGI::Portal::RDB->exec($sql) is an object method for the database object accessible thru $self->{'rdb'}. It takes a SQL statement as argument and returns a DBI statement handle. Alternatively you can retrieve the database handle from $self->{'rdb'}{'dbh'}.
RDB->escape CGI::Portal::RDB->escape(@values) is also accessible thru $self->{'rdb'} and takes an array of SQL values. It uses DBI's quote() on those values and returns them as a string seperated by commas.
Properties
conf $self->{'conf'} is a hash reference to all values as set in the startup script.
user $self->{'user'} is set by $self->authenticate_user() if logon succeeds.
out $self->{'out'} supposed to collect all output. Append to it insted of "print"ing.
INSTALLATION
perl Makefile.PL
make
make test
make install
AUTHOR
Alexander David <cpanalpo@yahoo.com>