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.