DESCRIPTION

This is a driver for CGI::Application::Plugin::AnyTemplate, which provides the implementation details specific to rendering templates via the Petal templating system.

All \*(C`AnyTemplate\*(C' drivers are designed to be used the same way. For general usage instructions, see the documentation of CGI::Application::Plugin::AnyTemplate.

EMBEDDED COMPONENT SYNTAX (Petal)

Note that for embedding component to work properly in Petal, you need to enclose the contents of the included file in tags, such as \*(C`<span>\*(C' tags.

    <span>
    var: <span petal:replace="var"></span>
    </span>

The \*(C`Petal\*(C' syntax for embedding components is:

<span tal:replace="structure CGIAPP/embed 'some_run_mode' some_param1 some_param2 'some literal string 3'"> this text gets replaced by the output of some_run_mode </span>

This can be overridden by the following configuration variables:

embed_tag_name # default 'CGIAPP'

For instance by setting the following values in your configuration file:

embed_tag_name 'MYAPP'

Then the embedded component tag will look like:

<span tal:replace="structure MYAPP/embed 'some_run_mode'"> this text gets replaced by the output of some_run_mode </span>

Note that when creating documents to be included as components, they must be complete \s-1XML\s0 documents.

CONFIGURATION

The CGI::Application::Plugin::AnyTemplate::Driver::Petal driver accepts the following config parameters:

embed_tag_name

The name of the tag used for embedding components. Defaults to \*(C`CGIAPP\*(C'.

template_extension

If \*(C`auto_add_template_extension\*(C' is true, then CGI::Application::Plugin::AnyTemplate will append the value of \*(C`template_extension\*(C' to \*(C`filename\*(C'. By default the \*(C`template_extension\*(C' is \*(C`.xhtml\*(C'.

emulate_associate_query

This feature is now deprecated and will be removed in a future release. If this config parameter is true, then CGI::Application::Plugin::AnyTemplate::Driver::Petal will copy all of the webapp's query params into the template. This is similar to what would happen if you used HTML::Template's \*(C`associate\*(C' feature with the webapp's query object: my $driver = HTML::Template->new( associate => $self->query, ); By default \*(C`emulate_associate_query\*(C' is false.

All other configuration parameters are passed on unchanged to Petal.

required_modules

The \*(C`required_modules\*(C' function returns the modules required for this driver to operate. In this case: \*(C`Petal\*(C'.

DRIVER METHODS

initialize

Initializes the Petal driver. See the docs for CGI::Application::Plugin::AnyTemplate::Base for details.

render_template

Fills the Petal object with \*(C`$self->param\*(C' If the param \*(C`emulate_associate_query\*(C' is true, then set params for each of $self->{'webapp'}->query, mimicking HTML::Template's associate mechanism. Also set up a CGI::Application::Plugin::AnyTemplate::ComponentHandler object so that the \*(C`CGIAPP.embed\*(C' callback will work. Returns the output of the filled template as a string reference. See the docs for CGI::Application::Plugin::AnyTemplate::Base for details.

RELATED TO CGI::Application::Plugin::AnyTemplate::Driver::Petal…

CGI::Application::Plugin::AnyTemplate CGI::Application::Plugin::AnyTemplate::Base CGI::Application::Plugin::AnyTemplate::ComponentHandler CGI::Application::Plugin::AnyTemplate::Driver::HTMLTemplate CGI::Application::Plugin::AnyTemplate::Driver::HTMLTemplateExpr CGI::Application::Plugin::AnyTemplate::Driver::HTMLTemplatePluggable CGI::Application::Plugin::AnyTemplate::Driver::TemplateToolkit CGI::Application::Plugin::AnyTemplate::Driver::Petal

CGI::Application

Template::Toolkit HTML::Template

HTML::Template::Pluggable HTML::Template::Plugin::Dot

Petal

Exporter::Renaming

CGI::Application::Plugin::TT

AUTHOR

Michael Graham, \*(C`<[email protected]>\*(C'

COPYRIGHT & LICENSE

Copyright 2005 Michael Graham, All Rights Reserved.

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