Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Catalyst::View::TemplaUserDContributed PerCatalyst::View::Template::Declare(3)

NAME
       Catalyst::View::Template::Declare - Use Template::Declare with Catalyst

VERSION
       Version 0.02

SYNOPSIS
       Create the view:

	    myapp_create.pl view TD Template::Declare

       Add templates in	"MyApp::View::TD::<name>":

	    package MyApp::View::TD::Test;
	    use	Template::Declare::Tags;

	    template foo => sub	{ html {} };
	    template bar => sub	{   ...	  };
	    1;

       Then use	the templates from your	application:

	    $c->view('TD')->template('foo');
	    $c->detach('View::TD');

       The Catalyst context is passed as the second agument to the templates:

	    template foo => sub	{
		my ($self, $c) = @_;
		return 'This is	the '. $c->action. ' action.';
	    };

       The Catalyst stash is passed as the third argument, but is also
       available via the glocal	$_ variable for	the duration of	the template:

	    template bar => sub	{
		return "Hello, $_{world}";
	    };

       Have fun.  This is all somewhat experimental and	subject	to change.

DESCRIPTION
       Make a view:

	   package MyApp::View::TD;
	   use base 'Catalyst::View::Template::Declare';
	   1;

       Make a template:

	   package MyApp::View::TD::Root;
	   use Template::Declare::Tags;

	   template foo	=> sub {
	       my ($self, $c) =	@_;
	       html {
		   head	{ title	{ $c->stash->{title} } };
		   body	{ "Hello, world" }
		 }
	   };

       In your app:

	   $c->view('TD')->template('foo');
	   $c->stash(title => 'test');
	   $c->detach('View::TD');

       And get the output:

	   <html><head><title>test</title></head><body>Hello, world</body></html>

       You can spread your templates out over multiple files.  If your view is
       called MyApp::View::TD, then everything in MyApp::View::TD::* will be
       included	and templates declared in those	files will be available	as
       though they were	declared in your main view class.

       Example:

	   package MyApp::View::TD::Foo;
	   use Template::Declare::Tags;
	   template bar	=> sub { ... };
	   1;

       Then you	can set	"$c->view('TD')->template('bar')" and everything will
       work as you expect.

       The arguments passed to the templates are:

       $self
	   The object or package name in which the template is defined.

       $c  The Catalyst	context	object.

       $stash
	   A copy of the Catalyst stash, also available	via $_.	Modifications
	   to this copy	of the stash will have no effect on the	contents of
	   "$c->stash".

       $args
	   Any arguments passed	to "render()".

       For those stuck with a version of Template::Declare older then 0.26, no
       arguments will be passed	to the templates. But you can still use	the
       otherwise-deprecated "c"	package	to get at the Catalyst context:

	   template bar	=> sub { "Hello, ". c->stash->{world} };

METHODS
   process
       Render the template in "$self->template"; see Catalyst::View::Templated
       for information on how to specify the template.

   render($template, @args)
       Render the template named by $template and return the output.

   COMPONENT
       Not for you.

AUTHOR
       Jonathan	Rockway, "<jrockway at cpan.org>"

BUGS
       Please report any bugs or feature requests to
       "bug-catalyst-view-template-declare at rt.cpan.org", or through the web
       interface at
       <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-View-Template-Declare>.
       I will be notified, and then you'll automatically be notified of
       progress	on your	bug as I make changes.

SUPPORT
       Visit #catalyst on irc.perl.org,	submit an RT ticket, or	send me	an
       e-mail.

       The git repository is at	<http://git.jrock.us/>.

SEE ALSO
       Catalyst::View::Templated

ACKNOWLEDGEMENTS
       Template::Declare

       Jifty

COPYRIGHT & LICENSE
       Copyright 2007 Jonathan Rockway,	all rights reserved.

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

perl v5.32.1			  2008-08-Catalyst::View::Template::Declare(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | METHODS | AUTHOR | BUGS | SUPPORT | SEE ALSO | ACKNOWLEDGEMENTS | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Catalyst::View::Template::Declare&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help