X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FView%2FBase.pm;h=9615950d0bf141babecac61003218050f6e9bed7;hb=d9b26d07eb7f8050825082c3422989460d2a3e0b;hp=312d38ba24aeeb3f3e70809776a788433751a5f2;hpb=d2c852208417c014caec0436a677fcadccc197d8;p=maypole.git diff --git a/lib/Maypole/View/Base.pm b/lib/Maypole/View/Base.pm index 312d38b..9615950 100644 --- a/lib/Maypole/View/Base.pm +++ b/lib/Maypole/View/Base.pm @@ -10,17 +10,27 @@ sub new { bless {}, shift } # By default, do nothing. sub paths { my ( $self, $r ) = @_; my $root = $r->config->template_root || $r->get_template_root; - return ( - $root, - ( - $r->model_class - && File::Spec->catdir( $root, $r->model_class->moniker ) - ), - File::Spec->catdir( $root, "custom" ), - File::Spec->catdir( $root, "factory" ) - ); + if(ref($root) ne 'ARRAY') { + $root = [ $root ]; + } + my @output = (); + foreach my $path (@$root) { + push(@output, $path); + push(@output, + ( + $r->model_class + && File::Spec->catdir( $path, $r->model_class->moniker ) + ) + ); + push(@output, File::Spec->catdir( $path, "custom" )); + push(@output, File::Spec->catdir( $path, "factory" )); + } + return @output; } + + + sub vars { my ( $self, $r ) = @_; my $class = $r->model_class; @@ -45,6 +55,7 @@ sub vars { $classmeta->{moniker} ||= $class->moniker; $classmeta->{plural} ||= $class->plural_moniker; $classmeta->{cgi} ||= { $class->to_cgi }; + $classmeta->{stringify_column} ||= $class->stringify_column; # User-friendliness facility for custom template writers. if ( @{ $r->objects || [] } > 1 ) {