Commit 35b03e571c51398e6f5d8b2c6dc5ce44bfb44481

Authored by Administrator
1 parent 375f641b

add yii jquery

common/models/Specialization.php
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 namespace common\models; 3 namespace common\models;
4 4
5 use Yii; 5 use Yii;
  6 +use yii\helpers\ArrayHelper;
6 7
7 /** 8 /**
8 * This is the model class for table "specialization". 9 * This is the model class for table "specialization".
@@ -63,4 +64,15 @@ class Specialization extends \yii\db\ActiveRecord @@ -63,4 +64,15 @@ class Specialization extends \yii\db\ActiveRecord
63 return $this->hasMany(self::className(), ['specialization_pid' => 'specialization_id']); 64 return $this->hasMany(self::className(), ['specialization_pid' => 'specialization_id']);
64 } 65 }
65 66
  67 + public function hasChildrenInArray($array){
  68 + $array = ArrayHelper::map($array,'specialization_id', 'specialization_name','specialization_pid');
  69 +
  70 + if(isset($array[$this->specialization_id])){
  71 + return $array[$this->specialization_id];
  72 + } else {
  73 + return false;
  74 + }
  75 +
  76 + }
  77 +
66 } 78 }
common/models/User.php
@@ -51,12 +51,17 @@ @@ -51,12 +51,17 @@
51 return '{{%user}}'; 51 return '{{%user}}';
52 } 52 }
53 53
  54 +
  55 +
54 /** 56 /**
55 * @inheritdoc 57 * @inheritdoc
56 */ 58 */
57 public function behaviors() 59 public function behaviors()
58 { 60 {
59 return [ 61 return [
  62 + [
  63 + 'class' => 'common\behaviors\ShowImage',
  64 + ],
60 TimestampBehavior::className(), 65 TimestampBehavior::className(),
61 ]; 66 ];
62 } 67 }
frontend/controllers/SearchController.php
1 <?php 1 <?php
2 - namespace frontend\controllers;  
3 -  
4 - use common\models\CustomerSearch;  
5 - use common\models\Project;  
6 - use common\models\UserInfo;  
7 - use common\models\Vacancy;  
8 - use Yii;  
9 - use common\models\LoginForm;  
10 - use frontend\models\PasswordResetRequestForm;  
11 - use frontend\models\ResetPasswordForm;  
12 - use frontend\models\SignupForm;  
13 - use frontend\models\ContactForm;  
14 - use frontend\models\Options;  
15 - use frontend\models\OptionValues;  
16 - use yii\base\InvalidParamException;  
17 - use yii\data\ActiveDataProvider;  
18 - use yii\data\Pagination;  
19 - use yii\web\BadRequestHttpException;  
20 - use yii\web\Controller;  
21 - use yii\filters\VerbFilter;  
22 - use yii\filters\AccessControl;  
23 - use frontend\models\OptionsToValues;  
24 - use yii\validators\EmailValidator;  
25 - use common\models\User;  
26 - use yii\helpers\VarDumper;  
27 - use common\models\Page;  
28 - use frontend\models\Option;  
29 - use common\models\Social; 2 +namespace frontend\controllers;
  3 +
  4 +use common\models\CustomerSearch;
  5 +use common\models\Project;
  6 +use common\models\Specialization;
  7 +use common\models\UserInfo;
  8 +use common\models\Vacancy;
  9 +use frontend\models\SearchPerformerForm;
  10 +use Yii;
  11 +use common\models\LoginForm;
  12 +use frontend\models\PasswordResetRequestForm;
  13 +use frontend\models\ResetPasswordForm;
  14 +use frontend\models\SignupForm;
  15 +use frontend\models\ContactForm;
  16 +use frontend\models\Options;
  17 +use frontend\models\OptionValues;
  18 +use yii\base\InvalidParamException;
  19 +use yii\data\ActiveDataProvider;
  20 +use yii\data\Pagination;
  21 +use yii\helpers\ArrayHelper;
  22 +use yii\web\BadRequestHttpException;
  23 +use yii\web\Controller;
  24 +use yii\filters\VerbFilter;
  25 +use yii\filters\AccessControl;
  26 +use frontend\models\OptionsToValues;
  27 +use yii\validators\EmailValidator;
  28 +use common\models\User;
  29 +use yii\helpers\VarDumper;
  30 +use common\models\Page;
  31 +use frontend\models\Option;
  32 +use common\models\Social;
