Доброго всем

Mojolicious::Plugin::RenderCGI

¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !

VERSION

0.100

NAME

Mojolicious::Plugin::RenderCGI - Rendering template with Perl code and CGI.pm funcs/subs for tags emits.

SYNOPSIS

$app->plugin('RenderCGI');

Template

Template is a Perl code that generate content as list of statements. Similar to do BLOCK. Template file name like "templates/foo/bar.html.cgi.pl"

# Predefined variables:
# $self  is a     Mojolicious::Plugin::RenderCGI::Template object
# $c     is a     current controller object
# $cgi   is a     CGI object

$c->layout('default', handler=>'ep',);# set handler 'ep' for all templates/includes !!! even default handler cgi
my $foo = $c->stash('foo')
  or die "Where is your FOO?";

#=======================================
#======= content comma list! ===========
#=======================================

h1({}, "Welcome"),# but this template handlered cgi!

$c->include('foo', handler=>'cgi.pl'),# change handler against layout
$c->include('bar'); # handler still "ep" unless template "foo" (and its includes) didn`t changes it by $c->stash('handler'=>...)

<<END_HTML,
<!-- comment -->
END_HTML

$self->app->log->info("Template has done")
  && undef,

There are NO Mojolicious helpers without OO-style prefixes: $c->.

REMEMBER! Escapes untrusted data. No auto escapes!

div({}, esc(...UNTRUSTED DATA...)),

esc is a shortcut for &CGI::escapeHTML.

NOTE about autoloading subs and methods

In template you can generate any tag:

# <foo-tag class="class1">...</foo-tag>
foo_tag({-class=>"class1",}, '...'),
# same
$self->foo_tag({-class=>"class1",}, '...'),

OPTIONS

handler_name ( string )

# Mojolicious::Lite
plugin RenderCGI => {handler_name => 'pl'};

Handler name, defaults to cgi.pl.

default (bool)

When true then default handler. Defaults - 0 (no this default handler for app).

default => 1,

Is similar to $app->defaults(handler=> <name above>);

cgi_import ( string (space delims) | arrayref )

What subs do you want from CGI.pm import

$app->plugin('RenderCGI', import=>':html ...');
# or 
$app->plugin('RenderCGI', import=>[qw(:html ...)]);

See at perldoc CGI.pm section "USING THE FUNCTION-ORIENTED INTERFACE". Default is ':html :form' (string) same as [qw(:html :form)] (arrayref).

cgi_import=>[], # none import subs CGI

exception ( string | hashref )

To show fatal errors (not found, compile and runtime errors) as content of there template you must set string template.

Set string comment same above but include html comment tag

<!-- $error -->

To show fatals as standard Mojolicious 'exception.<mode>.html.ep' page - set hashref like {'handler'=>'ep', 'layout' => undef,}.

Overwise fatals are skips (empty string whole template).

By default set to hashref {'handler'=>'ep', 'layout' => undef,}.

exception => 'template', 

Methods, subs, helpers...

Implements register method only. Register new renderer handler. No new helpers.

SEE ALSO

CGI

CGI::HTML::Functions

Mojolicious::Plugin::TagHelpers

HTML::Tiny

AUTHOR

Михаил Че (Mikhail Che), <mche[-at-]cpan.org>

BUGS / CONTRIBUTING

Please report any bugs or feature requests at https://github.com/mche/Mojolicious-Plugin-RenderCGI/issues. Pull requests also welcome.

COPYRIGHT

Copyright 2016 Mikhail Che.

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