1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
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 %></li>
% }
</ul>
METHODS
new($app, \%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)
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.
Defaults to an empty string.
Example: "template_extension => '.html'"
"always_append_template_extension"
Set this to a true value if you want "template_extension" to be
appended to the component path even if it was explicitly set.
Defaults to 0.
Example: "always_append_template_extension => 1"
"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 0. Old code should set this to 1 to avoid
breakage.
Example: "use_match => 0"
The default HTML::Mason::Interp config options are as follows:
"comp_root"
"$app->config->root"
"data_dir"
"File::Spec->catdir( File::Spec->tmpdir,
sprintf('%s_%d_mason_data_dir', $app, $<) )"
"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"
Justin Hunter "justin.d.hunter@gmail.com"
COPYRIGHT
This program is free software, you can redistribute it and/or modify it
under the same terms as Perl itself.
|