The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Mojolicious::Plugin::Qaptcha - jQuery QapTcha Plugin for Mojolicious

SYNOPSIS

  # Mojolicious
  $app->plugin('Qaptcha', {
    inbuild_jquery          => 1,
    inbuild_jquery_ui       => 1,
    inbuild_jquery_ui_touch => 1,
    txtLock                 => "LOCKED",
    txtUnlock               => "UNLOCKED",
    disabledSubmit          => "true",
    autoRevert              => "false",
    autoSubmit              => "true",
    qaptcha_url             => '/do_unlock',
  });

  # Mojolicious::Lite
  plugin 'Qaptcha', {
    inbuild_jquery          => 1,
    inbuild_jquery_ui       => 1,
    inbuild_jquery_ui_touch => 1,
    txtLock                 => "LOCKED",
    txtUnlock               => "UNLOCKED",
    disabledSubmit          => "true",
    autoRevert              => "false",
    autoSubmit              => "true",
    qaptcha_url             => '/do_unlock',
  };

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');
  }

DESCRIPTION

Mojolicious::Plugin::Qaptcha is a 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.

METHODS

Mojolicious::Plugin::Qaptcha inherits all methods from Mojolicious::Plugin and implements the following new ones.

register

  $plugin->register(Mojolicious->new, $options_hash);

Register plugin in Mojolicious application.

HELPERS

qaptcha_include

Includes (optional configured) jquery and qaptcha javascript.

qaptcha_is_unlocked

Returns 1 if QapTcha is unlocked.

OPTIONS

inbuild_jquery

If set to 1 jQuery 1.8.2 is rendered into %= qaptcha_include.

inbuild_jquery_ui

If set to 1 jQuery UI - v1.8.2 is rendered into %= qaptcha_include.

inbuild_jquery_ui_touch

If set to 1 jQuery.UI.iPad plugin is rendered into %= qaptcha_include.

txtLock

Text to display for locked QapTcha

txtUnlock

Text to display for unlocked QapTcha

disabledSubmit

Add the "disabled" attribut to the submit button default: false

autoRevert

Slider returns to the init-position, when the user hasn't dragged it to end default: true

autoSubmit

If true, auto-submit form when the user has dragged it to the end default: false

qaptcha_url

Configurable route to unlock qaptcha

an example is located in ex/qaptcha.pl.

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/

SOURCE REPOSITORY

http://github.com/hrupprecht/Mojolicious-Plugin-Qaptcha

AUTHOR

Holger Rupprecht - Holger.Rupprecht@gmx.de

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

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.