fbdb1f1c
Yarik
test
|
1
|
<?php
|
fa284ab0
Yarik
test
|
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
namespace frontend\controllers;
use common\models\Blog;
use common\models\Fields;
use common\models\Gallery;
use common\models\Portfolio;
use common\models\PortfolioSpecialization;
use common\models\Team;
use common\models\Vacancy;
use common\models\VacancySpecialization;
use Yii;
use yii\data\ActiveDataProvider;
use yii\data\ArrayDataProvider;
use yii\data\Pagination;
|
225c5168
Yarik
test
|
16
|
use yii\data\Sort;
|
fa284ab0
Yarik
test
|
17
18
19
20
|
use yii\helpers\ArrayHelper;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use common\models\User;
|
225c5168
Yarik
test
|
21
|
use yii\web\NotFoundHttpException;
|
fbdb1f1c
Yarik
test
|
22
23
|
/**
|
fa284ab0
Yarik
test
|
24
|
* Site controller
|
fbdb1f1c
Yarik
test
|
25
|
*/
|
fa284ab0
Yarik
test
|
26
|
class CompanyController extends Controller
|
fbdb1f1c
Yarik
test
|
27
|
{
|
fbdb1f1c
Yarik
test
|
28
|
|
fa284ab0
Yarik
test
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
public $layout = 'company';
public $defaultAction = 'common';
/**
* @inheritdoc
*/
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : NULL,
],
];
|
d36bdac6
Administrator
17.02.16
|
47
|
}
|
d36bdac6
Administrator
17.02.16
|
48
|
|
fa284ab0
Yarik
test
|
49
50
51
|
public function actionIndex()
{
$this->redirect('site/index');
|
d36bdac6
Administrator
17.02.16
|
52
|
}
|
d36bdac6
Administrator
17.02.16
|
53
|
|
fa284ab0
Yarik
test
|
54
55
|
public function actionCommon($company_id)
{
|
225c5168
Yarik
test
|
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
/**
* @var User $company
*/
if(!$company = User::find()
->where([ 'id' => $company_id ])
->with('teams')
->with('teams.department')
->with('userInfo')
->with('companyInfo')
->one()
) {
throw new NotFoundHttpException('Компания не найдена');
}
$projectProvider = new ActiveDataProvider([
'query' => $company->getProjects(),
]);
|
fa284ab0
Yarik
test
|
73
|
|
225c5168
Yarik
test
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
$blogProvider = new ActiveDataProvider([
'query' => $company->getBlog()
->with('comments'),
'sort' => new Sort([
'defaultOrder' => [
'date_add' => SORT_DESC,
'name' => SORT_ASC,
],
]),
'pagination' => new Pagination([
'pageSize' => 2,
'pageParam' => '',
]),
]);
$commentProvider = new ActiveDataProvider([
|
110087c2
Yarik
test
|
90
91
92
|
'query' => $company->getComments()
->with('rating')
->with('author'),
|
225c5168
Yarik
test
|
93
94
95
96
97
98
99
100
101
102
|
'sort' => new Sort([
'defaultOrder' => [
'date_add' => SORT_DESC,
],
]),
'pagination' => new Pagination([
'pageSize' => 4,
'pageParam' => '',
]),
]);
|
fa284ab0
Yarik
test
|
103
104
|
return $this->render('common', [
|
225c5168
Yarik
test
|
105
106
107
108
|
'company' => $company,
'projectProvider' => $projectProvider,
'blogProvider' => $blogProvider,
'commentProvider' => $commentProvider,
|
fa284ab0
Yarik
test
|
109
110
|
]);
}
|
d36bdac6
Administrator
17.02.16
|
111
|
|
fa284ab0
Yarik
test
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
public function actionPortfolio($company_id)
{
$company = User::findOne($company_id);
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
$projects = ArrayHelper::getColumn($company->portfolios, 'portfolio_id');
$filters = PortfolioSpecialization::find()
->select([
"specialization_id",
"COUNT('specialization_id') AS count",
])
->where([ "portfolio_id" => $projects ])
->groupBy("specialization_id")
->all();
$portfolio = new ArrayDataProvider([
'allModels' => $company->getPortfolios()
->orderBy('portfolio_id')
->all(),
'pagination' => [
'pageSize' => 9,
],
]);
return $this->render('portfolio', [
'company' => $company,
'filters' => $filters,
'portfolio' => $portfolio,
'count' => count($company->portfolios),
]);
|
d36bdac6
Administrator
17.02.16
|
145
146
|
}
|
fa284ab0
Yarik
test
|
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
public function actionPortfolioFilter($performer_id, $filter)
{
$company = User::findOne($performer_id);
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
$portfolios = ArrayHelper::getColumn($company->portfolios, 'portfolio_id');
$filters = PortfolioSpecialization::find()
->select([
"specialization_id",
"COUNT('specialization_id') AS count",
])
->where([ "portfolio_id" => $portfolios ])
->groupBy("specialization_id")
->all();
$filter_result = PortfolioSpecialization::find()
->where([
'specialization_id' => $filter,
'portfolio_id' => $portfolios,
])
->all();
$portfolio = new ArrayDataProvider([
'allModels' => Portfolio::find()
->where([ 'portfolio_id' => ArrayHelper::getColumn($filter_result, 'portfolio_id') ])
->all(),
'pagination' => [
'pageSize' => 9,
],
]);
return $this->render('portfolio', [
'company' => $company,
'filters' => $filters,
'portfolio' => $portfolio,
'filter_id' => $filter,
'count' => count($company->portfolios),
]);
}
|
d36bdac6
Administrator
17.02.16
|
189
|
|
fa284ab0
Yarik
test
|
190
191
192
193
194
195
196
197
198
199
200
201
|
public function actionPortfolioView($company_id, $portfolio_id)
{
$user = User::findOne($company_id);
$portfolio = $user->getPortfolios()
->where([ 'portfolio_id' => $portfolio_id ])
->one();
$portfolio->updateCounters([ 'view_count' => 1 ]);
return $this->render('portfolio-view', [
'user' => $user,
'portfolio' => $portfolio,
]);
}
|
d36bdac6
Administrator
17.02.16
|
202
|
|
fa284ab0
Yarik
test
|
203
204
205
|
public function actionTeam($company_id)
{
$company = User::findOne($company_id);
|
fa284ab0
Yarik
test
|
206
207
208
|
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
|
a020aad3
Yarik
test
|
209
|
$comments = new ActiveDataProvider([
|
225c5168
Yarik
test
|
210
|
'query' => $company->getComments(),
|
a020aad3
Yarik
test
|
211
|
'pagination' => [
|
225c5168
Yarik
test
|
212
|
'pageSize' => 4,
|
a020aad3
Yarik
test
|
213
214
|
],
]);
|
fa284ab0
Yarik
test
|
215
216
|
$query = Team::find()
->where([ 'user_id' => $company_id ]);
|
a020aad3
Yarik
test
|
217
218
219
220
221
|
$team = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 9,
],
|
fa284ab0
Yarik
test
|
222
|
]);
|
fa284ab0
Yarik
test
|
223
|
return $this->render('team', [
|
a020aad3
Yarik
test
|
224
225
226
|
'company' => $company,
'team' => $team,
'comments' => $comments,
|
fa284ab0
Yarik
test
|
227
|
]);
|
d36bdac6
Administrator
17.02.16
|
228
229
|
}
|
fa284ab0
Yarik
test
|
230
231
232
|
public function actionBlogList($company_id)
{
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
233
|
|
fa284ab0
Yarik
test
|
234
235
236
|
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
|
d36bdac6
Administrator
17.02.16
|
237
|
|
fa284ab0
Yarik
test
|
238
239
|
$query = Blog::find()
->where([ 'user_id' => $company_id ]);
|
d36bdac6
Administrator
17.02.16
|
240
|
|
fa284ab0
Yarik
test
|
241
|
$countQuery = clone $query;
|
d36bdac6
Administrator
17.02.16
|
242
|
|
fa284ab0
Yarik
test
|
243
244
245
246
|
$pagination = new Pagination([
'totalCount' => $countQuery->count(),
'pageSize' => 5,
]);
|
d36bdac6
Administrator
17.02.16
|
247
|
|
fa284ab0
Yarik
test
|
248
249
|
$article = $query->offset($pagination->offset)
->limit($pagination->limit)
|
4ff3ca88
Yarik
test
|
250
|
->with('comments')
|
fa284ab0
Yarik
test
|
251
|
->all();
|
d36bdac6
Administrator
17.02.16
|
252
|
|
fa284ab0
Yarik
test
|
253
254
255
|
$blog = new ArrayDataProvider([
'allModels' => $article,
]);
|
f6ea8941
Administrator
09.02.16
|
256
|
|
fa284ab0
Yarik
test
|
257
258
259
260
261
|
return $this->render('blog-list', [
'company' => $company,
'blog' => $blog,
'pagination' => $pagination,
]);
|
d36bdac6
Administrator
17.02.16
|
262
263
|
}
|
fa284ab0
Yarik
test
|
264
265
266
|
public function actionBlogView($company_id, $link)
{
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
267
|
|
fa284ab0
Yarik
test
|
268
269
270
|
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
|
d36bdac6
Administrator
17.02.16
|
271
|
|
4ff3ca88
Yarik
test
|
272
273
274
275
276
277
278
279
|
$article = Blog::find()
->where([
'link' => $link,
'user_id' => $company_id,
])
->with('comments')
->one();
$article->updateCounters([ 'view_count' => 1 ]);
|
d36bdac6
Administrator
17.02.16
|
280
|
|
fa284ab0
Yarik
test
|
281
282
283
|
return $this->render('blog-view', [
'company' => $company,
'article' => $article,
|
d36bdac6
Administrator
17.02.16
|
284
|
|
fa284ab0
Yarik
test
|
285
286
|
]);
}
|
eb7e82fb
Administrator
29.02.16
|
287
|
|
fa284ab0
Yarik
test
|
288
289
290
|
public function actionReview($company_id)
{
$company = User::findOne($company_id);
|
eb7e82fb
Administrator
29.02.16
|
291
|
|
fa284ab0
Yarik
test
|
292
293
294
|
return $this->render('review', [
'company' => $company,
]);
|
eb7e82fb
Administrator
29.02.16
|
295
296
|
}
|
fa284ab0
Yarik
test
|
297
298
|
public function actionVacancyList($company_id)
{
|
eb7e82fb
Administrator
29.02.16
|
299
|
|
fa284ab0
Yarik
test
|
300
|
$company = User::findOne($company_id);
|
eb7e82fb
Administrator
29.02.16
|
301
|
|
fa284ab0
Yarik
test
|
302
303
304
|
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
|
eb7e82fb
Administrator
29.02.16
|
305
|
|
fa284ab0
Yarik
test
|
306
|
$query = $company->getVacancies();
|
eb7e82fb
Administrator
29.02.16
|
307
|
|
fa284ab0
Yarik
test
|
308
|
$provider = new ActiveDataProvider([
|
a020aad3
Yarik
test
|
309
310
311
312
|
'query' => $query,
'pagination' => [
'pageSize' => 5,
],
|
fa284ab0
Yarik
test
|
313
314
315
316
317
318
319
|
'sort' => [
'defaultOrder' => [
'date_add' => SORT_DESC,
'name' => SORT_ASC,
],
],
]);
|
eb7e82fb
Administrator
29.02.16
|
320
|
|
fa284ab0
Yarik
test
|
321
|
return $this->render('vacancy-list', [
|
a020aad3
Yarik
test
|
322
323
|
'company' => $company,
'provider' => $provider,
|
fa284ab0
Yarik
test
|
324
|
]);
|
eb7e82fb
Administrator
29.02.16
|
325
|
|
fa284ab0
Yarik
test
|
326
|
}
|
eb7e82fb
Administrator
29.02.16
|
327
|
|
fa284ab0
Yarik
test
|
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
|
public function actionVacancyView($company_id, $link)
{
$company = User::findOne($company_id);
$vacancy = $company->getVacancies()
->where([ 'link' => $link ])
->with([
'employments',
'specializations',
])
->one();
$specialization_id = $vacancy->getSpecializations()
->select('specialization_id')
->column();
$vacancy_id = VacancySpecialization::find()
->where([ 'specialization_id' => $specialization_id ])
->select('vacancy_id')
->column();
$similar_vacancies = Vacancy::find()
->where([
'city' => $vacancy->city,
'vacancy_id' => $vacancy_id,
])
->andFilterWhere([
'<>',
'vacancy_id',
$vacancy->vacancy_id,
])
->orderBy([ 'vacancy_id' => SORT_DESC ])
->limit(3)
->all();
return $this->render('vacancy-view', [
'company' => $company,
'vacancy' => $vacancy,
'similar_vacancies' => $similar_vacancies,
]);
}
|
fbdb1f1c
Yarik
test
|
368
|
|
fa284ab0
Yarik
test
|
369
370
371
|
public function actionGallery($company_id)
{
$company = User::findOne($company_id);
|
f6ea8941
Administrator
09.02.16
|
372
|
|
fa284ab0
Yarik
test
|
373
374
375
|
if(!$company instanceof User) {
throw new BadRequestHttpException('Пользователь не найден');
}
|
cda2c1c9
Administrator
add yii jquery
|
376
|
|
fa284ab0
Yarik
test
|
377
378
|
$query = Gallery::find()
->where([ 'user_id' => $company_id ]);
|
cda2c1c9
Administrator
add yii jquery
|
379
|
|
fa284ab0
Yarik
test
|
380
|
$countQuery = clone $query;
|
cda2c1c9
Administrator
add yii jquery
|
381
|
|
fa284ab0
Yarik
test
|
382
383
384
385
|
$pagination = new Pagination([
'totalCount' => $countQuery->count(),
'pageSize' => 5,
]);
|
cda2c1c9
Administrator
add yii jquery
|
386
|
|
fa284ab0
Yarik
test
|
387
388
389
|
$gallery = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
|
cda2c1c9
Administrator
add yii jquery
|
390
|
|
fa284ab0
Yarik
test
|
391
392
393
|
$gallery = new ArrayDataProvider([
'allModels' => $gallery,
]);
|
fbdb1f1c
Yarik
test
|
394
|
|
fa284ab0
Yarik
test
|
395
|
$videos = Fields::getData($company->id, Gallery::className(), 'youtube');
|
d36bdac6
Administrator
17.02.16
|
396
|
|
fa284ab0
Yarik
test
|
397
|
$this->layout = 'gallery-company';
|
f6ea8941
Administrator
09.02.16
|
398
|
|
fa284ab0
Yarik
test
|
399
400
401
402
403
404
|
return $this->render('gallery', [
'company' => $company,
'gallery' => $gallery,
'pagination' => $pagination,
'videos' => $videos,
]);
|
d36bdac6
Administrator
17.02.16
|
405
|
}
|
fbdb1f1c
Yarik
test
|
406
|
}
|