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
81
82
83
84
85
86
|
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->portfolios,
'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
|
}
|
1f651082
Yarik
test
|
130
131
132
133
134
135
136
|
public function actionPortfolioView($company_id /*, $portfolio_id*/)
{
$company = User::findOne($company_id);
return $this->render('portfolio-view', ['company' => $company]);
}
|
f6ea8941
Administrator
09.02.16
|
137
|
public function actionTeam($company_id)
|
fbdb1f1c
Yarik
test
|
138
|
{
|
f6ea8941
Administrator
09.02.16
|
139
140
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
$query = Team::find(['user_id'=>$company_id]);
$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
|
163
|
return $this->render('team',[
|
d36bdac6
Administrator
17.02.16
|
164
165
166
|
'company' => $company,
'team' => $team,
'pagination' => $pagination
|
f6ea8941
Administrator
09.02.16
|
167
|
]);
|
fbdb1f1c
Yarik
test
|
168
169
|
}
|
f6ea8941
Administrator
09.02.16
|
170
|
public function actionBlogList($company_id)
|
fbdb1f1c
Yarik
test
|
171
|
{
|
f6ea8941
Administrator
09.02.16
|
172
173
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
|
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
|
196
|
return $this->render('blog-list',[
|
d36bdac6
Administrator
17.02.16
|
197
198
199
|
'company' => $company,
'blog' => $blog,
'pagination' => $pagination
|
f6ea8941
Administrator
09.02.16
|
200
|
]);
|
fbdb1f1c
Yarik
test
|
201
202
|
}
|
d36bdac6
Administrator
17.02.16
|
203
204
|
public function actionBlogView($company_id, $link)
|
fbdb1f1c
Yarik
test
|
205
|
{
|
f6ea8941
Administrator
09.02.16
|
206
207
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
208
209
210
211
212
213
214
215
216
217
|
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
|
218
|
return $this->render('blog-view',[
|
d36bdac6
Administrator
17.02.16
|
219
220
221
|
'company' => $company,
'article' =>$article,
|
f6ea8941
Administrator
09.02.16
|
222
|
]);
|
fbdb1f1c
Yarik
test
|
223
224
|
}
|
f6ea8941
Administrator
09.02.16
|
225
|
public function actionReview($company_id)
|
fbdb1f1c
Yarik
test
|
226
|
{
|
f6ea8941
Administrator
09.02.16
|
227
228
229
230
231
|
$company = User::findOne($company_id);
return $this->render('review',[
'company' => $company
]);
|
fbdb1f1c
Yarik
test
|
232
233
|
}
|
f6ea8941
Administrator
09.02.16
|
234
|
public function actionVacancyList($company_id)
|
fbdb1f1c
Yarik
test
|
235
|
{
|
f6ea8941
Administrator
09.02.16
|
236
|
$company = User::findOne($company_id);
|
f389cee6
Yarik
test
|
237
238
239
240
241
242
243
244
245
246
247
248
249
|
$query = $company->getVacancies();
$provider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 2,
],
'sort' => [
'defaultOrder' => [
'date_add' => SORT_DESC,
'name' => SORT_ASC,
]
],
]);
|
f6ea8941
Administrator
09.02.16
|
250
251
|
return $this->render('vacancy-list',[
|
f389cee6
Yarik
test
|
252
253
|
'company' => $company,
'provider' => $provider,
|
f6ea8941
Administrator
09.02.16
|
254
|
]);
|
fbdb1f1c
Yarik
test
|
255
256
|
}
|
f6ea8941
Administrator
09.02.16
|
257
|
public function actionVacancyView($company_id, $vacancy_id)
|
fbdb1f1c
Yarik
test
|
258
|
{
|
f6ea8941
Administrator
09.02.16
|
259
|
$company = User::findOne($company_id);
|
f389cee6
Yarik
test
|
260
|
$vacancy = $company->getVacancies()->where(['vacancy_id' => $vacancy_id])->with(['employments'])->one();
|
f6ea8941
Administrator
09.02.16
|
261
262
|
return $this->render('vacancy-view',[
|
f389cee6
Yarik
test
|
263
264
|
'company' => $company,
'vacancy' => $vacancy,
|
f6ea8941
Administrator
09.02.16
|
265
|
]);
|
fbdb1f1c
Yarik
test
|
266
267
|
}
|
d36bdac6
Administrator
17.02.16
|
268
|
|
f6ea8941
Administrator
09.02.16
|
269
|
public function actionGallery($company_id)
|
fbdb1f1c
Yarik
test
|
270
|
{
|
f6ea8941
Administrator
09.02.16
|
271
272
|
$company = User::findOne($company_id);
|
d36bdac6
Administrator
17.02.16
|
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
|
if(!$company instanceof User){
throw new BadRequestHttpException('Пользователь не найден');
}
$query = Gallery::find(['user_id'=>$company_id]);
$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
|
296
|
$this->layout = 'gallery-company';
|
d36bdac6
Administrator
17.02.16
|
297
|
|
f6ea8941
Administrator
09.02.16
|
298
|
return $this->render('gallery',[
|
d36bdac6
Administrator
17.02.16
|
299
300
301
302
|
'company' => $company,
'gallery' =>$gallery,
'pagination' => $pagination,
'videos' => $videos
|
f6ea8941
Administrator
09.02.16
|
303
|
]);
|
fbdb1f1c
Yarik
test
|
304
305
|
}
}
|