use Maypole::Constants;
use Maypole::Headers;
-our $VERSION = '2.05';
+our $VERSION = '2.10';
__PACKAGE__->mk_classdata($_) for qw( config init_done view_object );
__PACKAGE__->mk_accessors(
my $config = $calling_class->config;
$config->model || $config->model("Maypole::Model::CDBI");
$config->model->require;
- die "Couldn't load the model class $config->model: $@" if $@;
+ die "Couldn't load the model class $config->{model}: $@" if $@;
$config->model->setup_database( $config, $calling_class, @_ );
for my $subclass ( @{ $config->classes } ) {
no strict 'refs';
sub parse_path {
my $self = shift;
$self->{path} ||= "frontpage";
- my @pi = split /\//, $self->{path};
- shift @pi while @pi and !$pi[0];
+ my @pi = $self->{path} =~ m{([^/]+)/?}g;
$self->{table} = shift @pi;
$self->{action} = shift @pi;
$self->{action} ||= "index";
die "Do not use Maypole directly; use Apache::MVC or similar";
}
+# Session and Repeat Submission Handling
+
+sub make_random_id {
+ use Maypole::Session;
+ return Maypole::Session::generate_unique_id();
+}
+
=head1 NAME
Maypole - MVC web application framework
This documents the Maypole request object. See the L<Maypole::Manual>, for a
detailed guide to using Maypole.
-Maypole is a Perl web application framework to Java's struts. It is
+Maypole is a Perl web application framework similar to Java's struts. It is
essentially completely abstracted, and so doesn't know anything about
how to talk to the outside world.
Maypole
backend.
+=head3 param
+
+An accessor for request parameters. It behaves similarly to CGI::param() for
+accessing CGI parameters.
+
=head3 params
-Returns a hash of request parameters. The source of the parameters may
-vary
-depending on the Maypole backend, but they are usually populated from
-request
+Returns a hash of request parameters. The source of the parameters may vary
+depending on the Maypole backend, but they are usually populated from request
query string and POST data.
B<Note:> Where muliple values of a parameter were supplied, the
can handle exceptions the user, or falls back to the default
exception method of your Maypole application.
+=head3 make_random_id
+
+returns a unique id for this request can be used to prevent or detect repeat submissions.
=head3 handler
Simon Cozens, C<simon#cpan.org>
+Sebastian Riedel, C<sri#oook.de> maintained Maypole from 1.99_01 to 2.04
+
=head1 THANKS TO
-Danijel Milicevic, Dave Slack, Jesse Sheidlower, Jody Belka, Marcus Ramberg,
-Mickael Joanne, Randal Schwartz, Simon Flack, Steve Simms, Veljko Vidovic
-and all the others who've helped.
+Sebastian Riedel, Danijel Milicevic, Dave Slack, Jesse Sheidlower, Jody Belka,
+Marcus Ramberg, Mickael Joanne, Randal Schwartz, Simon Flack, Steve Simms,
+Veljko Vidovic and all the others who've helped.
=head1 LICENSE