The following module was proposed for inclusion in the Module List:
modid: CGI::Path
DSLIP: bdpOp
description: aids in traversing one or more paths
userid: EARL (Earl Cahill)
chapterid: 15 (World_Wide_Web_HTML_HTTP_CGI)
communities:
similar:
CGI::Application
rationale:
This module came from rewriting the signup process at my work.
We needed to be able to jump in at various parts of the path, go
forwards and backwards, be able to change information along the way,
remember everything that users entered, do sometimes complex
validation, do third party api validation along the way, work in
secure, keep track of entered information for later page prints,
etc. Also had to be able to potentially override how each step might
act.
CGI::Path was written to achieve these goals. By default CGI::Path
uses Apache::Session for handling session, XML::Simple for
validation references, Embperl::Form::Validate for client and server
side validation using the xml references, Template Template for
displaying results. However each of the above is (hopefully) modular
enough to change. Like, using your own conf format instead of xml,
or your own validation system, or Embperl for templating.
The user defines a sequence of steps for their path, .htm files
(template toolkit'able files), and .val files which explain the
validation needed for each step.
CGI::Path contains a series of hooks, and using cans, tests to see
if the user has written their own methods for their hooks. Such a
system means the user only write what he really needs to have
different. I have found that many paths can rely on the default
methods to gather the data, then a simple method to do something
with the data at the end of the path. A simple path where the user
enter information for an email, confirms the email and then sends
the email, can be handled with just a couple of subs written, along
with the htm and val files.
We have been using this system on our live system for several
months. We have received millions of hits and processed hundreds of
thousands signups. Using the system I have been able to rather
easily maintain a rather complex signup process. Once the series of
hooks is understood, it is an easy thing to determine where a new
thing would go, add the sub in the appropriate place and have it
just start working.
enteredby: EARL (Earl Cahill)
enteredon: Mon Oct 20 23:15:18 2003 GMT
The resulting entry would be:
CGI::
::Path bdpOp aids in traversing one or more paths EARL
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fb400000_4682f125ea12be95&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=fb400000_4682f125ea12be95&SUBMIT_pause99_add_mod_insertit=1