package Maypole;
-use Class::C3;
use base qw(Class::Accessor::Fast Class::Data::Inheritable);
use UNIVERSAL::require;
use strict;
use NEXT;
use File::MMagic::XS qw(:compat);
-our $VERSION = '2.12';
+our $VERSION = '2.12_pre1';
our $mmagic = File::MMagic::XS->new();
# proposed privacy conventions:
__PACKAGE__->mk_accessors(
qw( params query objects model_class template_args output path
args action template error document_encoding content_type table
- headers_in headers_out stash status parent build_form_elements)
+ headers_in headers_out stash status parent build_form_elements
+ user session)
);
__PACKAGE__->config( Maypole::Config->new() );
return $self->status unless $self->status == Maypole::Constants::OK();
die "status undefined after start_request_hook()" unless defined
$self->status;
- $self->get_session;
- $self->get_user;
+
+ my $session = $self->get_session;
+ $self->session($self->{session} || $session);
+ my $user = $self->get_user;
+ $self->user($self->{user} || $user);
+
my $status = $self->handler_guts;
return $status unless $status == OK;
# TODO: require send_output to return a status code
You should not fully qualify the Maypole URLs.
Note: any HTTP POST or URL parameters passed to the parent are not passed to the
-component sub-request, only what is included in the url passed as an argyument
+component sub-request, only what is included in the url passed as an argument
to the method
=cut
$self->args([]);
$self->objects([]);
- $self->get_user;
+ $self->session($self->get_session);
+ $self->user($self->get_user);
+
my $url = URI->new($path);
$self->{path} = $url->path;
$self->parse_path;
}
# less frequent path - perhaps output has been set to an error message
- return OK if $self->output;
+ if ($self->output) {
+ $self->{content_type} ||= $self->__get_mime_type();
+ $self->{document_encoding} ||= "utf-8";
+ return OK;
+ }
# normal path - no output has been generated yet
my $processed_view_ok = $self->__call_process_view;
my ($self) = @_;
# It's just a plain template
+ $self->build_form_elements(0);
$self->model_class(undef);
unless ($self->template) {
$self->params->{$key} = $new_val;
}
- return ref $val ? @$val : ($val) if wantarray;
+ return (ref $val eq 'ARRAY') ? @$val : ($val) if wantarray;
- return ref $val ? $val->[0] : $val;
+ return (ref $val eq 'ARRAY') ? $val->[0] : $val;
}