30 33
31 /** 34 /**
32 * Site controller 35 * Site controller
@@ -130,54 +133,43 @@ @@ -130,54 +133,43 @@
130 ]); 133 ]);
131 } 134 }
132 135
133 - public function actionCompany()  
134 - {  
135 - $query = UserInfo::find()  
136 - ->joinWith([ 'user' ])  
137 - ->where([  
138 - 'is_customer' => 1,  
139 - 'user.type' => 2,  
140 - ]);  
141 -  
142 - $companies = new ActiveDataProvider([  
143 - 'query' => $query,  
144 - 'pagination' => [  
145 - 'pageSize' => 3,  
146 - ],  
147 - ]);  
148 136
149 - return $this->render('company', [  
150 - 'companies' => $companies,  
151 - ]);  
152 - }  
153 137
154 - public function actionPerformer()  
155 - {  
156 - $query = UserInfo::find()  
157 - ->joinWith([ 'user' ])  
158 - ->where([  
159 - 'is_customer' => 1,  
160 - 'user.type' => 1,  
161 - ]);  
162 -  
163 - $performer = new ActiveDataProvider([  
164 - 'query' => $query,  
165 - 'pagination' => [  
166 - 'pageSize' => 3,  
167 - ],  
168 - ]); 138 + public function actionPerformer()
  139 + {
169 140
170 - return $this->render('performer', [  
171 - 'performer' => $performer,  
172 - ]); 141 +
  142 + $specializationArray = [];
  143 +
  144 + $specialization = Specialization::find()->where(['specialization_id'=> Specialization::find()->select('specialization_id')
  145 + ->andWhere('specialization_pid != 0')
  146 + ->column()])
  147 + ->all();
  148 +
  149 + foreach(ArrayHelper::index($specialization,'specialization_id') as $spec){
  150 + $array = $spec->hasChildrenInArray($specialization);
  151 + if($array){
  152 + $specializationArray[$spec->specialization_name] = $array;
  153 + }
173 } 154 }
174 155
  156 +
  157 + $searchModel = new SearchPerformerForm();
  158 +
  159 +
  160 + return $this->render('performer',[
  161 + 'dataProvider' => $searchModel->search(Yii::$app->request->queryParams),
  162 + 'specialization' => $specializationArray,
  163 + 'model'=> $searchModel
  164 + ]);
  165 + }
  166 +
175 public function actionVacancy() 167 public function actionVacancy()
176 { 168 {
177 169
178 $query = Vacancy::find(); 170 $query = Vacancy::find();
179 171
180 - $countQuery = clone $query; 172 + $countQuery = clone $query;
181 173
182 $pagination = new Pagination([ 174 $pagination = new Pagination([
183 'totalCount' => $countQuery->count(), 175 'totalCount' => $countQuery->count(),
frontend/models/SearchPerformerForm.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace frontend\models;
  4 +
  5 +use common\models\Portfolio;
  6 +use common\models\User;
  7 +use Yii;
  8 +use yii\base\Model;
  9 +use yii\data\ActiveDataProvider;
  10 +use yii\helpers\ArrayHelper;
  11 +
  12 +/**
  13 + * ContactForm is the model behind the contact form.
  14 + */
  15 +class SearchPerformerForm extends Model
  16 +{
  17 + public $city;
  18 + public $specialization;
  19 + public $working_conditions;
  20 + public $type;
  21 + public $additional_parameters;
  22 + public $rating;
  23 + public $online;
  24 + public $search;
  25 +
  26 +
  27 + /**
  28 + * @inheritdoc
  29 + */
  30 + public function rules()
  31 + {
  32 + return [
  33 + [['specialization','city', 'type','additional_parameters','working_conditions', 'rating','online','search'], 'safe'],
  34 + [
  35 + ['rating'],
  36 + 'default',
  37 + 'value' => 0,
  38 + ]
  39 +
  40 + ];
  41 + }
  42 +
  43 + /**
  44 + * @inheritdoc
  45 + */
  46 + public function attributeLabels()
  47 + {
  48 + return [
  49 + 'city' => 'Город',
  50 + 'specialization' => 'Специализация',
  51 + 'type' => 'Тип исполнителя',
  52 + 'additional_parameters' => 'Тип исполнителя',
  53 + 'working_conditions' => 'Условия работы',
  54 + 'rating' => 'Рейтинг',
  55 + 'online' => 'Статус',
  56 + 'search' => 'Найти'
  57 + ];
  58 + }
  59 +
  60 + /**
  61 + * Sends an email to the specified email address using the information collected by this model.
  62 + * @param string $email the target email address
  63 + * @return boolean whether the email was sent
  64 + */
  65 + public function sendEmail($email)
  66 + {
  67 + return Yii::$app->mailer->compose()
  68 + ->setTo($email)
  69 + ->setFrom([$this->email => $this->name])
  70 + ->setSubject($this->subject)
  71 + ->setTextBody($this->body)
  72 + ->send();
  73 + }
  74 +
  75 + /**
  76 + * Creates data provider instance with search query applied
  77 + *
  78 + * @param array $params
  79 + *
  80 + * @return ActiveDataProvider
  81 + */
  82 + public function search($params)
  83 + {
  84 +
  85 + $this->load($params);
  86 +
  87 + $query = User::find()
  88 + ->select(['user.*', 'company_info.*','user_info.*'])
  89 + ->distinct(true)
  90 + ->joinWith(['userInfo','specializations','companyInfo'])
  91 + ->where(['user_info.is_freelancer' => 1]);
  92 +
  93 +
  94 + $dataProvider = new ActiveDataProvider([
  95 + 'query' => $query,
  96 + 'pagination' => [
  97 + 'pageSize' => 3,
  98 + ],
  99 + ]);
  100 +
  101 + $dataProvider->setSort([
  102 + 'defaultOrder' => [
  103 + 'name' => SORT_ASC,
  104 + ],
  105 + 'attributes' => [
  106 + 'name' => [
  107 + 'asc' => [
  108 + 'company_info.name' => SORT_ASC,
  109 + 'firstname' => SORT_ASC,
  110 + 'lastname' => SORT_ASC,
  111 + ],
  112 + 'desc' => [
  113 + 'company_info.name' => SORT_DESC,
  114 + 'firstname' => SORT_DESC,
  115 + 'lastname' => SORT_DESC,
  116 + ],
  117 + 'default' => SORT_ASC,
  118 + 'label' => 'Название',
  119 + ],
  120 + 'visit' => [
  121 + 'asc' => [
  122 + 'user_info.date_visit' => SORT_ASC,
  123 + ],
  124 + 'desc' => [
  125 + 'user_info.date_visit' => SORT_DESC,
  126 + ],
  127 + 'default' => SORT_DESC,
  128 + 'label' => 'Последний визит',
  129 + ],
  130 + 'city' => [
  131 + 'asc' => [
  132 + 'user_info.city' => SORT_ASC,
  133 + ],
  134 + 'desc' => [
  135 + 'user_info.city' => SORT_DESC,
  136 + ],
  137 + 'default' => SORT_ASC,
  138 + 'label' => 'Город',
  139 + ],
  140 + ],
  141 + ]);
  142 +
  143 +
  144 + if (!$this->validate()) {
  145 +
  146 +
  147 + // uncomment the following line if you do not want to any records when validation fails
  148 + // $query->where('0=1');
  149 + return $dataProvider;
  150 + }
  151 +
  152 + $query->andFilterWhere([
  153 + 'user_info.city' => $this->city,
  154 + 'specialization.specialization_id' => $this->specialization,
  155 + 'user.type' => $this->type,
  156 +
  157 + ]);
  158 +
  159 + $query->andFilterWhere([
  160 + '>=', 'user_info.rating', $this->rating,
  161 + ]);
  162 +
  163 + if($this->online == 1) {
  164 + $query->andWhere([
  165 + '>=',
  166 + 'user_info.date_visit',
  167 + date('Y-m-d H:i:s.u', time() - 1800),
  168 + ]);
  169 + }
  170 +
  171 + foreach($this->working_conditions as $working_conditions){
  172 + if($working_conditions=='guarantee'){
  173 + $query->andWhere([
  174 + '<>',
  175 + 'user_info.guarantee',
  176 + ''
  177 + ]);
  178 + }else if($working_conditions=='prepayment'){
  179 + $query->andWhere([
  180 + 'user_info.prepayment'=>0,
  181 +
  182 + ]);
  183 + }else {
  184 + $query->andFilterWhere([
  185 + 'user_info.'.$working_conditions => 1,
  186 + ]);
  187 + }
  188 +
  189 + }
  190 +
  191 + foreach($this->additional_parameters as $additional_parameters){
  192 +
  193 + switch ($additional_parameters) {
  194 + case 'with_portfolio':
  195 + $query->andFilterWhere([
  196 + 'user.id'=>ArrayHelper::toArray(Portfolio::find()->select('user_id')->column()),
  197 + ]);
  198 + break;
  199 + case 'with_comments':
  200 + $query->andFilterWhere([
  201 + 'user.id'=>ArrayHelper::toArray(Portfolio::find()->select('user_id')->column()),
  202 + ]);
  203 + break;
  204 + case 'only_free':
  205 + $query->andFilterWhere([
  206 + 'user_info.busy'=>0,
  207 + ]);
  208 + break;
  209 + }
  210 + }
  211 +
  212 +
  213 + if(!empty( $this->search)){
  214 +
  215 + $query->andFilterWhere([
  216 + 'or',
  217 + ['like', 'user.firstname', $this->search],
  218 + ['like', 'user.lastname', $this->search],
  219 + ['like', 'company_info.name', $this->search]
  220 + ]);
  221 + }
  222 +
  223 +
  224 +
  225 +
  226 + return $dataProvider;
  227 + }
  228 +}
  229 +
