Commit 5f49082a7972ca75f201b2c247de72dacfd1b807

Authored by Yarik
1 parent 04b7173a

test

backend/web/js/option.js
@@ -19,10 +19,11 @@ function checkboxerInit() { @@ -19,10 +19,11 @@ function checkboxerInit() {
19 } 19 }
20 function accountRedraw() { 20 function accountRedraw() {
21 var type = $('input[name="User[type]"]:checked').val(); 21 var type = $('input[name="User[type]"]:checked').val();
  22 + console.log(type);
22 if(type == 2) { 23 if(type == 2) {
23 - $('#form_definition').addClass('form_for_company');  
24 - } else {  
25 $('#form_definition').removeClass('form_for_company'); 24 $('#form_definition').removeClass('form_for_company');
  25 + } else {
  26 + $('#form_definition').addClass('form_for_company');
26 } 27 }
27 } 28 }
28 $(function() { 29 $(function() {
common/config/.gitignore
1 /params-local.php 1 /params-local.php
2 -/main-local.php  
3 \ No newline at end of file 2 \ No newline at end of file
  3 +/main-local.php
  4 +/main-remote.php
4 \ No newline at end of file 5 \ No newline at end of file
frontend/assets/AppAsset.php
@@ -19,7 +19,7 @@ class AppAsset extends AssetBundle @@ -19,7 +19,7 @@ class AppAsset extends AssetBundle
19 public $css = [ 19 public $css = [
20 'css/style.css', 20 'css/style.css',
21 '/admin/css/flags32.css', 21 '/admin/css/flags32.css',
22 - 'https://fonts.googleapis.com/css?family=Roboto:400,700&subset=cyrillic,latin', 22 + //'https://fonts.googleapis.com/css?family=Roboto:400,700&subset=cyrillic,latin',
23 ]; 23 ];
24 public $js = [ 24 public $js = [
25 '/js/script.js', 25 '/js/script.js',
frontend/controllers/AccountsController.php
1 <?php 1 <?php
2 -namespace frontend\controllers;  
3 -  
4 -use common\models\CompanyInfo;  
5 -use common\models\Fields;  
6 -use common\models\Job;  
7 -use common\models\Language;  
8 -use Yii;  
9 -use common\models\User;  
10 -use common\models\UserInfo;  
11 -  
12 -use yii\filters\AccessControl;  
13 -use yii\web\Controller;  
14 -use yii\web\NotFoundHttpException;  
15 -  
16 -  
17 -/**  
18 - * Site controller  
19 - */  
20 -class AccountsController extends Controller  
21 -{ 2 + namespace frontend\controllers;
  3 +
  4 + use common\models\CompanyInfo;
  5 + use common\models\Fields;
  6 + use common\models\Job;
  7 + use common\models\Language;
  8 + use common\models\Payment;
  9 + use common\models\Specialization;
  10 + use common\models\UserPayment;
  11 + use common\models\UserSpecialization;
  12 + use Yii;
  13 + use common\models\User;
  14 + use common\models\UserInfo;
  15 +
  16 + use yii\filters\AccessControl;
  17 + use yii\web\Controller;
  18 + use yii\web\NotFoundHttpException;
22 19
  20 + /**
  21 + * Site controller
  22 + */
  23 + class AccountsController extends Controller
  24 + {
23 25
24 - public $layout = 'admin'; 26 + public $layout = 'admin';
25 27
26 - public function behaviors()  
27 - {  
28 - return [  
29 - 'access' => [  
30 - 'class' => AccessControl::className(),  
31 - 'rules' => [  
32 - [  
33 - //'actions' => ['cabinet','change-password', 'bookmarks', 'projects'],  
34 - 'allow' => true,  
35 - 'roles' => ['@'], 28 + public function behaviors()
  29 + {
  30 + return [
  31 + 'access' => [
  32 + 'class' => AccessControl::className(),
  33 + 'rules' => [
  34 + [
  35 + //'actions' => ['cabinet','change-password', 'bookmarks', 'projects'],
  36 + 'allow' => true,
  37 + 'roles' => [ '@' ],
  38 + ],
36 ], 39 ],
37 ], 40 ],
38 - ],  
39 - ];  
40 - }  
41 - 41 + ];
  42 + }
42 43
43 - public function actionCabinet()  
44 - { 44 + public function actionCabinet()
  45 + {
45 46
  47 + $user = $this->findUser(Yii::$app->user->identity->id);
46 48
47 - $user = $this->findUser(Yii::$app->user->identity->id); 49 + $langs = Language::getActiveLanguages();
48 50
49 - $langs = Language::getActiveLanguages(); 51 + if($user->load(Yii::$app->request->post()) && $user->save()) {
  52 + $user->userInfo->load(Yii::$app->request->post());
  53 + $user->userInfo->save();
  54 + Fields::saveFieldData(Yii::$app->request->post('Fields'), $user->id, $user::className(), 'ru');
  55 + return $this->render('cabinet', [
  56 + 'user' => $user,
  57 + 'user_info' => $user->userInfo,
  58 + 'langs' => $langs,
  59 + ]);
50 60
51 - if ($user->load(Yii::$app->request->post()) && $user->save()) {  
52 - $user->userInfo->load(Yii::$app->request->post());  
53 - $user->userInfo->save();  
54 - Fields::saveFieldData( Yii::$app->request->post('Fields'), $user->id, $user::className(),'ru');  
55 - return $this->render('cabinet', [  
56 - 'user' => $user,  
57 - 'user_info' => $user->userInfo,  
58 - 'langs' => $langs,  
59 - ]); 61 + } else {
60 62
61 - } else { 63 + return $this->render('cabinet', [
  64 + 'user' => $user,
  65 + 'user_info' => $user->userInfo,
  66 + 'langs' => $langs,
  67 + ]);
62 68
63 - return $this->render('cabinet', [  
64 - 'user' => $user,  
65 - 'user_info' => $user->userInfo,  
66 - 'langs' => $langs,  
67 - ]); 69 + }
68 70
69 } 71 }
70 72
  73 + public function actionBookmarks()
  74 + {
  75 + return $this->render('bookmarks');
  76 + }
71 77
72 - }  
73 -  
74 - public function actionBookmarks()  
75 - {  
76 - return $this->render('bookmarks');  
77 - }  
78 -  
79 - public function actionGeneral()  
80 - {  
81 - $user_info = UserInfo::find()->where(['user_id' => \Yii::$app->user->getId()])->one();  
82 - $company_info = CompanyInfo::find()->where(['user_id' => \Yii::$app->user->getId()])->one();  
83 - $user = \Yii::$app->user->identity;  
84 - if(empty($user_info)) 78 + public function actionGeneral()
85 { 79 {
86 - $user_info = new UserInfo(['user_id' => \Yii::$app->user->getId()]); 80 + $user_info = UserInfo::find()
  81 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  82 + ->one();
  83 + $company_info = CompanyInfo::find()
  84 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  85 + ->one();
  86 + $user = \Yii::$app->user->identity;
  87 + if(empty( $user_info )) {
  88 + $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]);
  89 + }
  90 + if(empty( $company_info )) {
  91 + $company_info = new CompanyInfo([ 'user_id' => \Yii::$app->user->getId() ]);
  92 + }
  93 + $post = \Yii::$app->request->post();
  94 + if(!empty( $post )) {
  95 + $user_info->load($post);
  96 + $company_info->load($post);
  97 + $user->load($post);
  98 + if($user_info->save() && $user->save() && $company_info->save()) {
  99 + \Yii::$app->session->setFlash('userinfoupdate', 'Информация успешно обновлена');
  100 + } else {
  101 + \Yii::$app->session->setFlash('userinfoupdate', 'Ошибка обновления. Проверьте форму');
  102 + }
  103 + }
  104 + return $this->render('general', [
  105 + 'user_info' => $user_info,
  106 + 'user' => $user,
  107 + 'company_info' => $company_info,
  108 + ]);
87 } 109 }
88 - if(empty($company_info)) 110 +
  111 + public function actionPortfolio()
89 { 112 {
90 - $company_info = new CompanyInfo(['user_id' => \Yii::$app->user->getId()]); 113 +
91 } 114 }
92 - $post = \Yii::$app->request->post();  
93 - if(!empty($post)) 115 +
  116 + /**
  117 + * $user User
  118 + */
  119 + public function actionSetting()
94 { 120 {
95 - $user_info->load($post);  
96 - $company_info->load($post);  
97 - $user->load($post);  
98 - if($user_info->save() && $user->save() && $company_info->save())  
99 - {  
100 - \Yii::$app->session->setFlash('userinfoupdate', 'Информация успешно обновлена');  
101 - } else {  
102 - \Yii::$app->session->setFlash('userinfoupdate', 'Ошибка обновления. Проверьте форму'); 121 + $user = \Yii::$app->user->identity;
  122 + $post = \Yii::$app->request->post('User');
  123 + if(!empty( $post )) {
  124 + if(empty( $post[ 'new_password' ] )) {
  125 + $user->addError('new_password', 'Введите новый пароль');
  126 + } else {
  127 + $user->new_password = $post[ 'new_password' ];
  128 + }
  129 + if(empty( $post[ 'old_password' ] )) {
  130 + $user->addError('old_password', 'Введите новый пароль');
  131 + } else {
  132 + $user->old_password = $post[ 'old_password' ];
  133 + }
  134 + if(empty( $post[ 'password_reply' ] ) || $post[ 'password_reply' ] !== $post[ 'new_password' ]) {
  135 + $user->addError('password_reply', 'Неправильный повтор пароля');
  136 + } else {
  137 + $user->password_reply = $post[ 'password_reply' ];
  138 + }
  139 + if(!$user->hasErrors()) {
  140 + if($user->validatePassword($user->old_password)) {
  141 + $user->setPassword($user->new_password);
  142 + $user->generateAuthKey();
  143 + if($user->save()) {
  144 + \Yii::$app->session->setFlash('passwordupdate', 'Пароль успешно обновлен');
  145 + }
  146 + } else {
  147 + $user->addError('old_password', 'Неправильный старый пароль');
  148 + }
  149 + }
103 } 150 }
  151 + return $this->render('setting', [ 'user' => $user ]);
104 } 152 }
105 - return $this->render('general', ['user_info' => $user_info, 'user' => $user, 'company_info' => $company_info]);  
106 - }  
107 -  
108 - public function actionPortfolio()  
109 - {  
110 -  
111 - }  
112 153
113 - /**  
114 - * $user User  
115 - */  
116 - public function actionSetting()  
117 - {  
118 - $user = \Yii::$app->user->identity;  
119 - $post = \Yii::$app->request->post('User');  
120 - if(!empty($post)) {  
121 - if(empty($post['new_password'])) {  
122 - $user->addError('new_password', 'Введите новый пароль');  
123 - } else {  
124 - $user->new_password = $post['new_password']; 154 + public function actionContacts()
  155 + {
  156 + $user_info = UserInfo::find()
  157 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  158 + ->one();
  159 + if(empty( $user_info )) {
  160 + $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]);
125 } 161 }
126 - if(empty($post['old_password'])) {  
127 - $user->addError('old_password', 'Введите новый пароль');  
128 - } else {  
129 - $user->old_password = $post['old_password']; 162 + if(!empty( \Yii::$app->request->post() )) {
  163 + Fields::saveFieldData(Yii::$app->request->post('Fields'), \Yii::$app->user->identity->id, User::className(), 'ru');
  164 + $user_info->load(\Yii::$app->request->post());
  165 + $user_info->save();
130 } 166 }
131 - if(empty($post['password_reply']) || $post['password_reply'] !== $post['new_password']) {  
132 - $user->addError('password_reply', 'Неправильный повтор пароля');  
133 - } else {  
134 - $user->password_reply = $post['password_reply']; 167 + return $this->render('contacts', [ 'user_info' => $user_info ]);
  168 + }
  169 +
  170 + public function actionService()
  171 + {
  172 + $user_info = UserInfo::find()
  173 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  174 + ->one();
  175 + if(empty( $user_info )) {
  176 + $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]);
135 } 177 }
136 - if(!$user->hasErrors()) {  
137 - if($user->validatePassword($user->old_password)) {  
138 - $user->setPassword($user->new_password);  
139 - $user->generateAuthKey();  
140 - if($user->save()) {  
141 - \Yii::$app->session->setFlash('passwordupdate', 'Пароль успешно обновлен');  
142 - }  
143 - } else {  
144 - $user->addError('old_password', 'Неправильный старый пароль'); 178 + $post = \Yii::$app->request->post();
  179 + if(!empty( $post )) {
  180 + $user_info->load($post);
  181 + $user_info->save();
  182 + $user_specialization_values = [ ];
  183 + $user_payment_values = [ ];
  184 + UserSpecialization::deleteAll([ 'user_id' => \Yii::$app->user->getId() ]);
  185 + UserPayment::deleteAll([ 'user_id' => \Yii::$app->user->getId() ]);
  186 + foreach($post[ 'UserSpecialization' ][ 'specialization_id' ] as $index => $value) {
  187 + $user_specialization_values[] = (new UserSpecialization([ 'user_id' => \Yii::$app->user->getId(),
  188 + 'specialization_id' => $value,
  189 + ]))->save();
  190 + }
  191 + foreach($post[ 'UserPayment' ][ 'payment_id' ] as $index => $value) {
  192 + $user_payment_values[] = (new UserPayment([ 'user_id' => \Yii::$app->user->getId(),
  193 + 'payment_id' => $value,
  194 + ]))->save();
145 } 195 }
146 } 196 }
  197 + $user_specialization = UserSpecialization::find()
  198 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  199 + ->select([ 'specialization_id' ])
  200 + ->column();
  201 + $user_payment = UserPayment::find()
  202 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  203 + ->select([ 'payment_id' ])
  204 + ->column();
  205 + $user_specialization_input = new UserSpecialization([ 'user_id' => \Yii::$app->user->getId() ]);
  206 + $user_payment_input = new UserPayment([ 'user_id' => \Yii::$app->user->getId() ]);
  207 + $specialization = Specialization::find()
  208 + ->select([
  209 + 'specialization_name',
  210 + 'specialization_id',
  211 + ])
  212 + ->indexBy('specialization_id')
  213 + ->asArray()
  214 + ->column();
  215 + $payment = Payment::find()
  216 + ->select([
  217 + 'name',
  218 + 'payment_id',
  219 + ])
  220 + ->indexBy('payment_id')
  221 + ->asArray()
  222 + ->column();
  223 + return $this->render('service', [
  224 + 'user_info' => $user_info,
  225 + 'specialization' => $specialization,
  226 + 'user_specialization' => $user_specialization,
  227 + 'user_specialization_input' => $user_specialization_input,
  228 + 'payment' => $payment,
  229 + 'user_payment' => $user_payment,
  230 + 'user_payment_input' => $user_payment_input,
  231 + ]);
147 } 232 }
148 - return $this->render('setting', ['user' => $user]);  
149 - }  
150 233
151 - public function actionContacts()  
152 - {  
153 - $user_info = UserInfo::find()->where(['user_id' => \Yii::$app->user->getId()])->one();  
154 - if(empty($user_info)) {  
155 - $user_info = new UserInfo(['user_id' => \Yii::$app->user->getId()]);  
156 - }  
157 - if(!empty(\Yii::$app->request->post())) {  
158 - Fields::saveFieldData( Yii::$app->request->post('Fields'), \Yii::$app->user->identity->id, User::className(),'ru');  
159 - $user_info->load(\Yii::$app->request->post());  
160 - $user_info->save();  
161 - $user_info; 234 + public function actionAddSkills()
  235 + {
  236 + return $this->render('add-skills');
162 } 237 }
163 - return $this->render('contacts', ['user_info' => $user_info]);  
164 - }  
165 -  
166 - public function actionService()  
167 - {  
168 - return $this->render('service');  
169 - }  
170 -  
171 - public function actionAddSkills()  
172 - {  
173 238
174 - }  
175 -  
176 - public function actionEmployment()  
177 - {  
178 - $post = \Yii::$app->request->post();  
179 - if(!empty($post)) {  
180 - $job = [];  
181 - for($i = 0; $i < count($post['Job']); $i++) {  
182 - $job[$i] = new Job(['user_id' => \Yii::$app->user->getId(), 'current' => 0]); 239 + public function actionDescription()
  240 + {
  241 + $user_info = UserInfo::find()
  242 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  243 + ->one();
  244 + if(empty( $user_info )) {
  245 + $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]);
  246 + }
  247 + $post = \Yii::$app->request->post();
  248 + if(!empty($post)) {
  249 + $user_info->load($post);
  250 + $user_info->save();
183 } 251 }
184 - if(Job::loadMultiple($job, $post)) {  
185 - $job[0]->current = 1;  
186 - if(Job::validateMultiple($job)) {  
187 - Job::deleteAll(['user_id' => \Yii::$app->user->getId()]);  
188 - foreach($job as $onejob) {  
189 - $onejob->save(false); 252 + return $this->render('description', [ 'user_info' => $user_info ]);
  253 + }
  254 +
  255 + public function actionEmployment()
  256 + {
  257 + $post = \Yii::$app->request->post();
  258 + if(!empty( $post )) {
  259 + $job = [ ];
  260 + for($i = 0; $i < count($post[ 'Job' ]); $i++) {
  261 + $job[ $i ] = new Job([
  262 + 'user_id' => \Yii::$app->user->getId(),
  263 + 'current' => 0,
  264 + ]);
  265 + }
  266 + if(Job::loadMultiple($job, $post)) {
  267 + $job[ 0 ]->current = 1;
  268 + if(Job::validateMultiple($job)) {
  269 + Job::deleteAll([ 'user_id' => \Yii::$app->user->getId() ]);
  270 + foreach($job as $onejob) {
  271 + $onejob->save(false);
  272 + }
190 } 273 }
191 } 274 }
  275 + } else {
  276 + $job = Job::find()
  277 + ->where([ 'user_id' => \Yii::$app->user->getId() ])
  278 + ->orderBy([ 'current' => SORT_DESC ])
  279 + ->all();
  280 + if(empty( $job )) {
  281 + $job[] = new Job([
  282 + 'user_id' => \Yii::$app->user->getId(),
  283 + 'current' => 0,
  284 + ]);
  285 + }
  286 + if(!$job[ 0 ]->current) {
  287 + array_unshift($job, new Job([
  288 + 'user_id' => \Yii::$app->user->getId(),
  289 + 'current' => 1,
  290 + ]));
  291 + }
192 } 292 }
193 - } else {  
194 - $job = Job::find()->where(['user_id' => \Yii::$app->user->getId()])->orderBy(['current' => SORT_DESC])->all();  
195 - if(empty($job)) {  
196 - $job[] = new Job(['user_id' => \Yii::$app->user->getId(), 'current' => 0]);  
197 - }  
198 - if(!$job[0]->current) {  
199 - array_unshift($job, new Job(['user_id' => \Yii::$app->user->getId(), 'current' => 1]));  
200 - } 293 + return $this->render('employment', [ 'job' => $job ]);
201 } 294 }
202 - return $this->render('employment', ['job' => $job]);  
203 - }  
204 -  
205 - public function actionProjects()  
206 - {  
207 - return $this->render('projects');  
208 - }  
209 -  
210 - public function actionGallery()  
211 - {  
212 295
213 - } 296 + public function actionProjects()
  297 + {
  298 + return $this->render('projects');
  299 + }
214 300
215 - public function actionGetForm($lastindex)  
216 - {  
217 - return $this->renderAjax('_job_form', ['index' => $lastindex+1]);  
218 - } 301 + public function actionGallery()
  302 + {
219 303
220 - /**  
221 - * @param $id  
222 - * @return User  
223 - * @throws NotFoundHttpException  
224 - */  
225 - protected function findUser($id)  
226 - { 304 + }
227 305
228 - if ($model = User::findOne(["id"=>$id])) {  
229 - return $model;  
230 - } else {  
231 - throw new NotFoundHttpException('The requested page does not exist.'); 306 + public function actionGetForm($lastindex)
  307 + {
  308 + return $this->renderAjax('_job_form', [ 'index' => $lastindex + 1 ]);
232 } 309 }
233 - }  
234 310
  311 + /**
  312 + * @param $id
  313 + *
  314 + * @return User
  315 + * @throws NotFoundHttpException
  316 + */
  317 + protected function findUser($id)
  318 + {
235 319
  320 + if($model = User::findOne([ "id" => $id ])) {
  321 + return $model;
  322 + } else {
  323 + throw new NotFoundHttpException('The requested page does not exist.');
  324 + }
  325 + }
236 326
237 -} 327 + }
frontend/views/accounts/add-skills.php
@@ -4,23 +4,14 @@ use yii\helpers\Html; @@ -4,23 +4,14 @@ use yii\helpers\Html;
4 use yii\widgets\ActiveForm; 4 use yii\widgets\ActiveForm;
5 use \common\widgets\MultiLangForm; 5 use \common\widgets\MultiLangForm;
6 6
7 - $this->title = 'Мой профиль'; 7 + $this->title = 'Дополнительные навыки';
8 $this->params['breadcrumbs'][] = $this->title; 8 $this->params['breadcrumbs'][] = $this->title;
9 ?> 9 ?>
10 -  
11 <h1><?= $this->title ?></h1> 10 <h1><?= $this->title ?></h1>
12 -  
13 -  
14 -  
15 <?php 11 <?php
16 -  
17 -$form = $this->render('_form', [  
18 - 'user' => $user,  
19 - 'user_info' => $user_info,  
20 -]);  
21 -  
22 -echo MultiLangForm::widget(['form'=>$form]);  
23 - 12 + $form = ActiveForm::begin();
24 ?> 13 ?>
25 14
26 - 15 +<?php
  16 + $form->end();
  17 +?>
