swordfox / silverstripe-recaptchamultiple
A spam protector and form field using the Google's reCAPTCHA 3 and supports multiple forms on a single page.
Installs: 2 031
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:silverstripe-vendormodule
Requires
README
A spam protector and form field using the Google's reCAPTCHA 3 that supports multiple forms
Based on https://github.com/UndefinedOffset/silverstripe-nocaptcha - The main changes are the way it injects CustomJs, most of it has been moved to the JS file.
Requirements
- SilverStripe 4.x
- SilverStripe Spam Protection 3.x
- PHP CURL
Installation
composer require swordfox/silverstripe-recaptchamultiple
After installing the module via composer or manual install you must set the spam protector to RecaptchaMultipleProtector, this needs to be set a config file e.g. mysite/_config/recaptchamultiple.yml.
SilverStripe\SpamProtection\Extension\FormSpamProtectionExtension: default_spam_protector: Swordfox\RecaptchaMultiple\Forms\RecaptchaMultipleProtector
Add the "spam protection" field to your form fields.
$form->enableSpamProtection() ->fields()->fieldByName('Captcha') ->setTitle("Spam protection") ->setDescription("Please tick the box to prove you're a human and help us stop spam.");
Set a callback for each field, handy for ajax forms
$form->enableSpamProtection() ->fields()->fieldByName('Captcha') ->setCallback("onSubmit");
Configuration
There are multiple configuration options for the field, you must set the site_key and the secret_key which you can get from the reCAPTCHA page. These configuration options must be added to a config filee.g. mysite/_config/recaptchamultiple.yml.
Swordfox\RecaptchaMultiple\Forms\RecaptchaMultipleField: site_key: "YOUR_SITE_KEY" #Your site key (required) secret_key: "YOUR_SECRET_KEY" #Your secret key (required) verify_ssl: true #Allows you to disable php-curl's SSL peer verification by setting this to false (optional, defaults to true) default_theme: "light" #Default theme color (optional, light or dark, defaults to light) default_type: "image" #Default captcha type (optional, image or audio, defaults to image) default_size: "normal" #Default size (optional, normal, compact or invisible, defaults to normal) default_badge: "bottomright" #Default badge position (bottomright, bottomleft or inline, defaults to bottomright) proxy_server: "" #Your proxy server address (optional) proxy_auth: "" #Your proxy server authentication information (optional)