Catalyst::View::Mason.3pm

Langue: en

Version: 2007-10-16 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

NAME

Catalyst::View::Mason - Mason View Class

SYNOPSIS

     # use the helper
     script/create.pl view Mason Mason
 
 
     # lib/MyApp/View/Mason.pm
     package MyApp::View::Mason;
 
 
     use base 'Catalyst::View::Mason';
 
 
     __PACKAGE__->config(use_match => 0);
 
 
     1;
 
 
     $c->forward('MyApp::View::Mason');
 
 

DESCRIPTION

Want to use a Mason component in your views? No problem! Catalyst::View::Mason comes to the rescue.

EXAMPLE

From the Catalyst controller:
     $c->stash->{name} = 'Homer'; # Pass a scalar
     $c->stash->{extra_info} = {
                last_name => 'Simpson',
                children => [qw(Bart Lisa Maggie)]
     }; # A ref works too
 
 

From the Mason template:

     <%args>
     $name
     $extra_info
     </%args>
     <p>Your name is <strong><% $name %> <% $extra_info->{last_name} %></strong>
     <p>Your children are:
     <ul>
     % foreach my $child (@{$extra_info->{children}}) {
     <li>$child
     % }
     </ul>
 
 

METHODS


new($c, \%config)


get_component_path

Returns the component path from $c->stash->{template} or $c->request->match or $c->action (depending on the use_match setting).

process

Renders the component specified in $c->stash->{template} or $c->request->match or $c->action (depending on the use_match setting) to $c->response->body.

Note that the component name must be absolute, or is converted to absolute (i.e., a / is added to the beginning if it doesn't start with one).

Mason global variables $base, $c, and $name are automatically set to the base, context, and name of the app, respectively.

render($c, $component_path, \%args)


render($c, $component_path, \%args)

Renders the given template and returns output, or a HTML::Mason::Exception object upon error.

The template variables are set to %$args if $args is a hashref, or $c->stash otherwise.

config

This allows you to to pass additional settings to the HTML::Mason::Interp constructor or to set the options as below:

"template_extension"
This string is appended (if present) to "$c->action" when generating a template path.

Example: "template_extension => '.html'"

"use_match"
Use "$c->request->match" instead of "$c->action" to determine which template to use if "$c->stash->{template}" isn't set. This option is deprecated and exists for backward compatibility only.

Currently defaults to 1, to avoid breaking older code, but new code should always set this to 0.

The default HTML::Mason::Interp config options are as follows:

"comp_root"
"$c->config->root"
"data_dir"
"File::Spec->tmpdir"
"allow_globals"
"qw/$c $name $base/"

If you add additional allowed globals those will be appended to the list of default globals.

SEE ALSO

Catalyst, HTML::Mason, ``Using Mason from a Standalone Script'' in HTML::Mason::Admin

AUTHORS

Andres Kievsky "ank@cpan.org"
Sebastian Riedel "sri@cpan.org"
Marcus Ramberg
Florian Ragwitz "rafl@debian.org"
This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself.