fbdb1f1c
Yarik
test
|
1
2
3
|
<?php
namespace frontend\controllers;
|
d36bdac6
Administrator
17.02.16
|
4
5
|
use common\models\Blog;
|
f6ea8941
Administrator
09.02.16
|
6
|
use common\models\Fields;
|
d36bdac6
Administrator
17.02.16
|
7
8
9
10
|
use common\models\Gallery;
use common\models\Portfolio;
use common\models\PortfolioSpecialization;
use common\models\Team;
|
fbdb1f1c
Yarik
test
|
11
|
use Yii;
|
f389cee6
Yarik
test
|
12
|
use yii\data\ActiveDataProvider;
|
d36bdac6
Administrator
17.02.16
|
13
14
|
use yii\data\ArrayDataProvider;
use yii\data\Pagination;
|
f6ea8941
Administrator
09.02.16
|
15
|
use yii\helpers\ArrayHelper;
|
fbdb1f1c
Yarik
test
|
16
17
|
use yii\web\BadRequestHttpException;
use yii\web\Controller;
|
fbdb1f1c
Yarik
test
|
18
|
use common\models\User;
|
fbdb1f1c
Yarik
test
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/**
* Site controller
*/
class CompanyController extends Controller
{
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,
],
];
}
public function actionIndex()
{
|
f6ea8941
Administrator
09.02.16
|
46
|
$this->redirect('site/index');
|
fbdb1f1c
Yarik
test
|
47
48
|
}
|
f6ea8941
Administrator
09.02.16
|
49
|
public function actionCommon($company_id)
|
fbdb1f1c
Yarik
test
|
50
|
{
|
f6ea8941
Administrator
09.02.16
|
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
$company = User::findOne($company_id);
$educations = Fields::getData($company->id,$company->className(),'education');
$phones = Fields::getData($company->id,$company->className(),'phone');
$sites = Fields::getData($company->id,$company->className(),'site');
$soft = implode(', ',ArrayHelper::getColumn(Fields::getData($company->id,$company->className(),'soft'), 'soft'));
return $this->render('common',[
'company' => $company,
'educations' => $educations,
'phones' => $phones,
'sites' => $sites,
'soft' => $soft
]);
|
fbdb1f1c
Yarik
test
|
65
66
|
}
|
f6ea8941
Administrator
09.02.16
|
67
|
public function actionPortfolio($company_id)
|
fbdb1f1c
Yarik
test
|
68
|
{
|
f6ea8941
Administrator
09.02.16
|
69
70
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
71
72
73
74
75
76
77
78
79
80
|
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([
|
eb7e82fb
Administrator
29.02.16
|
81
|
'allModels' => $company->getPortfolios()->orderBy('portfolio_id')->all(),
|
d36bdac6
Administrator
17.02.16
|
82
83
84
85
86
|
'pagination' => [
'pageSize' => 9,
],
]);
|
f6ea8941
Administrator
09.02.16
|
87
|
return $this->render('portfolio',[
|
d36bdac6
Administrator
17.02.16
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
'company' => $company,
'filters' => $filters,
'portfolio' => $portfolio,
'count' => count($company->portfolios)
]);
}
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)
|
f6ea8941
Administrator
09.02.16
|
127
|
]);
|
fbdb1f1c
Yarik
test
|
128
129
|
}
|
eb7e82fb
Administrator
29.02.16
|
130
|
public function actionPortfolioView($company_id , $portfolio_id)
|
1f651082
Yarik
test
|
131
|
{
|
eb7e82fb
Administrator
29.02.16
|
132
133
134
135
136
137
138
139
140
|
$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,
]);
|
1f651082
Yarik
test
|
141
142
|
}
|
f6ea8941
Administrator
09.02.16
|
143
|
public function actionTeam($company_id)
|
fbdb1f1c
Yarik
test
|
144
|
{
|
f6ea8941
Administrator
09.02.16
|
145
146
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
147
148
149
150
151
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
|
815bfc72
Administrator
01.03.16
|
152
|
$query = Team::find()->where(['user_id'=>$company_id]);
|
d36bdac6
Administrator
17.02.16
|
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
|
$countQuery = clone $query;
$pagination = new Pagination(['totalCount' => $countQuery->count(),
'pageSize' => 9,
]);
$team = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
$team = new ArrayDataProvider([
'allModels' => $team,
]);
|
f6ea8941
Administrator
09.02.16
|
169
|
return $this->render('team',[
|
d36bdac6
Administrator
17.02.16
|
170
171
172
|
'company' => $company,
'team' => $team,
'pagination' => $pagination
|
f6ea8941
Administrator
09.02.16
|
173
|
]);
|
fbdb1f1c
Yarik
test
|
174
175
|
}
|
f6ea8941
Administrator
09.02.16
|
176
|
public function actionBlogList($company_id)
|
fbdb1f1c
Yarik
test
|
177
|
{
|
f6ea8941
Administrator
09.02.16
|
178
179
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
$query = Blog::find(['user_id'=>$company_id]);
$countQuery = clone $query;
$pagination = new Pagination(['totalCount' => $countQuery->count(),
'pageSize' => 5,
]);
$article = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
$blog = new ArrayDataProvider([
'allModels' => $article,
]);
|
f6ea8941
Administrator
09.02.16
|
202
|
return $this->render('blog-list',[
|
d36bdac6
Administrator
17.02.16
|
203
204
205
|
'company' => $company,
'blog' => $blog,
'pagination' => $pagination
|
f6ea8941
Administrator
09.02.16
|
206
|
]);
|
fbdb1f1c
Yarik
test
|
207
208
|
}
|
d36bdac6
Administrator
17.02.16
|
209
210
|
public function actionBlogView($company_id, $link)
|
fbdb1f1c
Yarik
test
|
211
|
{
|
f6ea8941
Administrator
09.02.16
|
212
213
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
214
215
216
217
218
219
220
221
222
223
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
$article = Blog::findOne(['link'=>$link,'user_id'=>$company_id]);
$article->view_count ++;
$article->save();
|
f6ea8941
Administrator
09.02.16
|
224
|
return $this->render('blog-view',[
|
d36bdac6
Administrator
17.02.16
|
225
226
227
|
'company' => $company,
'article' =>$article,
|
f6ea8941
Administrator
09.02.16
|
228
|
]);
|
fbdb1f1c
Yarik
test
|
229
230
|
}
|
f6ea8941
Administrator
09.02.16
|
231
|
public function actionReview($company_id)
|
fbdb1f1c
Yarik
test
|
232
|
{
|
f6ea8941
Administrator
09.02.16
|
233
234
235
236
237
|
$company = User::findOne($company_id);
return $this->render('review',[
'company' => $company
]);
|
fbdb1f1c
Yarik
test
|
238
239
|
}
|
f6ea8941
Administrator
09.02.16
|
240
|
public function actionVacancyList($company_id)
|
fbdb1f1c
Yarik
test
|
241
|
{
|
eb7e82fb
Administrator
29.02.16
|
242
|
|
f6ea8941
Administrator
09.02.16
|
243
|
$company = User::findOne($company_id);
|
eb7e82fb
Administrator
29.02.16
|
244
245
246
247
248
249
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
|
f389cee6
Yarik
test
|
250
|
$query = $company->getVacancies();
|
eb7e82fb
Administrator
29.02.16
|
251
252
253
254
255
256
257
258
259
260
261
|
$countQuery = clone $query;
$pagination = new Pagination(['totalCount' => $countQuery->count(),
'pageSize' => 5,
]);
$vacancy = $query->offset($pagination->offset)
->limit($pagination->limit);
|
f389cee6
Yarik
test
|
262
|
$provider = new ActiveDataProvider([
|
eb7e82fb
Administrator
29.02.16
|
263
264
|
'query' => $vacancy,
'pagination' => false,
|
f389cee6
Yarik
test
|
265
266
267
268
269
270
271
|
'sort' => [
'defaultOrder' => [
'date_add' => SORT_DESC,
'name' => SORT_ASC,
]
],
]);
|
f6ea8941
Administrator
09.02.16
|
272
|
|
eb7e82fb
Administrator
29.02.16
|
273
274
|
|
f6ea8941
Administrator
09.02.16
|
275
|
return $this->render('vacancy-list',[
|
f389cee6
Yarik
test
|
276
277
|
'company' => $company,
'provider' => $provider,
|
eb7e82fb
Administrator
29.02.16
|
278
|
'pagination' => $pagination
|
f6ea8941
Administrator
09.02.16
|
279
|
]);
|
eb7e82fb
Administrator
29.02.16
|
280
|
|
fbdb1f1c
Yarik
test
|
281
282
|
}
|
eb7e82fb
Administrator
29.02.16
|
283
|
public function actionVacancyView($company_id, $link)
|
fbdb1f1c
Yarik
test
|
284
|
{
|
f6ea8941
Administrator
09.02.16
|
285
|
$company = User::findOne($company_id);
|
eb7e82fb
Administrator
29.02.16
|
286
|
$vacancy = $company->getVacancies()->where(['link' => $link])->with(['employments'])->one();
|
f6ea8941
Administrator
09.02.16
|
287
288
|
return $this->render('vacancy-view',[
|
f389cee6
Yarik
test
|
289
290
|
'company' => $company,
'vacancy' => $vacancy,
|
f6ea8941
Administrator
09.02.16
|
291
|
]);
|
fbdb1f1c
Yarik
test
|
292
293
|
}
|
d36bdac6
Administrator
17.02.16
|
294
|
|
f6ea8941
Administrator
09.02.16
|
295
|
public function actionGallery($company_id)
|
fbdb1f1c
Yarik
test
|
296
|
{
|
f6ea8941
Administrator
09.02.16
|
297
298
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
299
300
301
302
303
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
|
ac9a2bf6
Administrator
01.03.16
|
304
|
$query = Gallery::find()->where(['user_id'=>$company_id]);
|
d36bdac6
Administrator
17.02.16
|
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
$countQuery = clone $query;
$pagination = new Pagination(['totalCount' => $countQuery->count(),
'pageSize' => 5,
]);
$gallery = $query->offset($pagination->offset)
->limit($pagination->limit)
->all();
$gallery = new ArrayDataProvider([
'allModels' => $gallery,
]);
$videos = Fields::getData($company->id,Gallery::className(),'youtube');
|
fbdb1f1c
Yarik
test
|
322
|
$this->layout = 'gallery-company';
|
d36bdac6
Administrator
17.02.16
|
323
|
|
f6ea8941
Administrator
09.02.16
|
324
|
return $this->render('gallery',[
|
d36bdac6
Administrator
17.02.16
|
325
326
327
328
|
'company' => $company,
'gallery' =>$gallery,
'pagination' => $pagination,
'videos' => $videos
|
f6ea8941
Administrator
09.02.16
|
329
|
]);
|
fbdb1f1c
Yarik
test
|
330
331
|
}
}
|