Commit a2cb610bdeb4a25bd6b72846ef1af60ce94e8b7a

Authored by Yarik
1 parent fe96bcdd

Commit

frontend/controllers/AccountsController.php
@@ -516,7 +516,6 @@ @@ -516,7 +516,6 @@
516 $user = \Yii::$app->user->identity; 516 $user = \Yii::$app->user->identity;
517 $user_info = $user->userInfo; 517 $user_info = $user->userInfo;
518 $company_info = $user->companyInfo; 518 $company_info = $user->companyInfo;
519 - $user = \Yii::$app->user->identity;  
520 if(empty( $user_info )) { 519 if(empty( $user_info )) {
521 //$user_info = new UserInfo([ 'user_id' => $user->id ]); 520 //$user_info = new UserInfo([ 'user_id' => $user->id ]);
522 } 521 }
@@ -1068,12 +1067,14 @@ @@ -1068,12 +1067,14 @@
1068 /** 1067 /**
1069 * @var User $user 1068 * @var User $user
1070 */ 1069 */
1071 - $user = \Yii::$app->user->identity; 1070 + $user = User::find()->where(['id' => \Yii::$app->user->id])->one();
  1071 + $user->setSpecializationInput($user->getSpecializationInput());
1072 $user_info = $user->userInfo; 1072 $user_info = $user->userInfo;
1073 if(empty( $user_info )) { 1073 if(empty( $user_info )) {
1074 $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]); 1074 $user_info = new UserInfo([ 'user_id' => \Yii::$app->user->getId() ]);
1075 } 1075 }
1076 $specializations = Specialization::find() 1076 $specializations = Specialization::find()
  1077 + ->with('children')
1077 ->where([ 'specialization_pid' => 0 ]) 1078 ->where([ 'specialization_pid' => 0 ])
1078 ->orderBy('specialization_id') 1079 ->orderBy('specialization_id')
1079 ->all(); 1080 ->all();
frontend/controllers/SearchController.php
@@ -109,11 +109,18 @@ use frontend\models\Option; @@ -109,11 +109,18 @@ use frontend\models\Option;
109 { 109 {
110 $specialization = Specialization::specializationsList(); 110 $specialization = Specialization::specializationsList();
111 111
  112 + $specializations = Specialization::find()
  113 + ->with('children')
  114 + ->where([ 'specialization_pid' => 0 ])
  115 + ->orderBy('specialization_id')
  116 + ->all();
  117 +
112 $searchModel = new SearchPerformerForm(); 118 $searchModel = new SearchPerformerForm();
113 119
114 return $this->render('performer',[ 120 return $this->render('performer',[
115 'dataProvider' => $searchModel->search(Yii::$app->request->queryParams), 121 'dataProvider' => $searchModel->search(Yii::$app->request->queryParams),
116 'specialization' => $specialization, 122 'specialization' => $specialization,
  123 + 'specializations' => $specializations,
117 'model'=> $searchModel 124 'model'=> $searchModel
118 ]); 125 ]);
119 } 126 }
frontend/models/SearchPerformerForm.php
@@ -31,6 +31,8 @@ @@ -31,6 +31,8 @@
31 31
32 public $search; 32 public $search;
33 33
  34 + public $portfolio;
  35 +
34 /** 36 /**
35 * @inheritdoc 37 * @inheritdoc
36 */ 38 */
@@ -47,6 +49,7 @@ @@ -47,6 +49,7 @@
47 'rating', 49 'rating',
48 'online', 50 'online',
49 'search', 51 'search',
  52 + 'portfolio',
50 ], 53 ],
51 'safe', 54 'safe',
52 ], 55 ],
@@ -55,7 +58,11 @@ @@ -55,7 +58,11 @@
55 'default', 58 'default',
56 'value' => 0, 59 'value' => 0,
57 ], 60 ],
58 - 61 + [
  62 + [ 'portfolio' ],
  63 + 'default',
  64 + 'value' => 1,
  65 + ],
59 ]; 66 ];
60 } 67 }
61 68
@@ -85,7 +92,6 @@ @@ -85,7 +92,6 @@
85 */ 92 */
86 public function search($params) 93 public function search($params)
87 { 94 {
88 -  
89 $this->load($params); 95 $this->load($params);
90 96
91 $query = User::find() 97 $query = User::find()
@@ -100,6 +106,7 @@ @@ -100,6 +106,7 @@
100 'specializations', 106 'specializations',
101 'companyInfo', 107 'companyInfo',
102 ]) 108 ])
  109 + ->innerJoin('portfolio', '"portfolio"."user_id" = "user"."id"')
103 ->where([ 'user_info.is_freelancer' => 1 ]); 110 ->where([ 'user_info.is_freelancer' => 1 ]);
104 111
105 $dataProvider = new ActiveDataProvider([ 112 $dataProvider = new ActiveDataProvider([
@@ -162,11 +169,14 @@ @@ -162,11 +169,14 @@
162 ->innerJoin([ 'spec' => 'user_specialization' ], 'spec.user_id = users.id') 169 ->innerJoin([ 'spec' => 'user_specialization' ], 'spec.user_id = users.id')
163 ->asArray() 170 ->asArray()
164 ->column(); 171 ->column();
165 - if(empty($query2)) { 172 + if(empty( $query2 )) {
166 $query->where('0=1'); 173 $query->where('0=1');
167 return $dataProvider; 174 return $dataProvider;
168 } 175 }
169 176
  177 + // Clear array from empty strings
  178 + $this->specialization = array_filter($this->specialization, 'strlen');
  179 +
170 $query->andFilterWhere([ 180 $query->andFilterWhere([
171 'user_info.city' => $this->city, 181 'user_info.city' => $this->city,
172 'specialization.specialization_id' => $this->specialization, 182 'specialization.specialization_id' => $this->specialization,
frontend/views/accounts/general.php
@@ -46,13 +46,18 @@ @@ -46,13 +46,18 @@
46 </div> 46 </div>
47 <div class="general-check-right"> 47 <div class="general-check-right">
48 <div class="general-check-right-txt"> 48 <div class="general-check-right-txt">
49 - Обязательно должны быть указаны специализации услуг, что бы вы попали в рейтинг исполнителей 49 + Обязательно должны быть указаны специализации услуг, а также добавлены проекты в портфолио, что бы вы попали в рейтинг исполнителей
50 <?php 50 <?php
51 if(!empty( $user->specializations )) { 51 if(!empty( $user->specializations )) {
52 echo "<p>В Вашем профиле указаны специализации: " . count($user->specializations) . "</p>"; 52 echo "<p>В Вашем профиле указаны специализации: " . count($user->specializations) . "</p>";
53 } else { 53 } else {
54 echo "<p>В Вашем профиле не указаны специализации. Чтобы указать - перейдите по " . Html::a('ссылке', [ 'accounts/service' ], [ 'target' => '_blank' ]) . "</p>"; 54 echo "<p>В Вашем профиле не указаны специализации. Чтобы указать - перейдите по " . Html::a('ссылке', [ 'accounts/service' ], [ 'target' => '_blank' ]) . "</p>";
55 } 55 }
  56 + if(!empty( $user->portfolios )) {
  57 + echo "<p>В Вашем портфолио добавлено проектов: " . count($user->portfolios) . "</p>";
  58 + } else {
  59 + echo "<p>В Вашем портфолио не добавлены проекты. Чтобы добавить - перейдите по " . Html::a('ссылке', [ 'accounts/portfolio' ], [ 'target' => '_blank' ]) . "</p>";
  60 + }
56 ?> 61 ?>
57 </div> 62 </div>
58 </div> 63 </div>
frontend/views/accounts/service.php
@@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
51 ?> 51 ?>
52 </div> 52 </div>
53 </div> 53 </div>
54 - 54 +
55 <div class="input-blocks-wrapper admin-menu-list"> 55 <div class="input-blocks-wrapper admin-menu-list">
56 <div class="input-blocks" style="width: 100%; margin-bottom: 5px"> 56 <div class="input-blocks" style="width: 100%; margin-bottom: 5px">
57 <label>Специализации</label> 57 <label>Специализации</label>
frontend/views/search/performer.php
@@ -4,10 +4,9 @@ @@ -4,10 +4,9 @@
4 * @var SearchPerformerForm $model 4 * @var SearchPerformerForm $model
5 */ 5 */
6 6
7 - use common\models\Vacancy; 7 + use common\models\Specialization;
8 use frontend\models\SearchPerformerForm; 8 use frontend\models\SearchPerformerForm;
9 use kartik\select2\Select2; 9 use kartik\select2\Select2;
10 - use yii\helpers\ArrayHelper;  
11 use \yii\helpers\Html; 10 use \yii\helpers\Html;
12 use yii\helpers\Url; 11 use yii\helpers\Url;
13 use yii\jui\SliderInput; 12 use yii\jui\SliderInput;
@@ -21,7 +20,6 @@ @@ -21,7 +20,6 @@
21 $active_key = array_keys($sort_array)[ 0 ]; 20 $active_key = array_keys($sort_array)[ 0 ];
22 $active_value = $sort_array[ $active_key ]; 21 $active_value = $sort_array[ $active_key ];
23 $sort_name = ( ( $active_value == 4 ) ? '-' : '' ) . $active_key; 22 $sort_name = ( ( $active_value == 4 ) ? '-' : '' ) . $active_key;
24 -  
25 $this->title = 'My Yii Application'; 23 $this->title = 'My Yii Application';
26 ?> 24 ?>
27 25
@@ -54,10 +52,93 @@ @@ -54,10 +52,93 @@
54 ], 52 ],
55 ]); ?> 53 ]); ?>
56 54
  55 + <?php
  56 + // New specialization chooser
  57 + ?>
  58 + <div class="input-blocks-wrapper admin-menu-list">
  59 + <div class="input-blocks" style="width: 100%; margin-bottom: 5px">
  60 + <label>Специализации</label>
  61 + <div class="required"></div>
  62 + </div>
  63 + <div class="style">
  64 + <ul class="content-menu-first">
  65 + <?php foreach($specializations as $specialization): ?>
  66 + <li data-img="<?= $specialization->image ?>">
  67 + <span data-menu-bg="<?= $specialization->background ?>" style="background: <?= $specialization->background ?>"></span><a href="#"><?= $specialization->specialization_name ?></a>
  68 + <ul>
  69 + <?php foreach($specialization->children as $child_first): ?>
  70 +
  71 + <?php if($child_first instanceof Specialization): ?>
  72 + <li>
  73 + <a href="#"><?= $child_first->specialization_name ?></a>
  74 + <ul>
  75 + <?php foreach($child_first->children as $child_second): ?>
  76 + <?php if($child_first instanceof Specialization): ?>
  77 + <li>
  78 + <a href="#" title="<?= $child_second->specialization_name ?>">
  79 + <?= $form->field($model, "specialization[{$child_second->specialization_id}]", [
  80 + 'template' => '{input}{label}{hint}{error}',
  81 + ])
  82 + ->label('<span></span>' . $child_second->specialization_name)
  83 + ->checkbox([
  84 + 'value' => $child_second->specialization_id,
  85 + 'label' => NULL,
  86 + 'uncheck' => NULL,
  87 + 'class' => 'custom-check',
  88 + ], false) ?>
  89 + </a>
  90 + </li>
  91 + <?php endif; ?>
  92 + <?php endforeach; ?>
  93 + </ul>
  94 + </li>
  95 + <?php endif; ?>
  96 + <?php endforeach; ?>
  97 +
  98 + </ul>
  99 + </li>
  100 + <?php endforeach; ?>
  101 + </ul>
  102 + </div>
  103 + <div class="style admn-menu-err">
  104 + <div class="help-block">Необходимо выбрать хотя бы одну «специализацию».</div>
  105 + </div>
  106 + </div>
  107 +
  108 + <div class="admin-specialization-selected style">
  109 + <ul></ul>
  110 + </div>
  111 +
  112 + <?php
  113 + // End of new specialization chooser
  114 + ?>
  115 +
  116 + <?php
  117 + /*
  118 + ?>
57 119
58 - <?= $form->field($model, 'specialization') 120 + <?= $form->field($model, 'specialization[]')
59 ->dropDownList($specialization, [ 'prompt' => 'Любая' ]); ?> 121 ->dropDownList($specialization, [ 'prompt' => 'Любая' ]); ?>
  122 + <?php
  123 + */
  124 + ?>
60 125
  126 + <?= $form->field($model, 'portfolio', [
  127 + 'options' => [
  128 + 'class' => 'blocks-check-list-wrapp',
  129 + ],
  130 + 'template' => "<div class='blocks-check-title'>{label}</div>\n{input}\n{hint}\n{error}",
  131 + ])
  132 + ->label('Искать в')
  133 + ->radioList([
  134 + 1 => 'Портфолио',
  135 + 0 => 'Услуги',
  136 + ], [
  137 + 'item' => function($index, $label, $name, $checked, $value) use ($model) {
  138 + return "<div class='blocks-check-list'><input type='radio' id='{$model->formName()}-{$index}-portfolio' name='{$name}' class='check-search' value='{$value}' " . ( $checked ? 'checked' : '' ) . "><label for='{$model->formName()}-{$index}-portfolio'><span></span>{$label}</label></div>";
  139 + },
  140 + 'unselect' => NULL,
  141 + ]); ?>
61 142
62 <?= $form->field($model, 'type') 143 <?= $form->field($model, 'type')
63 ->dropDownList([ 144 ->dropDownList([
@@ -128,8 +209,6 @@ @@ -128,8 +209,6 @@
128 'unselect' => NULL, 209 'unselect' => NULL,
129 ]); ?> 210 ]); ?>
130 211
131 -  
132 -  
133 <?= $form->field($model, 'additional_parameters') 212 <?= $form->field($model, 'additional_parameters')
134 ->checkboxList([ 213 ->checkboxList([
135 'with_portfolio' => 'Только с портфолио', 214 'with_portfolio' => 'Только с портфолио',
@@ -176,9 +255,9 @@ @@ -176,9 +255,9 @@
176 ?> 255 ?>
177 256
178 <?php 257 <?php
179 - if(empty(\Yii::$app->user->id) || empty(\Yii::$app->user->identity->specializations)) {  
180 - echo Html::a('Добавить себя в каталог', Url::toRoute('accounts/service'), [ 'class' => 'add-to-catalog-search-worker' ]);  
181 - } 258 + if(empty( \Yii::$app->user->id ) || empty( \Yii::$app->user->identity->specializations )) {
  259 + echo Html::a('Добавить себя в каталог', Url::toRoute('accounts/service'), [ 'class' => 'add-to-catalog-search-worker' ]);
  260 + }
182 ?> 261 ?>
183 262
184 <div class="search-worker-sort-wr style"> 263 <div class="search-worker-sort-wr style">