]> git.decadent.org.uk Git - maypole.git/commitdiff
added preprocess_location method
authorAaron Trevena <aaron.trevena@gmail.com>
Tue, 5 Jun 2007 21:37:40 +0000 (21:37 +0000)
committerAaron Trevena <aaron.trevena@gmail.com>
Tue, 5 Jun 2007 21:37:40 +0000 (21:37 +0000)
git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@567 48953598-375a-da11-a14b-00016c27c3ee

Changes
lib/Apache/MVC.pm
lib/Maypole.pm
lib/Maypole/View/TT.pm

diff --git a/Changes b/Changes
index 71b8f4d8aefb2f0f2e58e75eaf6b2c9fd0e6124a..71e5006a72c79e534f4ab4b952d1d0e9cb4c411f 100644 (file)
--- a/Changes
+++ b/Changes
@@ -26,6 +26,8 @@ For information about current developments and future releases, see:
    fix to correct problem with LocationMatch and regex based Location directives in apache config.
    change to view::base to only call display_columns,  stringify_columns, to_cgi if model class can
    changed template path to only look for custom, factory, etc on first/only path provided
+   fix to redirect_request
+   Fixed typo in _do_update_or_create (bug 26495)
 
 2.111 Mon 30 April 2007
    - forked - see 2.111 changelog
index 696ab84847a75987f1ce785728f1ae1eecce673c..dea64fffa161648d0cf4abb0c19b523c461e78f6 100644 (file)
@@ -127,6 +127,7 @@ sub parse_location {
 
     # Reconstruct the request headers
     $self->headers_in(Maypole::Headers->new);
+
     my %headers;
     if ($MODPERL2) { %headers = %{$self->ar->headers_in};
     } else { %headers = $self->ar->headers_in; }
@@ -134,6 +135,8 @@ sub parse_location {
         $self->headers_in->set($_, $headers{$_});
     }
 
+    $self->preprocess_location();
+
     my $path = $self->ar->uri;
     my $base  = URI->new($self->config->uri_base);
     my $loc = $base->path;
index 09493ece263a04f6dcb101f49450d3760835d9b6..7e896c3e8ff652c6dccffa1de8039a287547d266 100644 (file)
@@ -984,8 +984,7 @@ properties. Calls C<preprocess_path> before parsing path and setting properties.
 
 =cut
 
-sub parse_path 
-{
+sub parse_path {
     my ($self) = @_;
 
     # Previous versions unconditionally set table, action and args to whatever 
@@ -1010,19 +1009,32 @@ sub parse_path
 =item preprocess_path
 
 Sometimes when you don't want to rewrite or over-ride parse_path but
-want to rewrite urls or extract data from them before it is parsed.
+want to rewrite urls or extract data from them before it is parsed,
+the preprocess_path/location methods allow you to munge paths and urls
+before maypole maps them to actions, classes, etc.
 
 This method is called after parse_location has populated the request
 information and before parse_path has populated the model and action
 information, and is passed the request object.
 
 You can set action, args or table in this method and parse_path will
-then leave those values in place or populate them if not present
+then leave those values in place or populate them based on the current
+value of the path attribute if they are not present.
 
 =cut
 
 sub preprocess_path { };
 
+=item preprocess_location
+
+This method is called at the start of parse_location, after the headers in, and allows you
+to rewrite the url used by maypole, or dynamically set configuration
+like the base_uri based on the hostname or path.
+
+=cut
+
+sub preprocess_location { };
+
 =item make_path( %args or \%args or @args )
 
 This is the counterpart to C<parse_path>. It generates a path to use
@@ -1046,6 +1058,7 @@ string.
 
 =cut
 
+
 sub make_path
 {
     my $r = shift;
index 3fbfbd6c66e4271f2e8b15aeff214dcac4e7b7a8..a14b80f5c8493413db4099025aabde2395894854 100644 (file)
@@ -62,7 +62,7 @@ sub report_error {
     # Need to be very careful here.
     my $tt = Template->new;
     unless (ref $r->{config}) {
-      warn "no config for this request\n";
+      $r->warn("no config for this request");
       $error .= '<br> There was a problem finding configuration for this request';
       $r->{config} ||= {};
     }