=pod =encoding utf8 =head1 NAME Mojolicious::Plugin::Qaptcha - jQuery QapTcha Plugin for Mojolicious =head1 SYNOPSIS # Mojolicious $app->plugin('Qaptcha', { inbuild_jquery => 1, inbuild_jquery_ui => 1, inbuild_jquery_ui_touch => 1, }); # Mojolicious::Lite plugin 'Qaptcha', { inbuild_jquery => 1, inbuild_jquery_ui => 1, inbuild_jquery_ui_touch => 1, }; and in your templates @@ layouts/default.html.ep <!DOCTYPE html> <html> <head> %= qaptcha_include </head> <body> %= content; </body> </html> @@ index.html.ep %= layout 'default'; <form method="post"> <fieldset> <label>First Name</label> <input name="firstname" type="text"><br> <label>Last Name</label> <input name="lastname" type="text"> <input name="submit" value="Submit form" style="margin-top:15px;" type="submit"> <br /> <!-- put a qaptcha element inside a form --> <div class="QapTcha"></div> </fieldset> </form> and in your controller # Mojolicious::Lite any '/' => sub { my $self = shift; do_something if $self->qaptcha_is_unlocked; $self->render('index'); }; # Mojolicious sub index { my $self = shift; do_something if $self->qaptcha_is_unlocked; $self->render('index'); } =head1 DESCRIPTION L<Mojolicious::Plugin::Qaptcha> is a L<Mojolicious> plugin. It brings jQuery QapTcha functionality inside your html form in an element with class 'QapTcha'. When QapTcha is unlocked, next request has to submit form. Otherwise QapTcha will be locked back. =head1 METHODS L<Mojolicious::Plugin::Qaptcha> inherits all methods from L<Mojolicious::Plugin> and implements the following new ones. =head2 register $plugin->register(Mojolicious->new, $options_hash); Register plugin in L<Mojolicious> application. =head2 HELPERS =over 4 =item qaptcha_include Includes (optional configured) jquery and qaptcha javascript. =item qaptcha_is_unlocked Returns 1 if QapTcha is unlocked. =back =head2 OPTIONS =over 4 =item inbuild_jquery If set to 1 jQuery 1.8.2 is rendered into %= qaptcha_include. =item inbuild_jquery_ui If set to 1 jQuery UI - v1.8.2 is rendered into %= qaptcha_include. =item inbuild_jquery_ui_touch If set to 1 jQuery.UI.iPad plugin is rendered into %= qaptcha_include. =back an example you find in L<ex/qaptcha.pl|https://github.com/hrupprecht/Mojolicious-Plugin-Qaptcha/blob/master/ex/qaptcha.pl>. =head1 INSTALLATION To install this module, run the following commands: perl Build.PL ./Build ./Build test ./Build install SUPPORT AND DOCUMENTATION After installing, you can find documentation for this module with the perldoc command. perldoc Mojolicious::Plugin::Qaptcha You can also look for information at: AnnoCPAN, Annotated CPAN documentation http://annocpan.org/dist/Mojolicious-Plugin-Qaptcha CPAN Ratings http://cpanratings.perl.org/d/Mojolicious-Plugin-Qaptcha Search CPAN http://search.cpan.org/dist/Mojolicious-Plugin-Qaptcha/ =head1 SOURCE REPOSITORY L<http://github.com/hrupprecht/Mojolicious-Plugin-Qaptcha> =head1 AUTHOR Holger Rupprecht - C<Holger.Rupprecht@gmx.de> =head1 SEE ALSO L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicio.us>. =head1 COPYRIGHT AND LICENSE Copyright (C) 2013 by Holger Rupprecht This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut