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 | ... | ... |