27 \ No newline at end of file 18 \ No newline at end of file
frontend/views/accounts/description.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * @var UserInfo $user_info
  4 + * @var User $user
  5 + * @var CompanyInfo $company_info
  6 + */
  7 + use common\models\CompanyInfo;
  8 + use common\models\User;
  9 + use common\models\UserInfo;
  10 + use common\widgets\ImageUploader;
  11 + use mihaildev\ckeditor\CKEditor;
  12 + use yii\helpers\Html;
  13 + use yii\widgets\ActiveForm;
  14 +
  15 + $this->title = 'Описание';
  16 + $this->params[ 'breadcrumbs' ][] = $this->title;
  17 +?>
  18 +<h1><?= $this->title ?></h1>
  19 + <?php
  20 + $form = ActiveForm::begin();
  21 + ?>
  22 + <?= $form->field($user_info, 'about')->label(false)->widget(CKEditor::className()) ?>
  23 + <?= Html::submitButton('Обновить', [ 'class' => 'btn btn-primary' ]) ?>
  24 + <?php
  25 + $form->end();
  26 + ?>
frontend/views/accounts/general.php
@@ -5,90 +5,101 @@ @@ -5,90 +5,101 @@
5 * @var CompanyInfo $company_info 5 * @var CompanyInfo $company_info
6 */ 6 */
7 use common\models\CompanyInfo; 7 use common\models\CompanyInfo;
8 - use common\models\Option;  
9 use common\models\User; 8 use common\models\User;
10 use common\models\UserInfo; 9 use common\models\UserInfo;
11 use common\widgets\ImageUploader; 10 use common\widgets\ImageUploader;
12 use yii\helpers\Html; 11 use yii\helpers\Html;
13 use yii\widgets\ActiveForm; 12 use yii\widgets\ActiveForm;
14 - use \common\widgets\MultiLangForm;  
15 13
16 $this->title = 'Учетные данные'; 14 $this->title = 'Учетные данные';
17 - $this->params['breadcrumbs'][] = $this->title; 15 + $this->params[ 'breadcrumbs' ][] = $this->title;
18 ?> 16 ?>
19 <h1><?= $this->title ?></h1> 17 <h1><?= $this->title ?></h1>
20 <div class="" id="form_definition"> 18 <div class="" id="form_definition">
21 <?php 19 <?php
22 -  
23 - $form = ActiveForm::begin ();  
24 - echo $form->field ($user, 'isPerformer', ['template' => "{label}:\n{input}\n{hint}\n{error}"])  
25 - ->label ('<span></span>Я - исполнитель')  
26 - ->hint ('Отображается если указать специализации услуг в личном кабинете.')  
27 - ->checkbox ([], false);  
28 - echo $form->field ($user, 'isCustomer', ['template' => "{label}:\n{input}\n{hint}\n{error}"])  
29 - ->label ('Я - заказчик')  
30 - ->hint ('Отображается если созданы заказы.')  
31 - ->checkbox ([], false);  
32 - echo $form->field ($user, 'type')  
33 - ->label ('Кто вы')  
34 - ->radioList ([1 => 'Частное лицо', 2 => 'Компания']);  
35 - echo $form->field ($company_info, 'name', ['options' => ['class' => 'form-group company_info']])  
36 - ->label ('Название компании')  
37 - ->textInput ();  
38 - echo $form->field ($company_info, 'staff', ['options' => ['class' => 'form-group company_info']])  
39 - ->label ('Количество сотрудников')  
40 - ->input ('number');  
41 - echo '<div class="company_info">Контакты представителя</div>';  
42 - echo $form->field ($user, 'lastname')  
43 - ->label ('Фамилия')  
44 - ->textInput ();  
45 - echo $form->field ($user, 'firstname')  
46 - ->label ('Имя')  
47 - ->textInput ();  
48 - echo $form->field ($user_info, 'country')  
49 - ->label ('Ваша страна')  
50 - ->textInput ();  
51 - echo $form->field ($user_info, 'city')  
52 - ->label ('Ваш город')  
53 - ->textInput ();  
54 - echo $form->field ($company_info, 'street', ['options' => ['class' => 'form-group company_info']])  
55 - ->label ('Улица')  
56 - ->textInput ();  
57 - echo $form->field ($company_info, 'house', ['options' => ['class' => 'form-group company_info']])  
58 - ->label ('Дом')  
59 - ->textInput ();  
60 - echo $form->field ($user, 'email')  
61 - ->label ('Email')  
62 - ->textInput (['disabled' => 'disabled']);  
63 - echo $form->field ($company_info, 'hide_mail', ['options' => ['class' => 'form-group company_info'], 'template' => "{input}{label}\n{hint}\n{error}"])  
64 - ->label ('Не публиковать Email')  
65 - ->checkbox ([], false);  
66 - echo $form->field ($user_info, 'busy')  
67 - ->label ('Статус')  
68 - ->radioList ([0 => 'Свободен', 1 => 'Занят']);  
69 - echo $form->field ($user_info, 'member')  
70 - ->label ('Членство в МФП')  
71 - ->hint ('Выберите если хотите стать членом МФП и наш менеджер свяжется с Вами.')  
72 - ->radioList ([0 => 'Не хочу', 1 => 'Хочу стать']);  
73 - echo ImageUploader::widget([  
74 - 'model'=> $user_info,  
75 - 'field'=>'image',  
76 - 'width'=>100,  
77 - 'height'=>100,  
78 - 'multi'=>false,  
79 - 'gallery' =>$user_info->image,  
80 - 'name' => 'Загрузить аватар'  
81 - ]);  
82 - echo ImageUploader::widget([  
83 - 'model'=> $user_info,  
84 - 'field'=>'poster',  
85 - 'width'=>1200,  
86 - 'height'=>600,  
87 - 'multi'=>false,  
88 - 'gallery' =>$user_info->poster,  
89 - 'name' => 'Загрузить постер'  
90 - ]);  
91 - echo Html::submitButton('Обновить', ['class' => 'btn btn-primary']);  
92 - $form->end (); 20 + $form = ActiveForm::begin();
  21 + ?>
  22 + <?= $form->field($user, 'isPerformer', [ 'template' => "{label}:\n{input}\n{hint}\n{error}" ])
  23 + ->label('<span></span>Я - исполнитель')
  24 + ->hint('Отображается если указать специализации услуг в личном кабинете.')
  25 + ->checkbox([ ], false) ?>
  26 + <?= $form->field($user, 'isCustomer', [ 'template' => "{label}:\n{input}\n{hint}\n{error}" ])
  27 + ->label('Я - заказчик')
  28 + ->hint('Отображается если созданы заказы.')
  29 + ->checkbox([ ], false) ?>
  30 + <?= $form->field($user, 'type')
  31 + ->label('Кто вы')
  32 + ->radioList([
  33 + 1 => 'Частное лицо',
  34 + 2 => 'Компания',
  35 + ]) ?>
  36 + <?= $form->field($company_info, 'name', [ 'options' => [ 'class' => 'form-group company_info' ] ])
  37 + ->label('Название компании')
  38 + ->textInput() ?>
  39 + <?= $form->field($company_info, 'staff', [ 'options' => [ 'class' => 'form-group company_info' ] ])
  40 + ->label('Количество сотрудников')
  41 + ->input('number') ?>
  42 + <div class="company_info">Контакты представителя</div>
  43 + <?= $form->field($user, 'lastname')
  44 + ->label('Фамилия')
  45 + ->textInput() ?>
  46 + <?= $form->field($user, 'firstname')
  47 + ->label('Имя')
  48 + ->textInput() ?>
  49 + <?= $form->field($user_info, 'country')
  50 + ->label('Ваша страна')
  51 + ->textInput() ?>
  52 + <?= $form->field($user_info, 'city')
  53 + ->label('Ваш город')
  54 + ->textInput() ?>
  55 + <?= $form->field($company_info, 'street', [ 'options' => [ 'class' => 'form-group company_info' ] ])
  56 + ->label('Улица')
  57 + ->textInput() ?>
  58 + <?= $form->field($company_info, 'house', [ 'options' => [ 'class' => 'form-group company_info' ] ])
  59 + ->label('Дом')
  60 + ->textInput() ?>
  61 + <?= $form->field($user, 'email')
  62 + ->label('Email')
  63 + ->textInput([ 'disabled' => 'disabled' ]) ?>
  64 + <?= $form->field($company_info, 'hide_mail', [
  65 + 'options' => [ 'class' => 'form-group company_info' ],
  66 + 'template' => "{input}{label}\n{hint}\n{error}",
  67 + ])
  68 + ->label('Не публиковать Email')
  69 + ->checkbox([ ], false) ?>
  70 + <?= $form->field($user_info, 'busy')
  71 + ->label('Статус')
  72 + ->radioList([
  73 + 0 => 'Свободен',
  74 + 1 => 'Занят',
  75 + ]) ?>
  76 + <?= $form->field($user_info, 'member')
  77 + ->label('Членство в МФП')
  78 + ->hint('Выберите если хотите стать членом МФП и наш менеджер свяжется с Вами.')
  79 + ->radioList([
  80 + 0 => 'Не хочу',
  81 + 1 => 'Хочу стать',
  82 + ]) ?>
  83 + <?= ImageUploader::widget([
  84 + 'model' => $user_info,
  85 + 'field' => 'image',
  86 + 'width' => 100,
  87 + 'height' => 100,
  88 + 'multi' => false,
  89 + 'gallery' => $user_info->image,
  90 + 'name' => 'Загрузить аватар',
  91 + ]) ?>
  92 + <?= ImageUploader::widget([
  93 + 'model' => $user_info,
  94 + 'field' => 'poster',
  95 + 'width' => 1200,
  96 + 'height' => 600,
  97 + 'multi' => false,
  98 + 'gallery' => $user_info->poster,
  99 + 'name' => 'Загрузить постер',
  100 + ]) ?>
  101 + <?= Html::submitButton('Обновить', [ 'class' => 'btn btn-primary' ]) ?>
  102 + <?php
  103 + $form->end();
