YiiRecaptcha
Yii Recaptcha extension. This simple extension was built to give developers full control over their recaptcha styling via custom theming., (*1)
Please see https://developers.google.com/recaptcha/docs/customization., (*2)
Installation
- Install via composer - https://packagist.org/packages/amnah/yii-recaptcha
- OR extract files into vendor dir - protected/vendor/amnah/yii-recaptcha
Usage
- Ensure that you have a model with an appropriate "recaptcha" attribute
- Add path alias (modify path as needed)
Yii::setPathOfAlias('YiiRecaptcha',Yii::getPathOfAlias("application.vendor.amnah.yii-recaptcha"));
- Call widget in view file (take note of the style attribute, as that determines the function it calls)
<?php $this->widget('YiiRecaptcha\Recaptcha', array(
'model' => $model,
'attribute' => 'recaptcha',
'publicKey' => '<recaptcha public key>',
'style' => 'custom',
)); ?>
/**
* The styling of the recaptcha widget, which will decide which function to use
* For example,
* $style = "default" => $this->runDefault();
* $style = "custom" => $this->runCustom();
* @var string
*/
- Add validator to model rules()
public function rules() {
return array(
...
array('recaptcha', 'required'),
array('recaptcha', 'YiiRecaptcha\RecaptchaValidator', 'privateKey' => '<recaptcha private key>'),
...
);
}
Extending
- Create a new file that extends the YiiRecaptcha\Recaptcha or YiiRecaptcha\RecaptchaValidator class
- Reference the new file instead of the original
<?php $this->widget('application.extensions.MyRecaptcha', array(...)); ?>