The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::View::HTML::CTPP2 - HTML::CTPP2 View Class

SYNOPSIS

    # use the helper
    create.pl view HTML::CTPP2 HTML::CTPP2

    # lib/MyApp/View/HTML/CTPP2.pm
    package MyApp::View::HTML::CTPP2;

    use base 'Catalyst::View::HTML::CTPP2';

    __PACKAGE__->config(
        INCLUDE_PATH => [
            MyApp->path_to( 'root', 'src' ),
            MyApp->path_to( 'root', 'lib' )
        ),
        TEMPLATE_EXTENSION => '.ctpp2c',

        file_cache      => 1,
        file_cache_time => 24*60*60,
        file_cache_dir  => '/tmp/myapp_cache',

        arg_stack_size      => 1024,
           .....
        source_charset      => 'CP1251',
        destination_charset => 'utf-8'

    );

    1;

    # Meanwhile, maybe in an 'end' action
    $c->forward('MyApp::View::HTML::CTPP2');

DESCRIPTION

This is the HTML::CTPP2 view class. Your subclass should inherit from this class.

METHODS

new

Internally used by Catalyst. Used to configure some internal stuff.

process

Renders the template specified in $c->stash->{template} or $c->request->match. Template params are set up from the contents of $c->stash, augmented with base set to $c->req->base and name to $c->config->{name}. Output is stored in $c->response->body.

render

Renders the given template and returns output. Template params are set up either from the contents of %$args if $args is a hashref, or $c->stash, augmented with base set to $c->req->base and name to $c->config->{name}.

config

This allows your view subclass to pass additional settings to the HTML::CTPP2 config-hash.

Template Configuration

PATH CONFIGURATION AND TEMPLATE EXTENSION

INCLUDE_PATH

The INCLUDE_PATH is used to specify one or more directories in which template files are located. When a template is requested that isn't defined locally as a BLOCK, each of the INCLUDE_PATH directories is searched in turn to locate the template file. Multiple directories can be specified as a reference to a list or as a single string where each directory is delimited by ':'.

    __PACKAGE__->config(
        INCLUDE_PATH => MyApp->path_to('root', 'src')
    );

    __PACKAGE__->config(
        INCLUDE_PATH => '/myapp/path1:/myapp/path2:path3'
    );

    __PACKAGE__->config(
        INCLUDE_PATH => [
            MyApp->path_to('root', 'src'),
            MyApp->path_to('root', 'lib')
        ]
    );

On Win32 systems, a little extra magic is invoked, ignoring delimiters that have ':' followed by a '/' or '\'. This avoids confusion when using directory names like 'C:\Blah Blah'.

DELIMITER

Used to provide an alternative delimiter character sequence for separating paths specified in the INCLUDE_PATH. The default value for DELIMITER is ':'.

    __PACKAGE__->config(
        DELIMITER    => '; ',
        INCLUDE_PATH => '/myapp/path1;/myapp/path2;path3'
    );

On Win32 systems, the default delimiter is a little more intelligent, splitting paths only on ':' characters that aren't followed by a '/'. This means that the following should work as planned, splitting the INCLUDE_PATH into 2 separate directories, C:/foo and C:/bar.

    # on Win32 only
    __PACKAGE__->config(
        INCLUDE_PATH => 'C:/Foo:C:/Bar'
    );

However, if you're using Win32 then it's recommended that you explicitly set the DELIMITER character to something else (e.g. ';') rather than rely on this subtle magic.

TEMPLATE_EXTENSION

If TEMPLATE_EXTENSION is defined then use template files with the TEMPLATE_EXTENSION extension will be loaded. Default extension - '.ctpp2'

    __PACKAGE__->config(
        TEMPLATE_EXTENSION => '.myext'
    );

CACHING

If any of parameters file_cache ( and > 0 ), file_cache_time, file_cache_dir is defined - cache will be used. Default value - caching is off.

file_cache

Set use caching or not. Integer (default - 0 [caching off]).

    #caching is on
    __PACKAGE__->config(
        file_cache      => 1,
        file_cache_time => 24*60*60,
        file_cache_dir  => '/tmp/myapp_cache'
    );

    #caching is off
    __PACKAGE__->config(
        file_cache      => 0,
        file_cache_time => 24*60*60

    );

file_cache_time

This value can be set to control how many long the template cached before checking to see if the source template has changed. Default cache time - 1 hour.

    #set cache time 1 day
    __PACKAGE__->config(
        file_cache_time => 24*60*60
    );

file_cache_dir

The file_cache_dir option is used to specify an alternate directory which compiled template files should be saved.

    #set cache directory
    #is '/tmp/catalysts/myapp'

    __PACKAGE__->config(
        file_cache_dir  => '/tmp/catalysts/myapp'
    );

CTPP2-Params

See here - HTML::CTPP2

SEE ALSO

HTML::CTPP2, Catalyst, Catalyst::Base.

AUTHOR

Victor M Elfimov (victor@sols.ru)

COPYRIGHT

This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.