diff --git a/docs/enhancing-and-overriding/overriding-classes.md b/docs/enhancing-and-overriding/overriding-classes.md index 43868fe..118635f 100644 --- a/docs/enhancing-and-overriding/overriding-classes.md +++ b/docs/enhancing-and-overriding/overriding-classes.md @@ -79,7 +79,9 @@ Now, to tell the module to use your class instead, you simply need to update the the `Module::classMap` attribute. ```php -\\ ... + +// ... + 'modules' => [ 'user' => [ 'class' => Da\User\Module::class, @@ -88,6 +90,7 @@ the `Module::classMap` attribute. ] ] ] + ``` The definition can be any of the following (from Yii2's DI container): diff --git a/docs/enhancing-and-overriding/overriding-views.md b/docs/enhancing-and-overriding/overriding-views.md index 033c096..fb9c216 100644 --- a/docs/enhancing-and-overriding/overriding-views.md +++ b/docs/enhancing-and-overriding/overriding-views.md @@ -5,7 +5,9 @@ In case you need to override the default views (that you surely have to do if yo Bootstrap), Yii2 provides a mechanism that is really easy to do: ```php + // ... other configuration here + 'components' => [ 'view' => [ 'theme' => [ @@ -15,6 +17,7 @@ Bootstrap), Yii2 provides a mechanism that is really easy to do: ] ] ] + // ... ``` diff --git a/docs/helpful-guides/how-to-add-captcha-widget.md b/docs/helpful-guides/how-to-add-captcha-widget.md new file mode 100644 index 0000000..230c8be --- /dev/null +++ b/docs/helpful-guides/how-to-add-captcha-widget.md @@ -0,0 +1,145 @@ +How to Add Captcha Widget +========================= + +In order to add the Yii 2 captcha widget you need to: + +- Override the Form class you wish to add the captcha rule to +- Override the view where the form is rendering +- Add captcha action to a controller +- Configure Module and Application + + +Override the Form +----------------- + +For the sake of the example, we are going to override the `Da\User\Form\RecoveryForm` class: + +```php +namespace app\forms; + +class RecoveryForm extends Da\User\Form\RecoveryForm { + + public $captcha; + + public function rules() { + + $rules = parent::rules(); + + $rules[] = ['captcha', 'required']; + $rules[] = ['captcha', 'captcha']; + + return $rules; + } +} + +``` + +Overriding the View +------------------- + +Create a new file and name it `request.php` and add it in `@app/views/user/recovery`. Add the captcha widget to it: + +```php +title = Yii::t('usuario', 'Recover your password'); +$this->params['breadcrumbs'][] = $this->title; +?> +
+
+
+
+

title) ?>

+
+
+ $model->formName(), + 'enableAjaxValidation' => true, + 'enableClientValidation' => false, + ] + ); ?> + + field($model, 'email')->textInput(['autofocus' => true]) ?> + + field($model, 'captcha') + ->widget(Captcha::className(), ['captchaAction' => ['/site/captcha']]) ?> + + 'btn btn-primary btn-block']) ?>
+ + +
+
+
+
+ +``` + +Add Captcha Action to a Controller +---------------------------------- + +```php + +namespace app\controllers; + +class RecoveryController extends \yii\web\Controller +{ + // ... + + public function actions() + { + return [ + 'captcha' => [ + 'class' => 'yii\captcha\CaptchaAction', + ], + ]; + } + + // ... +} + +``` + +Configure Module and Application +-------------------------------- + +Finally, we have to configure the module and the application to ensure is using our form and our view: + +```php + +// ... + +'modules' => [ + 'user' => [ + 'class' => Da\User\Module::class, + 'classMap' => [ + 'RecoveryForm' => 'app\forms\RecoveryForm' + ] + ] +], + +// ... + +'components' => [ + 'view' => [ + 'theme' => [ + 'pathMap' => [ + '@Da/User/resources/views' => '@app/views/user' + ] + ] + ] +] + +``` + +© [2amigos](http://www.2amigos.us/) 2013-2017 diff --git a/docs/index.md b/docs/index.md index 93b652c..464c1be 100644 --- a/docs/index.md +++ b/docs/index.md @@ -143,6 +143,7 @@ there all your events and then include that file on your Helpful Guides -------------- +- [How to Add Captcha Widget](helpful-guides/how-to-add-captcha-widget.md) - [Separate Frontend and Backend Sessions](helpful-guides/separate-frontend-and-backend-sessions.md) - [Social Network Authentication](helpful-guides/social-network-authentication.md)