frontend/views/accounts/general.php
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 <div class="general-check"> 27 <div class="general-check">
28 28
29 <div class="general-check-left"> 29 <div class="general-check-left">
30 - <?= $form->field($user, 'isPerformer', [ 'template' => "{input}\n{label}\n{error}" ]) 30 + <?= $form->field($user_info, 'is_freelancer', [ 'template' => "{input}\n{label}\n{error}" ])
31 ->label('<span></span>Я - исполнитель') 31 ->label('<span></span>Я - исполнитель')
32 ->checkbox([ 32 ->checkbox([
33 'class' => 'custom-check disabled admin-check', 33 'class' => 'custom-check disabled admin-check',
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 41
42 <div class="general-check"> 42 <div class="general-check">
43 <div class="general-check-left"> 43 <div class="general-check-left">
44 - <?= $form->field($user, 'isCustomer', [ 'template' => "{input}\n{label}\n{error}" ]) 44 + <?= $form->field($user_info, 'is_customer', [ 'template' => "{input}\n{label}\n{error}" ])
45 ->label('<span></span>Я - заказчик') 45 ->label('<span></span>Я - заказчик')
46 ->checkbox([ 46 ->checkbox([
47 'class' => 'custom-check disabled admin-check', 47 'class' => 'custom-check disabled admin-check',
frontend/views/layouts/main.php
@@ -89,7 +89,7 @@ AppAsset::register($this); @@ -89,7 +89,7 @@ AppAsset::register($this);
89 <ul> 89 <ul>
90 <li><?= Html::a('Список проектов', ['search/project'])?></li> 90 <li><?= Html::a('Список проектов', ['search/project'])?></li>
91 <li><?= Html::a('Список вакансий', ['search/vacancy'])?></li> 91 <li><?= Html::a('Список вакансий', ['search/vacancy'])?></li>
92 - <li><?= Html::a('Список заказчиков', ['site/index'])?></li> 92 + <li><?= Html::a('Список заказчиков', ['search/customer'])?></li>
93 </ul> 93 </ul>
94 </div> 94 </div>
95 </li> 95 </li>
@@ -103,8 +103,8 @@ AppAsset::register($this); @@ -103,8 +103,8 @@ AppAsset::register($this);
103 </ul> 103 </ul>
104 <ul> 104 <ul>
105 105
106 - <li><?= Html::a('Список проектантов', ['search/performer'])?></li>  
107 - <li><?= Html::a('Список проектных компаний', ['search/company'])?></li> 106 + <li><?= Html::a('Список проектантов', ['search/performer','SearchPerformerForm[type]'=>'1'])?></li>
  107 + <li><?= Html::a('Список проектных компаний', ['search/performer','SearchPerformerForm[type]'=>'2'])?></li>
108 </ul> 108 </ul>
109 </div> 109 </div>
110 </li> 110 </li>
@@ -120,7 +120,7 @@ AppAsset::register($this); @@ -120,7 +120,7 @@ AppAsset::register($this);
120 <ul> 120 <ul>
121 <li><?= Html::a('Список проектантов', ['search/performer'])?></li> 121 <li><?= Html::a('Список проектантов', ['search/performer'])?></li>
122 <li><?= Html::a('Список проектов', ['search/project'])?></li> 122 <li><?= Html::a('Список проектов', ['search/project'])?></li>
123 - <li><?= Html::a('Список заказчиков', ['site/index'])?></li> 123 + <li><?= Html::a('Список заказчиков', ['search/customer'])?></li>
124 </ul> 124 </ul>
125 </div> 125 </div>
126 </li> 126 </li>
frontend/views/search/_performer_list_view.php
@@ -7,7 +7,7 @@ use yii\helpers\Url; @@ -7,7 +7,7 @@ use yii\helpers\Url;
7 <div class="search-worker-blocks"> 7 <div class="search-worker-blocks">
8 <div class="search-worker-blocks-foto-wr"> 8 <div class="search-worker-blocks-foto-wr">
9 <div class="gallery-box-search gallery-box"> 9 <div class="gallery-box-search gallery-box">
10 - <?php $portfolios = ArrayHelper::getColumn($model->user->getPortfolios()->limit(4)->all(), 'cover'); ?> 10 + <?php $portfolios = ArrayHelper::getColumn($model->getPortfolios()->limit(4)->all(), 'cover'); ?>
11 <?php 11 <?php
12 for($i = 0; $i<count($portfolios); $i++ ) :?> 12 for($i = 0; $i<count($portfolios); $i++ ) :?>
13 <?php if($i):?> 13 <?php if($i):?>
@@ -34,16 +34,16 @@ use yii\helpers\Url; @@ -34,16 +34,16 @@ use yii\helpers\Url;
34 34
35 <div class="search-worker-blocks-text-wr"> 35 <div class="search-worker-blocks-text-wr">
36 <div class="search-worker-blocks-ico-wr"> 36 <div class="search-worker-blocks-ico-wr">
37 - <?= Html::img($model->minImg($model->image, '48','48'))?> 37 + <?= Html::img($model->minImg($model->userInfo->image, '48','48'))?>
38 </div> 38 </div>
39 <div class="search-worker-blocks-title-wr"> 39 <div class="search-worker-blocks-title-wr">
40 - <?php if($model->member):?> 40 + <?php if($model->userInfo->member):?>
41 <div class="land-stars-pro">PRO</div> 41 <div class="land-stars-pro">PRO</div>
42 <?php else: ?> 42 <?php else: ?>
43 <div class="land-stars-new">NEW</div> 43 <div class="land-stars-new">NEW</div>
44 <?php endif; ?> 44 <?php endif; ?>
45 45
46 - <div class="search-worker-blocks-title"><?= $model->user->name?></div> 46 + <div class="search-worker-blocks-title"><?= $model->name?></div>
47 </div> 47 </div>
48 <div class="search-worker-blocks-title-wr"> 48 <div class="search-worker-blocks-title-wr">
49 <div class="rating-new"> 49 <div class="rating-new">
@@ -53,11 +53,11 @@ use yii\helpers\Url; @@ -53,11 +53,11 @@ use yii\helpers\Url;
53 <!--<input type="hidden" class="votes" value="12"/>--> 53 <!--<input type="hidden" class="votes" value="12"/>-->
54 54
55 </div> 55 </div>
56 - <div class="search-worker-blocks-atr">30 отзывов, <?= $model->city?></div> 56 + <div class="search-worker-blocks-atr">30 отзывов, <?= $model->userInfo->city?></div>
57 </div> 57 </div>
58 <div class="search-worker-blocks-title-wr"> 58 <div class="search-worker-blocks-title-wr">
59 <div class="search-worker-blocks-status"> 59 <div class="search-worker-blocks-status">
60 - <?php if($model->busy):?> 60 + <?php if($model->userInfo->busy):?>
61 <?= Html::img('/images/sidebar-ico/ico_work_01.png');?><span>занят</span> 61 <?= Html::img('/images/sidebar-ico/ico_work_01.png');?><span>занят</span>
62 <?php else:?> 62 <?php else:?>
63 <?= Html::img('/images/sidebar-ico/ico-9.png');?><span>свободен</span> 63 <?= Html::img('/images/sidebar-ico/ico-9.png');?><span>свободен</span>
@@ -68,15 +68,15 @@ use yii\helpers\Url; @@ -68,15 +68,15 @@ use yii\helpers\Url;
68 <div class="search-worker-blocks-geographic style"> 68 <div class="search-worker-blocks-geographic style">
69 69
70 70
71 - <span>География работ: </span><?= implode(',',array_filter(ArrayHelper::getColumn($model->user->portfolios, 'city'))) ?> 71 + <span>География работ: </span><?= implode(',',array_filter(ArrayHelper::getColumn($model->portfolios, 'city'))) ?>
72 </div> 72 </div>
73 <div class="search-worker-blocks-tags style"> 73 <div class="search-worker-blocks-tags style">
74 - <?php foreach($model->user->specializations as $specialization):?> 74 + <?php foreach($model->specializations as $specialization):?>
75 <a href="#"><?= $specialization->specialization_name ?></a>, 75 <a href="#"><?= $specialization->specialization_name ?></a>,
76 <?php endforeach;?> 76 <?php endforeach;?>
77 </div> 77 </div>
78 - <div class="search-worker-blocks-visit style"><span>Последний визит: </span><?= $model->lastVisit ?></div>  
79 - <?= Html::a(count($model->user->portfolios)." работа в портфолио",[Url::toRoute(['performer/portfolio','performer_id'=>$model->user_id])], ['class' => "search-worker-blocks-jobs-portfolio" ])?> 78 + <div class="search-worker-blocks-visit style"><span>Последний визит: </span><?= $model->userInfo->lastVisit ?></div>
  79 + <?= Html::a(count($model->portfolios)." работа в портфолио",[Url::toRoute(['performer/portfolio','performer_id'=>$model->userInfo->user_id])], ['class' => "search-worker-blocks-jobs-portfolio" ])?>
80 <div class="search-worker-blocks-buttons style"> 80 <div class="search-worker-blocks-buttons style">
81 <a class="get-list" href="#">Добавить в закладки</a> 81 <a class="get-list" href="#">Добавить в закладки</a>
82 <a class="get-project" href="#">Предложить проект</a> 82 <a class="get-project" href="#">Предложить проект</a>
frontend/views/search/company.php deleted
1 -<?php  
2 - use \yii\helpers\Html;  
3 -use yii\widgets\ListView;  
4 -  
5 -/* @var $this yii\web\View */  
6 - $this->title = 'My Yii Application';  
7 -?>  
8 -  
9 -<div class="section-box content">  
10 - <div class="section-box-22">  
11 - <div class="box-wr">  
12 - <div class="box-all">  
13 - <div class="left-search-work">  
14 - <form action="" class="search-work-form">  
15 - <div class="blocks-check-list-wrapp">  
16 - <div class="blocks-check-title"><label for="theme-1">Город</label></div>  
17 - <select id="theme-1">  
18 - <option selected value="">Любой</option>  
19 - <option value="">Киев</option>  
20 - <option value="">Житомир</option>  
21 - <option value="">Львов</option>  
22 - <option value="">Киев</option>  
23 - <option value="">Житомир</option>  
24 - <option value="">Львов</option>  
25 - </select>  
26 - </div>  
27 - <div class="blocks-check-list-wrapp">  
28 - <div class="blocks-check-title"><label for="theme-2">Специализация</label></div>  
29 - <select id="theme-2">  
30 - <option selected value="">Любая</option>  
31 - <option value="">Киев</option>  
32 - <option value="">Житомир</option>  
33 - <option value="">Львов</option>  
34 - <option value="">Киев</option>  
35 - <option value="">Житомир</option>  
36 - <option value="">Львов</option>  
37 - </select>  
38 - </div>  
39 -  
40 - <div class="blocks-check-list-wrapp">  
41 - <div class="blocks-check-title"><label for="theme-3">Тип исполнителя</label></div>  
42 - <select id="theme-3">  
43 - <option selected value="">Любая</option>  
44 - <option value="">Киев</option>  
45 - <option value="">Житомир</option>  
46 - <option value="">Львов</option>  
47 - <option value="">Киев</option>  
48 - <option value="">Житомир</option>  
49 - <option value="">Львов</option>  
50 - </select>  
51 - </div>  
52 -  
53 - <div class="blocks-check-list-wrapp">  
54 - <div class="blocks-check-title">Условия работы</div>  
55 - <div class="blocks-check-list">  
56 - <input type="checkbox" name="group2" class="check-search" id="theme-4"><label for="theme-4"><span></span>С гарантией</label>  
57 - </div>  
58 - <div class="blocks-check-list">  
59 - <input type="checkbox" name="group2" class="check-search" id="theme-5"><label for="theme-5"><span></span>С договором</label>  
60 - </div>  
61 - <div class="blocks-check-list">  
62 - <input type="checkbox" name="group2" class="check-search" id="theme-6"><label for="theme-6"><span></span>Со сметой</label>  
63 - </div>  
64 - <div class="blocks-check-list">  
65 - <input type="checkbox" name="group2" class="check-search" id="theme-7"><label for="theme-7"><span></span>Без предоплаты</label>  
66 - </div>  
67 - </div>  
68 -  
69 - <div class="blocks-check-list-wrapp">  
70 - <div class="blocks-check-title">Рейтинг</div>  
71 - <div class="rating">  
72 - <!--оценка-->  
73 - <input type="hidden" class="val" value="0"/>  
74 - </div>  
75 - </div>  
76 -  
77 - <div class="blocks-check-list-wrapp">  
78 - <div class="blocks-check-title">Статус</div>  
79 - <div class="blocks-check-list">  
80 - <input type="radio" name="group3" class="check-search" id="theme-8"><label for="theme-8"><span></span>Онлайн</label>  
81 - </div>  
82 - <div class="blocks-check-list">  
83 - <input type="radio" name="group3" class="check-search" id="theme-9" checked><label for="theme-9"><span></span>Все</label>  
84 - </div>  
85 - </div>  
86 -  
87 - <div class="blocks-check-list-wrapp">  
88 - <div class="blocks-check-title">Дополнительно</div>  
89 - <div class="blocks-check-list">  
90 - <input type="checkbox" name="group4" class="check-search" id="theme-10"><label for="theme-10"><span></span>Только с портфолио</label>  
91 - </div>  
92 - <div class="blocks-check-list">  
93 - <input type="checkbox" name="group4" class="check-search" id="theme-11"><label for="theme-11"><span></span>Только с отзывами</label>  
94 - </div>  
95 - <div class="blocks-check-list">  
96 - <input type="checkbox" name="group4" class="check-search" id="theme-12"><label for="theme-12"><span></span>Только свободные</label>  
97 - </div>  
98 - </div>  
99 - <div class="blocks-check-list-submit">  
100 - <input type="submit" value="Найти"/>  
101 - </div>  
102 - </form>  
103 - <script>  
104 - $('div.rating').rating({  
105 - fx: 'full',  
106 - url: 'rating.php'  
107 - });  
108 - </script>  
109 - </div>  
110 - <div class="right-search-work">  
111 - <div class="search-worker-title style">Найти исполнителя</div>  
112 - <div class="search-worker-title-two style">Компании готовые приступить к работе <span>145</span></div>  
113 - <div class="search-worker-search-wr style">  
114 - <form action="" class="search-worker-form">  
115 - <input id="srch-wrk-text" type="text" placeholder="Любая информация о проектанте" required=""/>  
116 - <input id="srch-wrk-sub" type="submit" value="Найти"/>  
117 - </form>  
118 - <a href="#" class="add-to-catalog-search-worker">Добавить себя в каталог</a>  
119 - <div class="search-worker-sort-wr style">  
120 - <div class="search-worker-sort">Сортировать:&nbsp;</div>  
121 - <ul>  
122 - <li class="activejob">  
123 - <a href="#">рейтинг</a>  
124 - <div class="sidebar-droped-wr style">  
125 - <ul>  
126 - <li><a href="#">1заказчик</a></li>  
127 - <li><a href="#">2заказчик</a></li>  
128 - <li><a href="#">3заказчик</a></li>  
129 - <li><a href="#">4заказчик</a></li>  
130 - <li style="display: none"><a href="#">рейтинг</a></li>  
131 - </ul>  
132 - </div>  
133 - </li>  
134 - </ul>  
135 - </div>  
136 - </div>  
137 -  
138 - <div class="search-company-blocks-wr style">  
139 -  
140 - <?=  
141 - ListView::widget( [  
142 - 'dataProvider' => $companies,  
143 - 'itemView'=>'_company_list_view',  
144 - 'layout' => "{items}\n<div class='navi-buttons-wr style'>{pager}</div>",  
145 - 'itemOptions' =>[  
146 - 'tag' => false  
147 - ]  
148 -  
149 - ] );  
150 - ?>  
151 - </div>  
152 -  
153 - <script>  
154 - $('div.rating-new').rating({  
155 - fx: 'full',  
156 - readOnly: 'true',  
157 - url: 'rating.php'  
158 - });  
159 - </script>  
160 -  
161 - </div>  
162 - </div>  
163 - </div>  
164 - </div>  
165 -  
166 -</div>  
frontend/views/search/customer.php
@@ -171,136 +171,6 @@ @@ -171,136 +171,6 @@
171 'itemView' => '_customer_list_view', 171 'itemView' => '_customer_list_view',
172 ]); 172 ]);
173 ?> 173 ?>
174 - <?php  
175 - /* == Layout ==  
176 - ?>  
177 - <div class="search-worker-blocks-wr style">  
178 -  
179 - <div class="search-worker-blocks">  
180 - <div class="search_perform_txt-wr">  
181 - <div class="search_perform_title">ООО «Ортекс»</div>  
182 - <div class="search_perform-stars-wr">  
183 - <div class="rating_search_performer">  
184 - <!--оценка-->  
185 - <input type="hidden" class="val" value="4"/>  
186 - </div>  
187 - <div class="search_perform-stars-txt">30 отзывов, Киев</div>  
188 - </div>  
189 - <div class="search_perform_leng">  
190 - <div>Сотрудники: более 40</div>  
191 - </div>  
192 - <div class="search_perform_visit">  
193 - <span>Послелний визит:</span> 2 дня назад  
194 - </div>  
195 - <div class="search_perform_projets_nam">  
196 - <a href="#">Заказано проектов: 21</a></div>  
197 - </div>  
198 -  
199 - <div class="right_search_perform_block-wr">  
200 - <div class="right_search_perform_foto-wr">  
201 - <div><img src="/images/search_performer_img-1.jpg" alt=""/></div>  
202 - </div>  
203 - <a class="get-list" href="#">Добавить в закладки</a>  
204 - </div>  
205 - </div>  
206 -  
207 - <div class="search-worker-blocks">  
208 - <div class="search_perform_txt-wr">  
209 - <div class="search_perform_title">Петер Цумтор</div>  
210 - <div class="search_perform-stars-wr">  
211 - <div class="rating_search_performer">  
212 - <!--оценка-->  
213 - <input type="hidden" class="val" value="2"/>  
214 - </div>  
215 - <div class="search_perform-stars-txt">30 отзывов, Киев</div>  
216 - </div>  
217 - <div class="search_perform_leng">  
218 - <!--<div>Сотрудники: более 40</div>-->  
219 - </div>  
220 - <div class="search_perform_visit">  
221 - <span>Послелний визит:</span> 2 дня назад  
222 - </div>  
223 - <div class="search_perform_projets_nam">  
224 - <a href="#">Заказано проектов: 21</a></div>  
225 - </div>  
226 -  
227 - <div class="right_search_perform_block-wr">  
228 - <div class="right_search_perform_foto-wr">  
229 - <div><a href="#"><img src="/images/ded-ico.png" alt=""/></a></div>  
230 - </div>  
231 - <a class="get-list" href="#">Добавить в закладки</a>  
232 - </div>  
233 - </div>  
234 -  
235 - <div class="search-worker-blocks">  
236 - <div class="search_perform_txt-wr">  
237 - <div class="search_perform_title">ООО «Ортекс»</div>  
238 - <div class="search_perform-stars-wr">  
239 - <div class="rating_search_performer">  
240 - <!--оценка-->  
241 - <input type="hidden" class="val" value="1"/>  
242 - </div>  
243 - <div class="search_perform-stars-txt">30 отзывов, Киев</div>  
244 - </div>  
245 - <div class="search_perform_leng">  
246 - <div>Сотрудники: более 40</div>  
247 - </div>  
248 - <div class="search_perform_visit">  
249 - <span>Послелний визит:</span> 2 дня назад  
250 - </div>  
251 - <div class="search_perform_projets_nam">  
252 - <a href="#">Заказано проектов: 21</a></div>  
253 - </div>  
254 -  
255 - <div class="right_search_perform_block-wr">  
256 - <div class="right_search_perform_foto-wr">  
257 - <div><img src="/images/search_performer_img-1.jpg" alt=""/></div>  
258 - </div>  
259 - <a class="get-list" href="#">Добавить в закладки</a>  
260 - </div>  
261 - </div>  
262 -  
263 - <div class="search-worker-blocks">  
264 - <div class="search_perform_txt-wr">  
265 - <div class="search_perform_title">Петер Цумтор</div>  
266 - <div class="search_perform-stars-wr">  
267 - <div class="rating_search_performer">  
268 - <!--оценка-->  
269 - <input type="hidden" class="val" value="5"/>  
270 - </div>  
271 - <div class="search_perform-stars-txt">30 отзывов, Киев</div>  
272 - </div>  
273 - <div class="search_perform_leng">  
274 - <!--<div>Сотрудники: более 40</div>-->  
275 - </div>  
276 - <div class="search_perform_visit">  
277 - <span>Послелний визит:</span> 2 дня назад  
278 - </div>  
279 - <div class="search_perform_projets_nam">  
280 - <a href="#">Заказано проектов: 21</a></div>  
281 - </div>  
282 -  
283 - <div class="right_search_perform_block-wr">  
284 - <div class="right_search_perform_foto-wr">  
285 - <div><img src="/images/ded-ico.png" alt=""/></div>  
286 - </div>  
287 - <a class="get-list" href="#">Добавить в закладки</a>  
288 - </div>  
289 - </div>  
290 - </div>  
291 -  
292 - <div class="navi-buttons-wr style">  
293 - <ul class="pagination">  
294 - <li class="prev disabled"><span>«</span></li>  
295 - <li class="active"><a href="#">1</a></li>  
296 - <li><a href="#">2</a></li>  
297 - <li class="next"><a href="#">»</a></li>  
298 - </ul>  
299 - </div>  
300 -  
301 - <?php  
302 - == End of layout == */  
303 - ?>  
304 174
305 <script> 175 <script>
306 $('div.rating_search_performer').rating( 176 $('div.rating_search_performer').rating(
frontend/views/search/performer.php
1 <?php 1 <?php
2 2
  3 +use common\models\Vacancy;
  4 +use kartik\select2\Select2;
  5 +use yii\helpers\ArrayHelper;
3 use \yii\helpers\Html; 6 use \yii\helpers\Html;
  7 +use yii\helpers\Url;
  8 +use yii\jui\SliderInput;
  9 +use yii\web\JsExpression;
  10 +use yii\widgets\ActiveForm;
  11 +use yii\widgets\LinkSorter;
4 use yii\widgets\ListView; 12 use yii\widgets\ListView;
5 13
6 /* @var $this yii\web\View */ 14 /* @var $this yii\web\View */
7 15
  16 +$sort_array = $dataProvider->sort->getAttributeOrders();
  17 +$active_key = array_keys($sort_array)[0];
  18 +$active_value = $sort_array[$active_key];
  19 +$sort_name = (($active_value == 4)?'-':'').$active_key;
  20 +
8 $this->title = 'My Yii Application'; 21 $this->title = 'My Yii Application';
9 ?> 22 ?>
10 23
@@ -13,182 +26,169 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -13,182 +26,169 @@ $this-&gt;title = &#39;My Yii Application&#39;;
13 <div class="box-wr"> 26 <div class="box-wr">
14 <div class="box-all"> 27 <div class="box-all">
15 <div class="left-search-work"> 28 <div class="left-search-work">
16 - <form action="" class="search-work-form">  
17 - <div class="blocks-check-list-wrapp">  
18 - <div class="blocks-check-title"><label for="theme-1">Город</label></div>  
19 - <select id="theme-1">  
20 - <option selected value="">Любой</option>  
21 - <option value="">Киев</option>  
22 - <option value="">Житомир</option>  
23 - <option value="">Львов</option>  
24 - <option value="">Киев</option>  
25 - <option value="">Житомир</option>  
26 - <option value="">Львов</option>  
27 -  
28 - <option value="">Киев</option>  
29 - <option value="">Житомир</option>  
30 - <option value="">Львов</option>  
31 - <option value="">Киев</option>  
32 - <option value="">Житомир</option>  
33 - <option value="">Львов</option>  
34 - <option value="">Киев</option>  
35 - <option value="">Житомир</option>  
36 - <option value="">Львов</option>  
37 - <option value="">Киев</option>  
38 - <option value="">Житомир</option>  
39 - <option value="">Львов</option>  
40 - <option value="">Киев</option>  
41 - <option value="">Житомир</option>  
42 - <option value="">Львов</option>  
43 - <option value="">Киев</option>  
44 - <option value="">Житомир</option>  
45 - <option value="">Львов</option>  
46 - <option value="">Киев</option>  
47 - <option value="">Житомир</option>  
48 - <option value="">Львов</option>  
49 - <option value="">Киев</option>  
50 - <option value="">Житомир</option>  
51 - <option value="">Львов</option>  
52 - <option value="">Киев</option>  
53 - <option value="">Житомир</option>  
54 - <option value="">Львов</option>  
55 - <option value="">Киев</option>  
56 - <option value="">Житомир</option>  
57 - <option value="">Львов</option>  
58 - <option value="">Киев</option>  
59 - <option value="">Житомир</option>  
60 - <option value="">Львов</option>  
61 - <option value="">Киев</option>  
62 - <option value="">Житомир</option>  
63 - <option value="">Львов</option>  
64 - <option value="">Киев</option>  
65 - <option value="">Житомир</option>  
66 - <option value="">Львов</option>  
67 - <option value="">Киев</option>  
68 - <option value="">Житомир</option>  
69 - <option value="">Львов</option>  
70 - <option value="">Киев</option>  
71 - <option value="">Житомир</option>  
72 - <option value="">Львов</option>  
73 - <option value="">Киев</option>  
74 - <option value="">Житомир</option>  
75 - <option value="">Львов</option>  
76 - <option value="">Киев</option>  
77 - <option value="">Житомир</option>  
78 - <option value="">Львов</option>  
79 - <option value="">Киев</option>  
80 - <option value="">Житомир</option>  
81 - <option value="">Львов</option>  
82 - <option value="">Киев</option>  
83 -  
84 - </select>  
85 - </div>  
86 - <div class="blocks-check-list-wrapp">  
87 - <div class="blocks-check-title"><label for="theme-2">Специализация</label></div>  
88 - <select id="theme-2">  
89 - <option selected value="">Любая</option>  
90 - <option value="">Киев</option>  
91 - <option value="">Житомир</option>  
92 - <option value="">Львов</option>  
93 - <option value="">Киев</option>  
94 - <option value="">Житомир</option>  
95 - <option value="">Львов</option>  
96 - </select>  
97 - </div> 29 + <?php
  30 + $form = ActiveForm::begin(['options'=>['class'=>'search-work-form'],'action'=>[''], 'method'=>'get']);
  31 + ?>
  32 +
  33 +
  34 + <?= $form->field($model, 'city')
  35 + ->widget(Select2::classname(), [
  36 + 'options' => [ 'placeholder' => 'Выбор города ...' ],
  37 + 'pluginOptions' => [
  38 + 'allowClear' => true,
  39 + 'minimumInputLength' => 3,
  40 + 'ajax' => [
  41 + 'url' => \yii\helpers\Url::to([ 'site/city' ]),
  42 + 'dataType' => 'json',
  43 + 'data' => new JsExpression('function(params) { return {q:params.term}; }'),
  44 + ],
  45 + 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
  46 + 'templateResult' => new JsExpression('function(city) { return city.text; }'),
  47 + 'templateSelection' => new JsExpression('function (city) { return city.text; }'),
  48 + ],
  49 + ]); ?>
98 50
99 - <div class="blocks-check-list-wrapp">  
100 - <div class="blocks-check-title"><label for="theme-3">Тип исполнителя</label></div>  
101 - <select id="theme-3">  
102 - <option selected value="">Любая</option>  
103 - <option value="">Киев</option>  
104 - <option value="">Житомир</option>  
105 - <option value="">Львов</option>  
106 - <option value="">Киев</option>  
107 - <option value="">Житомир</option>  
108 - <option value="">Львов</option>  
109 - </select>  
110 - </div>  
111 51
112 - <div class="blocks-check-list-wrapp">  
113 - <div class="blocks-check-title">Условия работы</div>  
114 - <div class="blocks-check-list">  
115 - <input type="checkbox" name="group2" class="check-search" id="theme-4"><label for="theme-4"><span></span>С гарантией</label>  
116 - </div>  
117 - <div class="blocks-check-list">  
118 - <input type="checkbox" name="group2" class="check-search" id="theme-5"><label for="theme-5"><span></span>С договором</label>  
119 - </div>  
120 - <div class="blocks-check-list">  
121 - <input type="checkbox" name="group2" class="check-search" id="theme-6"><label for="theme-6"><span></span>Со сметой</label>  
122 - </div>  
123 - <div class="blocks-check-list">  
124 - <input type="checkbox" name="group2" class="check-search" id="theme-7"><label for="theme-7"><span></span>Без предоплаты</label>  
125 - </div>  
126 - </div> 52 + <?=
  53 + $form->field($model, 'specialization')
  54 + ->dropDownList($specialization, ['prompt' => 'Любая']);
  55 + ?>
127 56
128 - <div class="blocks-check-list-wrapp">  
129 - <div class="blocks-check-title">Рейтинг</div>  
130 - <div class="rating">  
131 - <!--оценка-->  
132 - <input type="hidden" class="val" value="0"/>  
133 - </div>  
134 - </div>  
135 57
136 - <div class="blocks-check-list-wrapp">  
137 - <div class="blocks-check-title">Статус</div>  
138 - <div class="blocks-check-list">  
139 - <input type="radio" name="group3" class="check-search" id="theme-8"><label for="theme-8"><span></span>Онлайн</label>  
140 - </div>  
141 - <div class="blocks-check-list">  
142 - <input type="radio" name="group3" class="check-search" id="theme-9" checked><label for="theme-9"><span></span>Все</label>  
143 - </div>  
144 - </div> 58 + <?=
  59 + $form->field($model, 'type')
  60 + ->dropDownList(['1'=>'Частное лицо','2'=>'Компания'], ['prompt' => 'Любой']);
  61 + ?>
145 62
146 - <div class="blocks-check-list-wrapp">  
147 - <div class="blocks-check-title">Дополнительно</div>  
148 - <div class="blocks-check-list">  
149 - <input type="checkbox" name="group4" class="check-search" id="theme-10"><label for="theme-10"><span></span>Только с портфолио</label>  
150 - </div>  
151 - <div class="blocks-check-list">  
152 - <input type="checkbox" name="group4" class="check-search" id="theme-11"><label for="theme-11"><span></span>Только с отзывами</label>  
153 - </div>  
154 - <div class="blocks-check-list">  
155 - <input type="checkbox" name="group4" class="check-search" id="theme-12"><label for="theme-12"><span></span>Только свободные</label>  
156 - </div>  
157 - </div>  
158 - <div class="blocks-check-list-submit">  
159 - <input type="submit" value="Найти"/>  
160 - </div>  
161 - </form>  
162 - <script>  
163 - $('div.rating').rating({  
164 - fx: 'full',  
165 - url: 'rating.php'  
166 - });  
167 - </script> 63 +
  64 +
  65 + <?=
  66 +
  67 + $form->field ($model, 'working_conditions')
  68 + ->checkboxList (
  69 + [
  70 + 'guarantee' => 'С гарантией',
  71 + 'contract' => 'С договором',
  72 + 'estimate' => 'Со сметой',
  73 + 'prepayment' => 'Без предоплаты'
  74 + ],
  75 + [
  76 + 'item' => function($index, $label, $name, $checked, $value) {
  77 + $return = '<div class="blocks-check-list">';
  78 + $return .= '<input type="checkbox" '.($checked ? "checked" : "" ).' name="' . $name . '" class="check-search" value="' . $value . '" id="theme-'.$index.'">';
  79 + $return .= '<label for="theme-'.$index.'"><span></span>'.$label.'</label>';
  80 + $return .= '</div>';
  81 + return $return;
  82 + }
  83 + ]
  84 + );
  85 + ?>
  86 +
  87 + <div class="blocks-check-list-wrapp">
  88 + <div id="slider-value"></div>
  89 + <?php
  90 + echo $form->field($model, 'rating', [
  91 + 'template' => "{label}<br><div id='{$form->id}-rating'>{$model->rating}</div><br>{input}\n{hint}\n{error}",
  92 + 'labelOptions' => [
  93 + 'class' => 'blocks-check-title',
  94 + ],
  95 + ])
  96 + ->widget(SliderInput::className(), [
  97 + 'clientOptions' => [
  98 + 'min' => 0,
  99 + 'max' => 5,
  100 + 'step' => 0.5,
  101 + ],
  102 + 'clientEvents' => [
  103 + 'slide' => "function( event, ui ) {
  104 + $( '#{$form->id}-rating' ).text(ui.value);
  105 + $('input[name=\"{$model->formName()}[rating]\"]').val(ui.value);
  106 +
  107 + }",
  108 + ],
  109 + ]);
  110 + ?>
  111 + </div>
  112 +
  113 +
  114 +
  115 + <?=
  116 + $form->field($model, 'online', [
  117 + 'options' => [
  118 + 'class' => 'blocks-check-list-wrapp',
  119 + ],
  120 + 'template' => "<div class='blocks-check-title'>{label}</div>\n{input}\n{hint}\n{error}",
  121 + ])
  122 + ->radioList([
  123 + '' => 'Все',
  124 + 1 => 'Онлайн',
  125 + ], [
  126 + 'item' => function($index, $label, $name, $checked, $value) use ($model) {
  127 + return "<div class='blocks-check-list'><input type='radio' id='{$model->formName()}-{$index}' name='{$name}' class='check-search' value='{$value}' " . ($checked?'checked':'') . "><label for='{$model->formName()}-{$index}'><span></span>{$label}</label></div>";
  128 + },
  129 + 'unselect' => NULL,
  130 + ]);
  131 + ?>
  132 +
  133 +
  134 +
  135 + <?=
  136 + $form->field ($model, 'additional_parameters')
  137 + ->checkboxList (
  138 + [
  139 + 'with_portfolio' => 'Только с портфолио',
  140 + 'with_comments' => 'Только с отзывами',
  141 + 'only_free' => 'Только свободные',
  142 + ],
  143 + [
  144 + 'item' => function($index, $label, $name, $checked, $value) {
  145 + $return = '<div class="blocks-check-list">';
  146 + $return .= '<input type="checkbox" '.($checked ? "checked" : "" ).' name="' . $name . '" class="check-search" value="' . $value . '" id="theme2-'.$index.'">';
  147 + $return .= '<label for="theme2-'.$index.'"><span></span>'.$label.'</label>';
  148 + $return .= '</div>';
  149 + return $return;
  150 + }
  151 + ]
  152 + );
  153 + ?>
  154 + <div class="blocks-check-list-submit">
  155 + <?= Html::submitInput('Найти') ?>
  156 + </div>
  157 +
  158 + <?php
  159 + $form->end();
  160 + ?>
168 </div> 161 </div>
169 <div class="right-search-work"> 162 <div class="right-search-work">
170 <div class="search-worker-title style">Найти исполнителя</div> 163 <div class="search-worker-title style">Найти исполнителя</div>
171 - <div class="search-worker-title-two style">Проектанты готовые приступить к работе <span>145</span></div> 164 + <div class="search-worker-title-two style">Проектанты готовые приступить к работе <span><?= $dataProvider->totalCount ?></span></div>
172 <div class="search-worker-search-wr style"> 165 <div class="search-worker-search-wr style">
173 - <form action="" class="search-worker-form">  
174 - <input id="srch-wrk-text" type="text" placeholder="Любая информация о проектанте" required=""/>  
175 - <input id="srch-wrk-sub" type="submit" value="Найти"/>  
176 - </form>  
177 - <a href="#" class="add-to-catalog-search-worker">Добавить себя в каталог</a> 166 + <?php
  167 + $form2 = ActiveForm::begin(['method' => 'get', 'action' => [''], 'options' => ['class' => 'search-worker-form']]);
  168 + ?>
  169 +
  170 + <?= $form2->field($model, 'search', ['options' => ['tag' => 'span']])->label(false)->textInput(['placeholder' => $model->getAttributeLabel('search')]);?>
  171 +
  172 + <?= Html::submitInput('Найти');?>
  173 +
  174 + <?php
  175 + $form2->end();
  176 + ?>
  177 +
  178 +
  179 + <?= Html::a('Добавить себя в каталог',Url::toRoute('accounts/service'),['class'=>'add-to-catalog-search-worker'])?>
  180 +
178 <div class="search-worker-sort-wr style"> 181 <div class="search-worker-sort-wr style">
179 <div class="search-worker-sort">Сортировать:&nbsp;</div> 182 <div class="search-worker-sort">Сортировать:&nbsp;</div>
180 <ul> 183 <ul>
181 <li class="activejob"> 184 <li class="activejob">
182 - <a href="#">рейтинг</a> 185 + <a href="#" data-sort-name="<?=$sort_name?>"></a>
183 <div class="sidebar-droped-wr style"> 186 <div class="sidebar-droped-wr style">
184 - <ul>  
185 - <li><a href="#">рейтинг</a></li>  
186 - <li><a href="#">1заказчик</a></li>  
187 - <li><a href="#">2заказчик</a></li>  
188 - <li><a href="#">3заказчик</a></li>  
189 - <li><a href="#">4заказчик</a></li>  
190 -  
191 - </ul> 187 + <?php
  188 + echo LinkSorter::widget([
  189 + 'sort' => $dataProvider->sort,
  190 + ]);
  191 + ?>
192 </div> 192 </div>
193 </li> 193 </li>
194 </ul> 194 </ul>
@@ -198,8 +198,9 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -198,8 +198,9 @@ $this-&gt;title = &#39;My Yii Application&#39;;
198 <div class="search-worker-blocks-wr style"> 198 <div class="search-worker-blocks-wr style">
199 199
200 <?= 200 <?=
  201 +
201 ListView::widget( [ 202 ListView::widget( [
202 - 'dataProvider' => $performer, 203 + 'dataProvider' => $dataProvider,
203 'itemView'=>'_performer_list_view', 204 'itemView'=>'_performer_list_view',
204 'layout' => "{items}\n<div class='navi-buttons-wr style'>{pager}</div>" 205 'layout' => "{items}\n<div class='navi-buttons-wr style'>{pager}</div>"
205 ] ); 206 ] );
@@ -209,19 +210,9 @@ $this-&gt;title = &#39;My Yii Application&#39;; @@ -209,19 +210,9 @@ $this-&gt;title = &#39;My Yii Application&#39;;
209 210
210 211
211 </div> 212 </div>
212 -  
213 - <script>  
214 - $('div.rating-new').rating({  
215 - fx: 'full',  
216 - readOnly: 'true',  
217 - url: 'rating.php'  
218 - });  
219 - </script>  
220 </div> 213 </div>
221 </div> 214 </div>
222 </div> 215 </div>
223 </div> 216 </div>
224 217
225 </div> 218 </div>
226 -  
227 -  
frontend/web/css/style.css
@@ -6655,6 +6655,18 @@ input[disabled], select[disabled] { @@ -6655,6 +6655,18 @@ input[disabled], select[disabled] {
6655 } 6655 }
6656 .right_search_perform_foto-wr {vertical-align: middle} 6656 .right_search_perform_foto-wr {vertical-align: middle}
6657 .section-box-customer .search-worker-blocks {margin-top: 20px} 6657 .section-box-customer .search-worker-blocks {margin-top: 20px}
  6658 +
  6659 +.search-work-form .control-label{
  6660 + width: 100%;
  6661 + font-size: 13px;
  6662 + font-weight: 700;
  6663 + margin-bottom: 5px;
  6664 +}
  6665 +
  6666 +.search-work-form .form-group{
  6667 + margin-bottom: 16px;
  6668 +
  6669 +}
6658 .form_site_logn-wr { 6670 .form_site_logn-wr {
6659 width: 240px; 6671 width: 240px;
6660 margin: 0 auto; 6672 margin: 0 auto;