X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FConfig.pm;h=3307f8f5b650547145370c48170ff7b42ea2a403;hb=2c5d6782f89dc1532398b1b79c8f67b982c758ac;hp=9d0c900f6544a625d4ecb2905c11e02d1db300f4;hpb=8bbd2b435a993ce72871cf210383faa519d9573f;p=maypole.git diff --git a/lib/Maypole/Config.pm b/lib/Maypole/Config.pm index 9d0c900..3307f8f 100644 --- a/lib/Maypole/Config.pm +++ b/lib/Maypole/Config.pm @@ -5,14 +5,17 @@ use attributes (); use strict; use warnings; +our $VERSION = "1." . sprintf "%04d", q$Rev$ =~ /: (\d+)/; + # Public accessors. __PACKAGE__->mk_accessors( - qw( view uri_base template_root model loader display_tables ok_tables - rows_per_page dsn user pass opts application_name) + qw( view view_options uri_base template_root template_extension model + loader display_tables ok_tables rows_per_page dsn user pass opts + application_name additional build_form_elements) ); # Should only be modified by model. -__PACKAGE__->mk_ro_accessors(qw( classes tables table_to_class)); +__PACKAGE__->mk_ro_accessors(qw( classes tables)); 1; @@ -32,17 +35,21 @@ This class stores all configuration data for your Maypole application. This should be a string containing your application's name. +Optional. Is used in the factory templates. + =head3 rows_per_page This is the number of rows your application should display per page. +Optional. + =head3 tables Contains a list of all tables, if supported by model. -=head3 table_to_class +=head3 template_extension -A hash containing a table to class mapping, if supported by model. +Optional template file extension. =head3 template_root @@ -50,8 +57,7 @@ This is where your application can find its templates. =head3 uri_base -This is the URI base that should be prepended to your application when -Maypole +This is the URI base that should be prepended to your application when Maypole makes URLs. =head3 view @@ -59,6 +65,20 @@ makes URLs. The name of the view class for your Maypole Application. Defaults to "Maypole::View::TT". +=head3 build_form_elements + +Globally specify whether to build form elements; populating the cgi metadata with +autogenerated HTML::Element widgets for the class/object. + +Can be over-ridden per action using the method of the same name for the request. + +If not set, then Maypole will assume it is true. + +=head3 view_options + +A hash of configuration options for the view class. Consult the documentation +for your chosen view class for information on available configuration options. + =head2 Model-Related =head3 classes @@ -69,8 +89,8 @@ model class, and should not be changed in the view or the config. =head3 display_tables -These are the tables that are public to your Maypole application. -Defaults to all the tables in the database. +This is a list of the tables that are public to your Maypole +application. Defaults to all the tables in the database. =head3 dsn @@ -89,7 +109,8 @@ The name of the model class for your Maypole Application. Defaults to =head3 ok_tables -These are the tables that Maypole should care about +This is a hash of the public tables. It is populated automatically by +Maypole from the list in display_tables and should not be changed. =head3 pass @@ -103,6 +124,21 @@ Other options to the DBI connect call. Username to log into the database with. +=head2 Adding additional configuration data + +You can use the 'additional' attribute for stashing additional info, especially from additional_data method, +i.e. $r->config->additional({foo=>bar}); + +Or.. + +If your modules need to store additional configuration data for their +own use or to make available to templates, add a line like this to your +module: + + Maypole::Config->mk_accessors(qw(variable or variables)); + +Care is needed to avoid conflicting variable names. + =head1 SEE ALSO L