Template::Provider::CustomDBIC - Load templates using DBIx::Class
use My::CustomDBIC::Schema; use Template; use Template::Provider::CustomDBIC; my $schema = My::CustomDBIC::Schema->connect( $dsn, $user, $password, \%options ); my $resultset = $schema->resultset('Template');
If all of your templates are stored in a single table the most convenient method is to pass the provider a DBIx::Class::ResultSet.
my $template = Template->new({ LOAD_TEMPLATES => [ Template::Provider::CustomDBIC->new({ RESULTSET => $resultset, # Other template options like COMPILE_EXT... }), ], }); # Process the template in 'column' referred by reference from resultset 'Template'. $template->process('table/reference/column');
Template::Provider::CustomDBIC allows a Template object to fetch its data using DBIx::Class instead of, or in addition to, the default filesystem-based Template::Provider.
This provider requires a schema containing at least the following:
A column containing the template name. When $template->provider($name) is called the provider will search this column for the corresponding $name. For this reason the column must be a unique key, else an exception will be raised.
$template->provider($name)
$name
A column containing the actual template content itself. This is what will be compiled and returned when the template is processed.
A column containing the time the template was last modified. This must return - or be inflated to - a date string recognisable by Date::Parse.
In addition to supplying a RESULTSET or SCHEMA and the standard Template::Provider options, you may set the following preferences:
The table column that contains the template name. This will default to 'name'.
The table column that contains the template data itself. This will default to 'content'.
The table column that contains the date that the template was last modified. This will default to 'modified'.
This method is called automatically during Template's ->process() and returns a compiled template for the given $name, using the cache where possible.
->process()
By default Template::Provider::CustomDBIC will raise an exception when it cannot find the named template
my $template = Template->new({ LOAD_TEMPLATES => [ Template::Provider::CustomDBIC->new({ RESULTSET => $resultset, }), Template::Provider->new({ INCLUDE_PATH => $path_to_templates, }), ], });
When caching is enabled, by setting COMPILE_DIR and/or COMPILE_EXT, Template::Provider::CustomDBIC will create a directory consisting of the database DSN and table name. This should prevent conflicts with other databases and providers.
Template, Template::Provider, DBIx::Class::Schema
In addition to errors raised by Template::Provider and DBIx::Class, Template::Provider::CustomDBIC may generate the following error messages:
A valid DBIx::Class::Schema or ::ResultSet is required
One of the SCHEMA or RESULTSET configuration options must be provided.
%s not valid: must be of the form $table/$template
When using Template::Provider::CustomDBIC with a DBIx::Class::Schema object, the template name passed to ->process() must start with the name of the result set to search in.
'%s' is not a valid result set for the given schema
Couldn't find the result set %s in the given DBIx::Class::Schema object.
Could not retrieve '%s' from the result set '%s'
Carp
Date::Parse
File::Path
File::Spec
Template::Provider
Additionally, use of this module requires an object of the class DBIx::Class::Schema or DBIx::Class::ResultSet.
Please report any bugs or feature requests through the web interface at https://github.com/itnode/Template-Provider-CustomDBIC/issues
You can find documentation for this module with the perldoc command.
perldoc Template::Provider::CustomDBIC
You may also look for information at:
Template::Provider::CustomDBIC
AnnoCPAN: Annotated CPAN documentation
RT: CPAN's request tracker
https://github.com/itnode/Template-Provider-CustomDBIC/issues
Search CPAN
Jens Gassmann <jegade@cpan.org>
Based on work from Dave Cardwell <dcardwell@cpan.org>
Copyright (c) 2015 Jens Gassmann. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
To install Template::Provider::CustomDBIC, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Template::Provider::CustomDBIC
CPAN shell
perl -MCPAN -e shell install Template::Provider::CustomDBIC
For more information on module installation, please visit the detailed CPAN module installation guide.