Commit 35b03e571c51398e6f5d8b2c6dc5ce44bfb44481
1 parent
375f641b
add yii jquery
Showing
11 changed files
with
496 additions
and
551 deletions
Show diff stats
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(), |
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">Сортировать: </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->title = 'My Yii Application'; | @@ -13,182 +26,169 @@ $this->title = 'My Yii Application'; | ||
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">Сортировать: </div> | 182 | <div class="search-worker-sort">Сортировать: </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->title = 'My Yii Application'; | @@ -198,8 +198,9 @@ $this->title = 'My Yii Application'; | ||
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->title = 'My Yii Application'; | @@ -209,19 +210,9 @@ $this->title = 'My Yii Application'; | ||
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; |