Go to file
2011-09-09 20:06:17 +02:00
DependencyInjection Added "length" option and changed the parameters names 2011-09-09 20:02:47 +02:00
Generator Added "length" option and changed the parameters names 2011-09-09 20:02:47 +02:00
Resources Added "length" option and changed the parameters names 2011-09-09 20:02:47 +02:00
Type Added "length" option and changed the parameters names 2011-09-09 20:02:47 +02:00
Validator Created captcha type (this works, but still no image generation) 2011-08-25 22:50:59 +02:00
GregwarCaptchaBundle.php Created captcha type (this works, but still no image generation) 2011-08-25 22:50:59 +02:00
LICENSE Added LICENSE file 2011-08-29 17:56:24 +02:00
README.md Updated README 2011-09-09 20:06:17 +02:00

Gregwar's CaptchaBundle

The GregwarCaptchaBundle adds support for a "captcha" form type for the Symfony2 form component.

Installation

Step 1: Download the GregwarCaptchaBundle

Ultimately, the GregwarCaptchaBundle files should be downloaded to the 'vendor/bundles/Gregwar/CaptchaBundle' directory.

You can accomplish this several ways, depending on your personal preference. The first method is the standard Symfony2 method.

Using the vendors script

Add the following lines to your deps file:

    [GregwarCaptchaBundle]
        git=git://github.com/Gregwar/CaptchaBundle.git
        target=/bundles/Gregwar/CaptchaBundle

Now, run the vendors script to download the bundle:

$ php bin/vendors install

Using submodules

If you prefer instead to use git submodules, then run the following:

$ git submodule add git://github.com/Gregwar/CaptchaBundle.git vendor/bundles/Gregwar/CaptchaBundle
$ git submodule update --init

Step 2: Configure the Autoloader

Now you will need to add the Gregwar namespace to your autoloader:

<?php
// app/autoload.php

$loader->registerNamspaces(array(
    // ...
    'Gregwar' => __DIR__.'/../vendor/bundles',
));

Step 3: Enable the bundle

Finally, enable the bundle in the kernel:

<?php
// app/appKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Gregwar\CaptchaBundle\GregwarCaptchaBundle(),
    );
}

Configuration

Add the following configuration to your app/config/config.yml:

gregwar_captcha: ~

Usage

You can use the "captcha" type in your forms this way:

<?php
    // ...
    $builder->add('captcha', 'captcha'); // That's all !
    // ...

Note that the generated image will be embeded in the HTML document, to avoid dealing with route and subrequests.

You can define the following type option :

  • width: the width of the captcha image (default=120)
  • height: the height of the captcha image (default=40)
  • length: the length of the captcha (number of chars, default 5)

Example :

<?php
    // ...
    $builder->add('captcha', 'captcha', array(
        'width' => 200,
        'height' => 50,
        'length' => 6
    ));

You can also set these options for your whole application using the gregwar_captcha configuration entry in your config.yml file:

gregwar_captcha:
    width: 200
    height: 50
    length: 6

Form theming

The widget support the standard symfony theming, see the documentation for details on how to accomplish this.

The default rendering is:

{% block captcha_widget %}
{% spaceless %}
    <img src="{{ captcha_code }}" title="captcha" width="{{ captcha_width }}" height="{{ captcha_height }}" />
    {{ form_widget(form) }}
{% spaceless %}
{% endblock %}

License

This bundle is under the MIT license. See the complete license in the bundle: LICENSE