Commit db63ba79a963429084fb696749e3a496e576ee84
1 parent
94a1dbd2
-User's data form ready
Showing
4 changed files
with
169 additions
and
90 deletions
Show diff stats
composer.json
| ... | ... | @@ -34,7 +34,8 @@ |
| 34 | 34 | "phpoffice/phpexcel": "^1.8", |
| 35 | 35 | "bower-asset/amcharts": "@dev", |
| 36 | 36 | "bower-asset/pnotify": "@dev", |
| 37 | - "kartik-v/yii2-widget-colorinput": "*" | |
| 37 | + "kartik-v/yii2-widget-colorinput": "*", | |
| 38 | + "kartik-v/yii2-widget-datepicker": "@dev" | |
| 38 | 39 | }, |
| 39 | 40 | "require-dev": { |
| 40 | 41 | "yiisoft/yii2-debug": "~2.0.0", | ... | ... |
composer.lock
| ... | ... | @@ -4,8 +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 | - "hash": "482c96d17c08496f9d67ccef1d071cc3", | |
| 8 | - "content-hash": "ea8f4f552cdc9b0c7ac2eeb4ae9afa66", | |
| 7 | + "hash": "b18802ddb055188c55f12e121f5e14cf", | |
| 8 | + "content-hash": "74adfbddeb0bd9b6f951a699924afa86", | |
| 9 | 9 | "packages": [ |
| 10 | 10 | { |
| 11 | 11 | "name": "2amigos/yii2-tinymce-widget", |
| ... | ... | @@ -1388,6 +1388,60 @@ |
| 1388 | 1388 | "time": "2016-01-14 11:15:49" |
| 1389 | 1389 | }, |
| 1390 | 1390 | { |
| 1391 | + "name": "kartik-v/yii2-widget-datepicker", | |
| 1392 | + "version": "dev-master", | |
| 1393 | + "source": { | |
| 1394 | + "type": "git", | |
| 1395 | + "url": "https://github.com/kartik-v/yii2-widget-datepicker.git", | |
| 1396 | + "reference": "9110ecce9deb59dc116fe6c3dd6df5d7eb439a3c" | |
| 1397 | + }, | |
| 1398 | + "dist": { | |
| 1399 | + "type": "zip", | |
| 1400 | + "url": "https://api.github.com/repos/kartik-v/yii2-widget-datepicker/zipball/9110ecce9deb59dc116fe6c3dd6df5d7eb439a3c", | |
| 1401 | + "reference": "9110ecce9deb59dc116fe6c3dd6df5d7eb439a3c", | |
| 1402 | + "shasum": "" | |
| 1403 | + }, | |
| 1404 | + "require": { | |
| 1405 | + "kartik-v/yii2-krajee-base": "~1.7" | |
| 1406 | + }, | |
| 1407 | + "type": "yii2-extension", | |
| 1408 | + "extra": { | |
| 1409 | + "branch-alias": { | |
| 1410 | + "dev-master": "1.4.x-dev" | |
| 1411 | + } | |
| 1412 | + }, | |
| 1413 | + "autoload": { | |
| 1414 | + "psr-4": { | |
| 1415 | + "kartik\\date\\": "" | |
| 1416 | + } | |
| 1417 | + }, | |
| 1418 | + "notification-url": "https://packagist.org/downloads/", | |
| 1419 | + "license": [ | |
| 1420 | + "BSD-3-Clause" | |
| 1421 | + ], | |
| 1422 | + "authors": [ | |
| 1423 | + { | |
| 1424 | + "name": "Kartik Visweswaran", | |
| 1425 | + "email": "kartikv2@gmail.com", | |
| 1426 | + "homepage": "http://www.krajee.com/" | |
| 1427 | + } | |
| 1428 | + ], | |
| 1429 | + "description": "Enhanced Yii2 wrapper for the bootstrap datepicker plugin (sub repo split from yii2-widgets).", | |
| 1430 | + "homepage": "https://github.com/kartik-v/yii2-widget-datepicker", | |
| 1431 | + "keywords": [ | |
| 1432 | + "date", | |
| 1433 | + "extension", | |
| 1434 | + "form", | |
| 1435 | + "jquery", | |
| 1436 | + "picker", | |
| 1437 | + "plugin", | |
| 1438 | + "select2", | |
| 1439 | + "widget", | |
| 1440 | + "yii2" | |
| 1441 | + ], | |
| 1442 | + "time": "2017-04-01 16:03:50" | |
| 1443 | + }, | |
| 1444 | + { | |
| 1391 | 1445 | "name": "kartik-v/yii2-widget-fileinput", |
| 1392 | 1446 | "version": "v1.0.5", |
| 1393 | 1447 | "source": { |
| ... | ... | @@ -4825,7 +4879,8 @@ |
| 4825 | 4879 | "bower-asset/amcharts-stock": 20, |
| 4826 | 4880 | "kartik-v/yii2-widget-select2": 20, |
| 4827 | 4881 | "bower-asset/amcharts": 20, |
| 4828 | - "bower-asset/pnotify": 20 | |
| 4882 | + "bower-asset/pnotify": 20, | |
| 4883 | + "kartik-v/yii2-widget-datepicker": 20 | |
| 4829 | 4884 | }, |
| 4830 | 4885 | "prefer-stable": false, |
| 4831 | 4886 | "prefer-lowest": false, | ... | ... |
frontend/controllers/AccountController.php
| ... | ... | @@ -72,9 +72,11 @@ |
| 72 | 72 | |
| 73 | 73 | public function actionAccount() |
| 74 | 74 | { |
| 75 | + $user = \Yii::$app->user->identity; | |
| 75 | 76 | return $this->render( |
| 76 | 77 | 'account', |
| 77 | 78 | [ |
| 79 | + 'userModel' => $user, | |
| 78 | 80 | 'passwordModel' => new PasswordForm(), |
| 79 | 81 | ] |
| 80 | 82 | ); |
| ... | ... | @@ -87,7 +89,7 @@ |
| 87 | 89 | */ |
| 88 | 90 | $model = new PasswordForm(); |
| 89 | 91 | $modeluser = \Yii::$app->user->identity; |
| 90 | - | |
| 92 | + | |
| 91 | 93 | if ($model->load(\Yii::$app->request->post())) { |
| 92 | 94 | if ($model->validate()) { |
| 93 | 95 | $modeluser->setPassword($model->newpass); |
| ... | ... | @@ -97,6 +99,7 @@ |
| 97 | 99 | return $this->render( |
| 98 | 100 | 'account', |
| 99 | 101 | [ |
| 102 | + 'userModel' => $modeluser, | |
| 100 | 103 | 'passwordModel' => $model, |
| 101 | 104 | ] |
| 102 | 105 | ); |
| ... | ... | @@ -105,17 +108,42 @@ |
| 105 | 108 | return $this->render( |
| 106 | 109 | 'account', |
| 107 | 110 | [ |
| 111 | + 'userModel' => $modeluser, | |
| 108 | 112 | 'passwordModel' => $model, |
| 109 | 113 | ] |
| 110 | 114 | ); |
| 111 | 115 | } |
| 112 | - } else { | |
| 113 | - return $this->render( | |
| 114 | - 'account', | |
| 115 | - [ | |
| 116 | - 'passwordModel' => $model, | |
| 117 | - ] | |
| 118 | - ); | |
| 119 | 116 | } |
| 117 | + return $this->render( | |
| 118 | + 'account', | |
| 119 | + [ | |
| 120 | + 'userModel' => $modeluser, | |
| 121 | + 'passwordModel' => $model, | |
| 122 | + ] | |
| 123 | + ); | |
| 124 | + | |
| 125 | + } | |
| 126 | + | |
| 127 | + public function actionChangeData() | |
| 128 | + { | |
| 129 | + /** | |
| 130 | + * @var Customer $model | |
| 131 | + */ | |
| 132 | + $model = \Yii::$app->user->identity; | |
| 133 | + | |
| 134 | + if ($model->load(\Yii::$app->request->post())) { | |
| 135 | + // VarDumper::dump($model, 10, 1);die(); | |
| 136 | + $model->markAttributeDirty('birthday'); | |
| 137 | + if ($model->save()) { | |
| 138 | + return $this->redirect([ 'index' ]); | |
| 139 | + } | |
| 140 | + } | |
| 141 | + return $this->render( | |
| 142 | + 'account', | |
| 143 | + [ | |
| 144 | + 'userModel' => $model, | |
| 145 | + 'passwordModel' => new PasswordForm(), | |
| 146 | + ] | |
| 147 | + ); | |
| 120 | 148 | } |
| 121 | 149 | } |
| 122 | 150 | \ No newline at end of file | ... | ... |
frontend/views/account/account.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | + use artbox\order\models\Customer; | |
| 3 | 4 | use artbox\order\models\PasswordForm; |
| 5 | + use kartik\date\DatePicker; | |
| 4 | 6 | use yii\helpers\Html; |
| 5 | 7 | use yii\web\View; |
| 6 | 8 | use yii\widgets\ActiveForm; |
| ... | ... | @@ -8,6 +10,7 @@ |
| 8 | 10 | /** |
| 9 | 11 | * @var View $this |
| 10 | 12 | * @var PasswordForm $passwordModel |
| 13 | + * @var Customer $userModel | |
| 11 | 14 | */ |
| 12 | 15 | |
| 13 | 16 | $this->params[ 'breadcrumbs' ][] = \Yii::t('app', 'Мой аккаунт'); |
| ... | ... | @@ -72,87 +75,79 @@ _________________________________________________________ --> |
| 72 | 75 | <div class="heading"> |
| 73 | 76 | <h3 class="text-uppercase">Персональные данные</h3> |
| 74 | 77 | </div> |
| 75 | - | |
| 76 | - <form> | |
| 77 | - <div class="row"> | |
| 78 | - <div class="col-sm-6"> | |
| 79 | - <div class="form-group"> | |
| 80 | - <label for="firstname">Имя</label> | |
| 81 | - <input type="text" class="form-control" id="firstname"> | |
| 82 | - </div> | |
| 83 | - </div> | |
| 84 | - <div class="col-sm-6"> | |
| 85 | - <div class="form-group"> | |
| 86 | - <label for="lastname">Фамилия</label> | |
| 87 | - <input type="text" class="form-control" id="lastname"> | |
| 88 | - </div> | |
| 89 | - </div> | |
| 78 | + | |
| 79 | + <?php $userForm = ActiveForm::begin( | |
| 80 | + [ | |
| 81 | + 'action' => [ 'account/change-data' ], | |
| 82 | + ] | |
| 83 | + ) ?> | |
| 84 | + <div class="row"> | |
| 85 | + <div class="col-sm-6"> | |
| 86 | + <?= $userForm->field($userModel, 'name') ?> | |
| 90 | 87 | </div> |
| 91 | - <!-- /.row --> | |
| 92 | - | |
| 93 | - <div class="row"> | |
| 94 | - <div class="col-sm-6"> | |
| 95 | - <div class="form-group"> | |
| 96 | - <label for="company">Фирма</label> | |
| 97 | - <input type="text" class="form-control" id="company"> | |
| 98 | - </div> | |
| 99 | - </div> | |
| 100 | - <div class="col-sm-6"> | |
| 101 | - <div class="form-group"> | |
| 102 | - <label for="street">Улица</label> | |
| 103 | - <input type="text" class="form-control" id="street"> | |
| 104 | - </div> | |
| 105 | - </div> | |
| 88 | + <div class="col-sm-6"> | |
| 89 | + <?= $userForm->field($userModel, 'address') | |
| 90 | + ->textInput() ?> | |
| 106 | 91 | </div> |
| 107 | - <!-- /.row --> | |
| 108 | - | |
| 109 | - <div class="row"> | |
| 110 | - <div class="col-sm-6 col-md-3"> | |
| 111 | - <div class="form-group"> | |
| 112 | - <label for="city">Город</label> | |
| 113 | - <input type="text" class="form-control" id="city"> | |
| 114 | - </div> | |
| 115 | - </div> | |
| 116 | - <div class="col-sm-6 col-md-3"> | |
| 117 | - <div class="form-group"> | |
| 118 | - <label for="zip">Индекс</label> | |
| 119 | - <input type="text" class="form-control" id="zip"> | |
| 120 | - </div> | |
| 121 | - </div> | |
| 122 | - <div class="col-sm-6 col-md-3"> | |
| 123 | - <div class="form-group"> | |
| 124 | - <label for="state">Область</label> | |
| 125 | - <select class="form-control" id="state"></select> | |
| 126 | - </div> | |
| 127 | - </div> | |
| 128 | - <div class="col-sm-6 col-md-3"> | |
| 129 | - <div class="form-group"> | |
| 130 | - <label for="country">Страна</label> | |
| 131 | - <select class="form-control" id="country"></select> | |
| 132 | - </div> | |
| 133 | - </div> | |
| 134 | - | |
| 135 | - <div class="col-sm-6"> | |
| 136 | - <div class="form-group"> | |
| 137 | - <label for="phone">Телефон</label> | |
| 138 | - <input type="text" class="form-control" id="phone"> | |
| 139 | - </div> | |
| 140 | - </div> | |
| 141 | - <div class="col-sm-6"> | |
| 142 | - <div class="form-group"> | |
| 143 | - <label for="email_account">E-mail</label> | |
| 144 | - <input type="text" class="form-control" id="email_account"> | |
| 145 | - </div> | |
| 146 | - </div> | |
| 147 | - <div class="col-sm-12 text-center"> | |
| 148 | - <button type="submit" class="btn btn-template-main"><i class="fa fa-save"></i> Сохранить изменения | |
| 149 | - </button> | |
| 150 | - | |
| 151 | - </div> | |
| 152 | - | |
| 92 | + </div> | |
| 93 | + <!-- /.row --> | |
| 94 | + | |
| 95 | + <div class="row"> | |
| 96 | + <div class="col-sm-6 col-md-3"> | |
| 97 | + <?= $userForm->field($userModel, 'city') | |
| 98 | + ->textInput() ?> | |
| 153 | 99 | </div> |
| 154 | - | |
| 155 | - </form> | |
| 100 | + <div class="col-sm-6 col-md-3"> | |
| 101 | + <?= $userForm->field($userModel, 'gender') | |
| 102 | + ->dropDownList( | |
| 103 | + [ | |
| 104 | + 1 => \Yii::t('app', 'Муж.'), | |
| 105 | + 2 => \Yii::t('app', 'Жен.'), | |
| 106 | + ], | |
| 107 | + [ | |
| 108 | + 'prompt' => \Yii::t('app', 'Пол'), | |
| 109 | + ] | |
| 110 | + ) ?> | |
| 111 | + </div> | |
| 112 | + <div class="col-sm-6 col-md-6"> | |
| 113 | + <?= $userForm->field($userModel, 'email') | |
| 114 | + ->textInput() ?> | |
| 115 | + </div> | |
| 116 | + | |
| 117 | + </div> | |
| 118 | + <div class="row"> | |
| 119 | + | |
| 120 | + <div class="col-sm-6"> | |
| 121 | + <?= $userForm->field($userModel, 'phone') | |
| 122 | + ->textInput() ?> | |
| 123 | + | |
| 124 | + </div> | |
| 125 | + <div class="col-sm-6"> | |
| 126 | + <?= $userForm->field($userModel, 'birthDate') | |
| 127 | + ->widget( | |
| 128 | + DatePicker::className(), | |
| 129 | + [ | |
| 130 | + 'options' => [ | |
| 131 | + 'placeholder' => \Yii::t('app', 'Дата рождения ...'), | |
| 132 | + ], | |
| 133 | + 'pluginOptions' => [ | |
| 134 | + 'autoclose' => true, | |
| 135 | + 'format' => 'dd.mm.yyyy', | |
| 136 | + ], | |
| 137 | + ] | |
| 138 | + ) ?> | |
| 139 | + </div> | |
| 140 | + <div class="col-sm-12 text-center"> | |
| 141 | + <?= Html::submitButton( | |
| 142 | + '<i class="fa fa-save"></i> Сохранить изменения', | |
| 143 | + [ | |
| 144 | + 'class' => 'btn btn-template-main', | |
| 145 | + ] | |
| 146 | + ) ?> | |
| 147 | + </div> | |
| 148 | + </div> | |
| 149 | + | |
| 150 | + <?php $userForm::end(); ?> | |
| 156 | 151 | |
| 157 | 152 | </div> |
| 158 | 153 | ... | ... |