Доброго всем
¡ ¡ ¡ ALL GLORY TO GLORIA ! ! !
Mojolicious::Plugin::RenderCGI - Rendering Mojoliciuos template by CGI.pm subs as tags.
$app->plugin('RenderCGI');
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"
do BLOCK
# There are 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 div({-class=>"container"}, span('Okay here'), p(['blah', 'blaz']), ), $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->.
$c->
REMEMBER! Escapes untrusted data. No auto escapes!
div({}, esc(...UNTRUSTED DATA...)),
esc is a shortcut for &CGI::escapeHTML.
esc
In template you can generate any tag:
# <foo-tag class="class1">...</foo-tag> foo_tag({-class=>"class1",}, '...'), # same $self->foo_tag({-class=>"class1",}, '...'),
# Mojolicious::Lite plugin RenderCGI => {handler_name => 'pl'};
Handler name, defaults to cgi.pl.
When true then default handler. Defaults - 0 (no this default handler for app).
true
default => 1,
Is similar to $app->defaults(handler=> <name above>);
$app->defaults(handler=> <name above>);
What subs do you want from CGI.pm import
$app->plugin('RenderCGI', cgi_import=>':html ...'); # or $app->plugin('RenderCGI', cgi_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
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,}.
{'handler'=>'ep', 'layout' => undef,}
exception => 'template',
Implements register method only. Register new renderer handler. No new helpers.
CGI
CGI::HTML::Functions
Mojolicious::Plugin::TagHelpers
HTML::Tiny
Михаил Че (Mikhail Che), <mche[-at-]cpan.org>
<mche[-at-]cpan.org>
Please report any bugs or feature requests at https://github.com/mche/Mojolicious-Plugin-RenderCGI/issues. Pull requests also welcome.
Copyright 2016+ Mikhail Che.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Mojolicious::Plugin::RenderCGI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Mojolicious::Plugin::RenderCGI
CPAN shell
perl -MCPAN -e shell install Mojolicious::Plugin::RenderCGI
For more information on module installation, please visit the detailed CPAN module installation guide.