Commit db63ba79a963429084fb696749e3a496e576ee84

Authored by Alexey Boroda
1 parent 94a1dbd2

-User's data form ready

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 @@ _________________________________________________________ --&gt;
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  
... ...