X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FApache%2FMVC%2FView%2FTT.pm;fp=lib%2FApache%2FMVC%2FView%2FTT.pm;h=5c67d502a9d17a0d095df6fdaba5d8c477787fce;hb=fa685ce517bd35c12ed6681803d9d0d6b1793159;hp=0000000000000000000000000000000000000000;hpb=feefb416b3c1aafdea07aa47378d007ee760e9f9;p=maypole.git diff --git a/lib/Apache/MVC/View/TT.pm b/lib/Apache/MVC/View/TT.pm new file mode 100644 index 0000000..5c67d50 --- /dev/null +++ b/lib/Apache/MVC/View/TT.pm @@ -0,0 +1,35 @@ +package Apache::MVC::View::TT; +use Lingua::EN::Inflect; +use Template; +use File::Spec; +use UNIVERSAL::moniker; + +sub template_root { "/opt/houseshare/templates" } # For now + +sub new { bless {}, shift } # Not worth having + +sub process { + my ($self, $r) = @_; + my $root = $self->template_root; + my $template = Template->new({ INCLUDE_PATH => [ + $root, + File::Spec->catdir($root, $r->model_class->moniker), + File::Spec->catdir($root, "custom"), + File::Spec->catdir($root, "factory") + ]}); + my %args = ( + request => $r, + class => $r->model_class, + objects => $r->objects, + # ... + ); + + # User-friendliness facility for custom template writers. + if (@{$r->objects} > 1){ + $args{$r->model_class->plural_moniker} = $r->objects; + } else { + ($args{$r->model_class->moniker}) = @{$r->objects}; + } + + $template->process($r->template, \%args); +}