X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FCatalyst%2FHelper%2FView%2FTTSite.pm;h=ec00594a7b240f28f9cfe650fecc1b00ebbfcbc0;hb=caa68319afbd7b8db59975b1e968766da6ac6bbc;hp=903ded82a2cddc6e90373b35c643595e50b6db96;hpb=795f79990201525a5f80c9249dd9e5343284fc91;p=catagits%2FCatalyst-View-TT.git diff --git a/lib/Catalyst/Helper/View/TTSite.pm b/lib/Catalyst/Helper/View/TTSite.pm index 903ded8..ec00594 100644 --- a/lib/Catalyst/Helper/View/TTSite.pm +++ b/lib/Catalyst/Helper/View/TTSite.pm @@ -3,6 +3,9 @@ package Catalyst::Helper::View::TTSite; use strict; use File::Spec; +our $VERSION = '0.45'; +$VERSION = eval $VERSION; + sub mk_compclass { my ( $self, $helper, @args ) = @_; my $file = $helper->{file}; @@ -49,7 +52,7 @@ Catalyst::Helper::View::TTSite - Helper for TT view which builds a skeleton web # use the helper to create the view module and templates - $ script/myapp_create.pl view TT TTSite + $ script/myapp_create.pl view HTML TTSite # add something like the following to your main application module @@ -58,15 +61,15 @@ Catalyst::Helper::View::TTSite - Helper for TT view which builds a skeleton web $c->stash->{template} = 'message.tt2'; $c->stash->{message} ||= $c->req->param('message') || 'No message'; } - + sub default : Private { my ( $self, $c ) = @_; $c->stash->{template} = 'welcome.tt2'; } - - sub end : Private { + + sub end : Private { # Or use Catalyst::Action::RenderView my ( $self, $c ) = @_; - $c->forward('MyApp::V::TT'); + $c->forward( $c->view('HTML') ); } =head1 DESCRIPTION @@ -75,22 +78,58 @@ This helper module creates a TT View module. It goes further than Catalyst::Helper::View::TT in that it additionally creates a simple set of templates to get you started with your web site presentation. -It creates the templates in a F directory underneath your +It creates the templates in F directory underneath your main project directory. In here two further subdirectories are -created: F which contains the main page templates, and F -containing a library of other templates components (header, footer, +created: F which contains the main page templates, and F +containing a library of other template components (header, footer, etc.) that the page templates use. The view module that the helper creates is automatically configured to locate these templates. -=head2 METHODS +=head2 Default Rendering + +To render a template the following process is applied: + +The configuration template F is rendered. This is +controlled by the C configuration variable set in the controller +generated by Catalyst::Helper::View::TTsite. Additionally, templates referenced by +the C directive will then be rendered. By default the following additional +templates are set: F, +which defines color names and RGB their RGB values and F, +which defines site wide variables available to templates. + +Next, the template defined by the C config variable is called. The default +wrapper template is located in F. The wrapper template +passes files with C<.css/.js/.txt> extensions through as text OR processes +the templates defined after the C directive: C and C. + +Based on the default value of the C directive in F, +the following templates are processed in order: + +=over 4 + +=item * F -=head3 mk_compclass +=item * F + +=item * F + +=item * F + +=item * F + +=back + +Finally, the rendered content is returned to the browser. + +=head1 METHODS + +=head2 mk_compclass Generates the component class. -=head3 mk_templates +=head2 mk_templates Generates the templates. @@ -107,7 +146,7 @@ Andy Wardley =head1 LICENSE -This library is free software . You can redistribute it and/or modify +This library is free software. You can redistribute it and/or modify it under the same terms as perl itself. =cut @@ -123,15 +162,15 @@ use strict; use base 'Catalyst::View::TT'; __PACKAGE__->config({ - CATALYST_VAR => 'Catalyst', INCLUDE_PATH => [ - MyApp->path_to( 'root', 'src' ) - MyApp->path_to( 'root', 'lib' ) + [% app %]->path_to( 'root', 'src' ), + [% app %]->path_to( 'root', 'lib' ) ], PRE_PROCESS => 'config/main', WRAPPER => 'site/wrapper', ERROR => 'error.tt2', - TIMER => 0 + TIMER => 0, + render_die => 1, }); =head1 NAME @@ -152,7 +191,7 @@ Catalyst TTSite View. =head1 LICENSE -This library is free software, you can redistribute it and/or modify +This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut @@ -167,7 +206,7 @@ __config_main__ [% # config/main # # This is the main configuration template which is processed before - # any other page, by virtue of it being defined as a PRE_PROCESS + # any other page, by virtue of it being defined as a PRE_PROCESS # template. This is the place to define any extra template variables, # macros, load plugins, and perform any other template setup. @@ -182,12 +221,12 @@ __config_main__ copyright => '[* year *] Your Name Here', }; - # load up any other configuration items + # load up any other configuration items PROCESS config/col + config/url; # set defaults for variables, etc. - DEFAULT + DEFAULT message = 'There is no message'; -%] @@ -213,7 +252,7 @@ __config_col__ message = site.rgb.green error = site.rgb.red }; -%] +-%] __config_url__ [% TAGS star -%] [% base = Catalyst.req.base; @@ -275,7 +314,7 @@ __welcome.tt2__ plugin module.

- This is the welcome page. Why not try the equally-exciting + This is the welcome page. Why not try the equally-exciting Message Page?

__message.tt2__ @@ -300,8 +339,8 @@ __error.tt2__ [% TAGS star -%] [% META title = 'Catalyst/TT Error' %]

- An error has occurred. We're terribly sorry about that, but it's - one of those things that happens from time to time. Let's just + An error has occurred. We're terribly sorry about that, but it's + one of those things that happens from time to time. Let's just hope the developers test everything properly before release...

@@ -314,7 +353,7 @@ html { height: 100%; } -body { +body { background-color: [% site.col.page %]; color: [% site.col.text %]; margin: 0px;