X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole.pm;fp=lib%2FMaypole.pm;h=7e896c3e8ff652c6dccffa1de8039a287547d266;hb=88403615773aa8c4a86006b5d41577e586d1c0ec;hp=09493ece263a04f6dcb101f49450d3760835d9b6;hpb=8bee7ab27f76f2b3e8a65113ded4d439ec4949fe;p=maypole.git diff --git a/lib/Maypole.pm b/lib/Maypole.pm index 09493ec..7e896c3 100644 --- a/lib/Maypole.pm +++ b/lib/Maypole.pm @@ -984,8 +984,7 @@ properties. Calls C 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. It generates a path to use @@ -1046,6 +1058,7 @@ string. =cut + sub make_path { my $r = shift;