X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FView%2FBase.pm;h=312d38ba24aeeb3f3e70809776a788433751a5f2;hb=3a9e643a6a5fa96ca69b56ced03db9569fd96e2e;hp=6c6b63c5a8886dc47e85e0452e8ca79c1d5a44c2;hpb=2d1409f7dd94e2292690eb03d7d62e464c1714db;p=maypole.git diff --git a/lib/Maypole/View/Base.pm b/lib/Maypole/View/Base.pm index 6c6b63c..312d38b 100644 --- a/lib/Maypole/View/Base.pm +++ b/lib/Maypole/View/Base.pm @@ -35,9 +35,8 @@ sub vars { # ... ); if ($class) { - my $classmeta = $args{classmetadata} ||= {}; + my $classmeta = $r->template_args->{classmetadata} ||= {}; $classmeta->{name} ||= $class; - $classmeta->{description} ||= $class->description; $classmeta->{table} ||= $class->table; $classmeta->{columns} ||= [ $class->display_columns ]; $classmeta->{list_columns} ||= [ $class->list_columns ]; @@ -57,9 +56,7 @@ sub vars { } # Overrides - local $r->{template_args} = $r->{template_args}; - delete $r->{template_args}{classmetadata}; # already overrides - %args = ( %args, %{ $r->{template_args} || {} } ); + %args = ( %args, %{ $r->template_args || {} } ); %args; } @@ -117,27 +114,28 @@ sub template { die shift() . " didn't define a decent template method!" } =head1 NAME -Maypole::View::Base - Base cl +Maypole::View::Base - Base class for view classes =head1 DESCRIPTION This is the base class for Maypole view classes. This is an abstract class -meant to define the interface, and can't be used directly. +that defines the interface, and can't be used directly. =head2 process -This is the engine of this module. It populates all the relevant variables -and calls the requested action. +This is the entry point for the view. It templates the request and returns a +C indicate success or failure for the view phase. -Anyone subclassing this for a different database abstraction mechanism -needs to provide the following methods: +Anyone subclassing this for a different rendering mechanism needs to provide +the following methods: -=head2 template +=head2 template -In this method you do the actual processing of your template. it should use L -to search for components, and provide the templates with easy access to the contents -of L. It should put the result in $r->{output} and return OK if processing was -sucessfull, or populate $r->{error} and return ERROR if it fails. +In this method you do the actual processing of your template. it should use +L to search for components, and provide the templates with easy access +to the contents of L. It should put the result in C<$r-Eoutput> and +return C if processing was sucessfull, or populate C<$r-Eerror> and +return C if it fails. =head1 Other overrides @@ -150,14 +148,14 @@ during view initialization. =head2 paths -Returns search paths for templates. the default method returns factory, custom and - under the configured template root. +Returns search paths for templates. the default method returns folders for the +model class's C, factory, custom under the configured template root. =head2 vars -returns a hash of data the template should have access to. The default one populates -classmetadata if there is a class, as well as setting the data objects by name if -there is one or more objects available. +returns a hash of data the template should have access to. The default one +populates classmetadata if there is a table class, as well as setting the data +objects by name if there is one or more objects available. =head2 error