Commit 13ad65b4a47ae585ee0aca32ce26057de4e762a1
1 parent
5df25c5c
Правка футера 2
Showing
5 changed files
with
201 additions
and
8 deletions
 
Show diff stats
| 1 | +<?php | |
| 2 | + | |
| 3 | +namespace common\models; | |
| 4 | + | |
| 5 | + | |
| 6 | +use artbox\core\models\Feedback as CoreFeedback; | |
| 7 | + | |
| 8 | + | |
| 9 | +class FeedBack extends CoreFeedback | |
| 10 | +{ | |
| 11 | + | |
| 12 | + public $reCaptcha; | |
| 13 | + | |
| 14 | + public function rules() | |
| 15 | + { | |
| 16 | + return [ | |
| 17 | + [ | |
| 18 | + [ | |
| 19 | + 'name', | |
| 20 | + 'email', | |
| 21 | + 'phone', | |
| 22 | + ], | |
| 23 | + 'required', | |
| 24 | + 'on' => self::SCENARIO_DEFAULT, | |
| 25 | + ], | |
| 26 | + [[ | |
| 27 | + 'reCaptcha' | |
| 28 | + ], | |
| 29 | + \himiklab\yii2\recaptcha\ReCaptchaValidator::className(), | |
| 30 | + 'secret' => '6LcmYmcUAAAAACVi_73RmSAIjJlw4BCgQpfUsrPs', | |
| 31 | + 'uncheckedMessage' => 'Please confirm that you are not a bot.', | |
| 32 | + 'on' => self::SCENARIO_DEFAULT, | |
| 33 | + ], | |
| 34 | + [ | |
| 35 | + [ | |
| 36 | + 'name', | |
| 37 | + 'email', | |
| 38 | + ], | |
| 39 | + 'required', | |
| 40 | + 'on' => self::SCENARIO_FEEDBACK, | |
| 41 | + ], | |
| 42 | + [ | |
| 43 | + [ | |
| 44 | + 'phone', | |
| 45 | + 'name', | |
| 46 | + ], | |
| 47 | + 'required', | |
| 48 | + 'on' => self::SCENARIO_CALLBACK, | |
| 49 | + ], | |
| 50 | + [ | |
| 51 | + ['email'], | |
| 52 | + 'email', | |
| 53 | + ], | |
| 54 | + // [ | |
| 55 | + // [ 'phone' ], | |
| 56 | + // 'match', | |
| 57 | + // 'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/', | |
| 58 | + // ], | |
| 59 | + [ | |
| 60 | + [ | |
| 61 | + 'name', | |
| 62 | + 'phone', | |
| 63 | + 'email', | |
| 64 | + ], | |
| 65 | + 'string', | |
| 66 | + 'max' => 255, | |
| 67 | + ], | |
| 68 | + [ | |
| 69 | + [ | |
| 70 | + 'message', | |
| 71 | + ], | |
| 72 | + 'string', | |
| 73 | + ], | |
| 74 | + [ | |
| 75 | + [ | |
| 76 | + 'status', | |
| 77 | + ], | |
| 78 | + 'boolean', | |
| 79 | + ], | |
| 80 | + [ | |
| 81 | + 'returnUrl', | |
| 82 | + 'safe', | |
| 83 | + ], | |
| 84 | + ]; | |
| 85 | + } | |
| 86 | + | |
| 87 | +} | |
| 88 | + | |
| 89 | + | |
| 90 | +?> | |
| 0 | 91 | \ No newline at end of file | ... | ... | 
composer.json
| ... | ... | @@ -38,7 +38,8 @@ | 
| 38 | 38 | "kartik-v/yii2-widget-datepicker": "@dev", | 
| 39 | 39 | "yiisoft/yii2-jui": "^2.0", | 
| 40 | 40 | "skeeks/yii2-assets-auto-compress": "*", | 
| 41 | - "zyx/zyx-phpmailer": "@stable" | |
| 41 | + "zyx/zyx-phpmailer": "@stable", | |
| 42 | + "himiklab/yii2-recaptcha-widget": "*" | |
| 42 | 43 | }, | 
| 43 | 44 | "require-dev": { | 
| 44 | 45 | "yiisoft/yii2-debug": "~2.0.0", | ... | ... | 
composer.lock
| ... | ... | @@ -4,7 +4,8 @@ | 
| 4 | 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", | 
| 5 | 5 | "This file is @generated automatically" | 
| 6 | 6 | ], | 
| 7 | - "content-hash": "327786678167aec639aac10434a84c27", | |
| 7 | + "hash": "2f688f9614eac03da72eef7df04c6d22", | |
| 8 | + "content-hash": "3a33f40efa994f6a041392840080911f", | |
| 8 | 9 | "packages": [ | 
| 9 | 10 | { | 
| 10 | 11 | "name": "2amigos/yii2-tinymce-widget", | 
| ... | ... | @@ -1090,6 +1091,50 @@ | 
| 1090 | 1091 | "time": "2017-03-20 17:10:46" | 
| 1091 | 1092 | }, | 
| 1092 | 1093 | { | 
| 1094 | + "name": "himiklab/yii2-recaptcha-widget", | |
| 1095 | + "version": "1.2.1", | |
| 1096 | + "source": { | |
| 1097 | + "type": "git", | |
| 1098 | + "url": "https://github.com/himiklab/yii2-recaptcha-widget.git", | |
| 1099 | + "reference": "cc8a023bf51db3b40f1b8532cd94fc00c532edf5" | |
| 1100 | + }, | |
| 1101 | + "dist": { | |
| 1102 | + "type": "zip", | |
| 1103 | + "url": "https://api.github.com/repos/himiklab/yii2-recaptcha-widget/zipball/cc8a023bf51db3b40f1b8532cd94fc00c532edf5", | |
| 1104 | + "reference": "cc8a023bf51db3b40f1b8532cd94fc00c532edf5", | |
| 1105 | + "shasum": "" | |
| 1106 | + }, | |
| 1107 | + "require": { | |
| 1108 | + "yiisoft/yii2": "~2.0.11", | |
| 1109 | + "yiisoft/yii2-httpclient": "*" | |
| 1110 | + }, | |
| 1111 | + "type": "yii2-extension", | |
| 1112 | + "autoload": { | |
| 1113 | + "psr-4": { | |
| 1114 | + "himiklab\\yii2\\recaptcha\\": "" | |
| 1115 | + } | |
| 1116 | + }, | |
| 1117 | + "notification-url": "https://packagist.org/downloads/", | |
| 1118 | + "license": [ | |
| 1119 | + "MIT" | |
| 1120 | + ], | |
| 1121 | + "authors": [ | |
| 1122 | + { | |
| 1123 | + "name": "HimikLab", | |
| 1124 | + "homepage": "https://github.com/himiklab/" | |
| 1125 | + } | |
| 1126 | + ], | |
| 1127 | + "description": "Yii2 Google reCAPTCHA widget", | |
| 1128 | + "keywords": [ | |
| 1129 | + "captcha", | |
| 1130 | + "google", | |
| 1131 | + "recaptcha", | |
| 1132 | + "widget", | |
| 1133 | + "yii2" | |
| 1134 | + ], | |
| 1135 | + "time": "2018-07-03 13:34:52" | |
| 1136 | + }, | |
| 1137 | + { | |
| 1093 | 1138 | "name": "hiqdev/yii2-asset-icheck", | 
| 1094 | 1139 | "version": "1.0.2.5", | 
| 1095 | 1140 | "source": { | 
| ... | ... | @@ -1491,7 +1536,7 @@ | 
| 1491 | 1536 | }, | 
| 1492 | 1537 | "dist": { | 
| 1493 | 1538 | "type": "zip", | 
| 1494 | - "url": "https://api.github.com/repos/kartik-v/yii2-widget-datepicker/zipball/9110ecce9deb59dc116fe6c3dd6df5d7eb439a3c", | |
| 1539 | + "url": "https://api.github.com/repos/kartik-v/yii2-widget-datepicker/zipball/39e0e71277d0f115341e118a2b879a0dfcbd01c3", | |
| 1495 | 1540 | "reference": "9110ecce9deb59dc116fe6c3dd6df5d7eb439a3c", | 
| 1496 | 1541 | "shasum": "" | 
| 1497 | 1542 | }, | 
| ... | ... | @@ -1600,7 +1645,7 @@ | 
| 1600 | 1645 | }, | 
| 1601 | 1646 | "dist": { | 
| 1602 | 1647 | "type": "zip", | 
| 1603 | - "url": "https://api.github.com/repos/kartik-v/yii2-widget-select2/zipball/690ddac32f6796f63b8317783f26e89ca26fa94a", | |
| 1648 | + "url": "https://api.github.com/repos/kartik-v/yii2-widget-select2/zipball/d08a5b302fe04216bd04290f0e99e26386801a37", | |
| 1604 | 1649 | "reference": "690ddac32f6796f63b8317783f26e89ca26fa94a", | 
| 1605 | 1650 | "shasum": "" | 
| 1606 | 1651 | }, | 
| ... | ... | @@ -2080,7 +2125,7 @@ | 
| 2080 | 2125 | } | 
| 2081 | 2126 | ], | 
| 2082 | 2127 | "description": "PHPMailer is a full-featured email creation and transfer class for PHP", | 
| 2083 | - "time": "2014-05-14T07:04:18+00:00" | |
| 2128 | + "time": "2014-05-14 07:04:18" | |
| 2084 | 2129 | }, | 
| 2085 | 2130 | { | 
| 2086 | 2131 | "name": "phpoffice/phpexcel", | 
| ... | ... | @@ -3062,6 +3107,53 @@ | 
| 3062 | 3107 | "time": "2016-12-20 13:26:02" | 
| 3063 | 3108 | }, | 
| 3064 | 3109 | { | 
| 3110 | + "name": "yiisoft/yii2-httpclient", | |
| 3111 | + "version": "2.0.4", | |
| 3112 | + "source": { | |
| 3113 | + "type": "git", | |
| 3114 | + "url": "https://github.com/yiisoft/yii2-httpclient.git", | |
| 3115 | + "reference": "720e3c9bdda260abffe61babfe39b91c4308ac4c" | |
| 3116 | + }, | |
| 3117 | + "dist": { | |
| 3118 | + "type": "zip", | |
| 3119 | + "url": "https://api.github.com/repos/yiisoft/yii2-httpclient/zipball/720e3c9bdda260abffe61babfe39b91c4308ac4c", | |
| 3120 | + "reference": "720e3c9bdda260abffe61babfe39b91c4308ac4c", | |
| 3121 | + "shasum": "" | |
| 3122 | + }, | |
| 3123 | + "require": { | |
| 3124 | + "yiisoft/yii2": "~2.0.0" | |
| 3125 | + }, | |
| 3126 | + "type": "yii2-extension", | |
| 3127 | + "extra": { | |
| 3128 | + "branch-alias": { | |
| 3129 | + "dev-master": "2.0.x-dev" | |
| 3130 | + } | |
| 3131 | + }, | |
| 3132 | + "autoload": { | |
| 3133 | + "psr-4": { | |
| 3134 | + "yii\\httpclient\\": "" | |
| 3135 | + } | |
| 3136 | + }, | |
| 3137 | + "notification-url": "https://packagist.org/downloads/", | |
| 3138 | + "license": [ | |
| 3139 | + "BSD-3-Clause" | |
| 3140 | + ], | |
| 3141 | + "authors": [ | |
| 3142 | + { | |
| 3143 | + "name": "Paul Klimov", | |
| 3144 | + "email": "klimov.paul@gmail.com" | |
| 3145 | + } | |
| 3146 | + ], | |
| 3147 | + "description": "HTTP client extension for the Yii framework", | |
| 3148 | + "keywords": [ | |
| 3149 | + "curl", | |
| 3150 | + "http", | |
| 3151 | + "httpclient", | |
| 3152 | + "yii2" | |
| 3153 | + ], | |
| 3154 | + "time": "2017-06-23 09:36:13" | |
| 3155 | + }, | |
| 3156 | + { | |
| 3065 | 3157 | "name": "yiisoft/yii2-imagine", | 
| 3066 | 3158 | "version": "2.1.0", | 
| 3067 | 3159 | "source": { | 
| ... | ... | @@ -3265,7 +3357,7 @@ | 
| 3265 | 3357 | "theme", | 
| 3266 | 3358 | "yii2" | 
| 3267 | 3359 | ], | 
| 3268 | - "time": "2017-05-22T11:24:30+00:00" | |
| 3360 | + "time": "2017-05-22 11:24:30" | |
| 3269 | 3361 | }, | 
| 3270 | 3362 | { | 
| 3271 | 3363 | "name": "zyx/zyx-phpmailer", | 
| ... | ... | @@ -3309,7 +3401,7 @@ | 
| 3309 | 3401 | "phpmailer", | 
| 3310 | 3402 | "yii2" | 
| 3311 | 3403 | ], | 
| 3312 | - "time": "2014-05-14T20:30:24+00:00" | |
| 3404 | + "time": "2014-05-14 20:30:24" | |
| 3313 | 3405 | } | 
| 3314 | 3406 | ], | 
| 3315 | 3407 | "packages-dev": [ | ... | ... | 
frontend/config/main.php
| ... | ... | @@ -28,6 +28,12 @@ | 
| 28 | 28 | 'csrfParam' => '_csrf-frontend', | 
| 29 | 29 | 'baseUrl' => '/', | 
| 30 | 30 | ], | 
| 31 | + 'reCaptcha' => [ | |
| 32 | + 'name' => 'reCaptcha', | |
| 33 | + 'class' => 'himiklab\yii2\recaptcha\ReCaptcha', | |
| 34 | + 'siteKey' => '6LcmYmcUAAAAAASKWf3qnHXJCg9vGfJfDefY9TzW', | |
| 35 | + 'secret' => '6LcmYmcUAAAAACVi_73RmSAIjJlw4BCgQpfUsrPs', | |
| 36 | + ], | |
| 31 | 37 | 'user' => [ | 
| 32 | 38 | 'identityClass' => 'artbox\order\models\Customer', | 
| 33 | 39 | 'enableAutoLogin' => true, | ... | ... | 
frontend/views/site/contact.php
| ... | ... | @@ -11,6 +11,7 @@ | 
| 11 | 11 | use yii\helpers\Html; | 
| 12 | 12 | use yii\bootstrap\ActiveForm; | 
| 13 | 13 | use yii\web\View; | 
| 14 | +use himiklab\yii2\recaptcha\ReCaptcha; | |
| 14 | 15 | |
| 15 | 16 | MapAsset::register($this); | 
| 16 | 17 | $settings = Settings::getInstance(); | 
| ... | ... | @@ -168,7 +169,10 @@ JS; | 
| 168 | 169 | ] | 
| 169 | 170 | ); ?> | 
| 170 | 171 | </div> | 
| 171 | - | |
| 172 | + <?= $form->field($contact, 'reCaptcha')->widget( | |
| 173 | + \himiklab\yii2\recaptcha\ReCaptcha::className(), | |
| 174 | + ['siteKey' => '6LcmYmcUAAAAAASKWf3qnHXJCg9vGfJfDefY9TzW'] | |
| 175 | + ) ?> | |
| 172 | 176 | <div class="col-sm-12 text-center"> | 
| 173 | 177 | <?= Html::submitButton( | 
| 174 | 178 | '<i class="fa fa-envelope-o"></i> Отправить сообщение', | ... | ... | 
