]> git.decadent.org.uk Git - maypole.git/blob - lib/Maypole/Config.pm
+ TT2 objects used in M::V::TT are configurable with
[maypole.git] / lib / Maypole / Config.pm
1 package Maypole::Config;
2 use base qw(Class::Accessor::Fast);
3 use attributes ();
4
5 use strict;
6 use warnings;
7
8 our $VERSION = "1." . sprintf "%04d", q$Rev$ =~ /: (\d+)/;
9
10 # Public accessors.
11 __PACKAGE__->mk_accessors(
12      qw( view view_options uri_base template_root model loader display_tables
13          ok_tables rows_per_page dsn user pass opts application_name)
14 );
15
16 # Should only be modified by model.
17 __PACKAGE__->mk_ro_accessors(qw( classes tables));
18
19 1;
20
21 =head1 NAME
22
23 Maypole::Config - Maypole Configuration Class
24
25 =head1 DESCRIPTION
26
27 This class stores all configuration data for your Maypole application.
28
29 =head1 METHODS
30
31 =head2 View related
32
33 =head3 application_name
34
35 This should be a string containing your application's name.
36
37 =head3 rows_per_page
38
39 This is the number of rows your application should display per page.
40
41 =head3 tables
42
43 Contains a list of all tables, if supported by model.
44
45 =head3 template_root
46
47 This is where your application can find its templates.
48
49 =head3 uri_base
50
51 This is the URI base that should be prepended to your application when
52 Maypole
53 makes URLs.
54
55 =head3 view
56
57 The name of the view class for your Maypole Application. Defaults to
58 "Maypole::View::TT".
59
60 =head3 view_options
61
62 A hash of configuration options for the view class. Consult the documentation
63 for your chosen view class for information on available configuration options.
64
65 =head2 Model-Related
66
67 =head3 classes
68
69 This config variable contains a list of your view classes. This is set
70 up by the
71 model class, and should not be changed in the view or the config.
72
73 =head3 display_tables
74
75 This is a list of the tables that are public to your Maypole 
76 application. Defaults to all the tables in the database.
77
78 =head3 dsn
79
80 The DSN to your database. Follows standard DBD syntax.
81
82 =head3 loader
83
84 This is the loader object (n.b. an instance, not a class name). It's set
85 up by the CDBI model to an instance of "Class::DBI::Loader" if it's not
86 initialized before calling setup().
87
88 =head3 model
89
90 The name of the model class for your Maypole Application. Defaults to
91 "Maypole::Model::CDBI".
92
93 =head3 ok_tables
94
95 This is a hash of the public tables. It is populated automatically by 
96 Maypole from the list in display_tables and should not be changed.
97
98 =head3 pass
99
100 Password for database user.
101
102 =head3 opts
103
104 Other options to the DBI connect call.
105
106 =head3 user
107
108 Username to log into the database with.
109
110 =head2 Adding additional configuration data
111
112 If your modules need to store additional configuration data for their 
113 own use or to make available to templates, add a line like this to your 
114 module:
115
116    Maypole::Config->mk_accessors(qw(variable or variables));
117
118 Care is needed to avoid conflicting variable names.
119
120 =head1 SEE ALSO
121
122 L<Maypole>
123
124 =head1 AUTHOR
125
126 Sebastian Riedel, C<sri@oook.de>
127
128 =head1 AUTHOR EMERITUS
129
130 Simon Cozens, C<simon@cpan.org>
131
132 =head1 LICENSE
133
134 You may distribute this code under the same terms as Perl itself.
135
136 =cut
137