93 ?> 104 ?>
94 </div> 105 </div>
frontend/views/accounts/service.php
1 <?php 1 <?php
  2 + /**
  3 + * @var UserInfo $user_info
  4 + * @var string[] $specialization
  5 + * @var integer[] $user_specialization
  6 + * @var UserSpecialization $user_specialization_input
  7 + * @var string[] $payment
  8 + * @var integer[] $user_payment
  9 + * @var UserPayment $user_payment_input
  10 + */
  11 + use common\models\UserInfo;
  12 + use common\models\UserPayment;
  13 + use common\models\UserSpecialization;
  14 + use yii\helpers\Html;
  15 + use yii\widgets\ActiveForm;
  16 +
2 $this->title = 'Мой профиль'; 17 $this->title = 'Мой профиль';
3 - $this->params['breadcrumbs'][] = $this->title; 18 + $this->params[ 'breadcrumbs' ][] = $this->title;
  19 + $user_specialization_input->specialization_id = $user_specialization;
  20 + $user_payment_input->payment_id = $user_payment;
4 ?> 21 ?>
5 -  
6 <h1><?= $this->title ?></h1> 22 <h1><?= $this->title ?></h1>
7 -  
8 -  
9 -  
10 - 23 +<p>Рекомендуем детально заполнить для исполнителя. Это сильно влияет на количество заказов.</p>
  24 +<?php
  25 + $form = ActiveForm::begin();
  26 +?>
  27 +<?= $form->field($user_info, 'salary', [
  28 + 'template' => "{label}: от {input} за час\n{hint}\n{error}",
  29 + 'options' => [ 'class' => 'form-inline' ],
  30 +])
  31 + ->label('Стоимость работ')
  32 + ->textInput() ?>
  33 +<?= $form->field($user_specialization_input, 'specialization_id')
  34 + ->label('Специализация услуг')
  35 + ->checkboxList($specialization) ?>
  36 +<?= $form->field($user_info, 'guarantee', [
  37 + 'template' => "{label}: {input} лет\n{hint}\n{error}",
  38 + 'options' => [ 'class' => 'form-inline' ],
  39 +])
  40 + ->label('Гарантия качества работ')
  41 + ->textInput() ?>
  42 +<?= $form->field($user_info, 'contract', [ 'options' => [ 'class' => 'form-inline' ] ])
  43 + ->label('Работа по договору')
  44 + ->radioList([
  45 + 0 => 'Да',
  46 + 1 => 'Нет',
  47 + ], [ 'class' => 'form-control-static' ]) ?>
  48 +<?= $form->field($user_info, 'estimate', [ 'options' => [ 'class' => 'form-inline' ] ])
  49 + ->label('Предоставляете смету')
  50 + ->radioList([
  51 + 0 => 'Да',
  52 + 1 => 'Нет',
  53 + ], [ 'class' => 'form-control-static' ]) ?>
  54 +<?= $form->field($user_info, 'purchase', [ 'options' => [ 'class' => 'form-inline' ] ])
  55 + ->label('Делаете сами закупку материалов')
  56 + ->radioList([
  57 + 0 => 'Да',
  58 + 1 => 'Нет',
  59 + ], [ 'class' => 'form-control-static' ]) ?>
  60 +<?= $form->field($user_info, 'delivery', [ 'options' => [ 'class' => 'form-inline' ] ])
  61 + ->label('Занимаетесь сами доставкой материалов')
  62 + ->radioList([
  63 + 0 => 'Да',
  64 + 1 => 'Нет',
  65 + ], [ 'class' => 'form-control-static' ]) ?>
  66 +<?= $form->field($user_info, 'prepayment', [
  67 + 'template' => "{label}: {input} %\n{hint}\n{error}",
  68 + 'options' => [ 'class' => 'form-inline' ],
  69 +])
  70 + ->label('Минимальная предоплата за работы')
  71 + ->textInput() ?>
  72 +<?= $form->field($user_payment_input, 'payment_id')
  73 + ->label('Способы оплаты')
  74 + ->checkboxList($payment) ?>
  75 +<?= Html::submitButton('Обновить') ?>
  76 +<?php
  77 + $form->end();
  78 +?>
frontend/views/layouts/admin.php
@@ -28,6 +28,10 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;); @@ -28,6 +28,10 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
28 'url' => ['accounts/general'], 28 'url' => ['accounts/general'],
29 ], 29 ],
30 [ 30 [
  31 + 'label' => 'Описание',
  32 + 'url' => ['accounts/description'],
  33 + ],
  34 + [
31 'label' => 'Портфолио', 35 'label' => 'Портфолио',
32 'url' => ['accounts/portfolio'], 36 'url' => ['accounts/portfolio'],
33 ], 37 ],