Blame view

frontend/controllers/SearchController.php 5.35 KB
fbdb1f1c   Yarik   test
1
  <?php
35b03e57   Administrator   add yii jquery
2
3
  namespace frontend\controllers;
  
ad6304d6   Yarik   test
4
  use common\models\Currency;
35b03e57   Administrator   add yii jquery
5
  use common\models\CustomerSearch;
ad6304d6   Yarik   test
6
  use common\models\Payment;
35b03e57   Administrator   add yii jquery
7
  use common\models\Specialization;
ad6304d6   Yarik   test
8
  use common\models\TenderSearch;
35b03e57   Administrator   add yii jquery
9
  use frontend\models\SearchPerformerForm;
cda2c1c9   Administrator   add yii jquery
10
  use frontend\models\SearchVacancyForm;
35b03e57   Administrator   add yii jquery
11
  use Yii;
35b03e57   Administrator   add yii jquery
12
13
  use frontend\models\Options;
  use frontend\models\OptionValues;
93a7a3c1   Yarik   test
14
  use yii\base\InvalidParamException;
35b03e57   Administrator   add yii jquery
15
16
  use yii\data\ActiveDataProvider;
  use yii\data\Pagination;
35b03e57   Administrator   add yii jquery
17
  use yii\web\Controller;
35b03e57   Administrator   add yii jquery
18
  use frontend\models\OptionsToValues;
35b03e57   Administrator   add yii jquery
19
20
  use common\models\Page; 
  use frontend\models\Option;
fbdb1f1c   Yarik   test
21
22
  
      /**
2fd40ee7   Yarik   test
23
       * Site controller
fbdb1f1c   Yarik   test
24
       */
2fd40ee7   Yarik   test
25
      class SearchController extends Controller
fbdb1f1c   Yarik   test
26
      {
6dd6c4bf   Administrator   17.02.16
27
  
2fd40ee7   Yarik   test
28
          public $defaultAction = 'common';
fbdb1f1c   Yarik   test
29
  
2fd40ee7   Yarik   test
30
31
32
33
34
35
36
37
          /**
           * @inheritdoc
           */
          public function actions()
          {
              return [
                  'error'   => [
                      'class' => 'yii\web\ErrorAction',
f94a00a6   Yarik   test
38
                  ],
2fd40ee7   Yarik   test
39
40
41
42
43
44
45
                  'captcha' => [
                      'class'           => 'yii\captcha\CaptchaAction',
                      'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : NULL,
                  ],
              ];
          }
  
93a7a3c1   Yarik   test
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
          public function actionCommon($action)
          {
              $query = \Yii::$app->request->get('query');
              $actions = [
                  1 => 'project',
                  2 => 'performer',
                  3 => 'customer'
              ];
              if(!array_key_exists($action, $actions)) {
                  return $this->redirect(['/', 'query' => $query]);
              } else {
                  switch($action) {
                      case 1:
                          return $this->redirect(['search/'.$actions[$action], 'TenderSearch[info]' => $query]);
                      break;
                      case 2:
                          return $this->redirect(['search/'.$actions[$action], 'SearchPerformerForm[search]' => $query]);
                          break;
                      case 3:
                          return $this->redirect(['search/'.$actions[$action], 'CustomerSearch[info]' => $query]);
                          break;
                  }
              }
              return false;
          }
  
2fd40ee7   Yarik   test
72
73
          public function actionProject()
          {
ad6304d6   Yarik   test
74
75
              $model = new TenderSearch();
              $dataProvider = $model->search(Yii::$app->request->queryParams);
2f324895   Yarik   test
76
              $dataProvider->query->andWhere(['hidden' => 0]);
ad6304d6   Yarik   test
77
78
              $dataProvider->setPagination([
                  'pageSize' => 10,
2fd40ee7   Yarik   test
79
              ]);
ad6304d6   Yarik   test
80
81
82
              $specialization = Specialization::specializationsList();
              $currencies = Currency::getCurrencyDropdown();
              $payments = Payment::find()->select(['name', 'payment_id'])->asArray()->indexBy('payment_id')->column();
2fd40ee7   Yarik   test
83
              return $this->render('project', [
ad6304d6   Yarik   test
84
85
86
87
88
                  'model' => $model,
                  'dataProvider' => $dataProvider,
                  'specialization' => $specialization,
                  'currencies' => $currencies,
                  'payments' => $payments,
2fd40ee7   Yarik   test
89
90
91
92
93
94
95
96
97
98
              ]);
          }
  
          public function actionCustomer()
          {
              $model = new CustomerSearch();
              $dataProvider = $model->search(Yii::$app->request->queryParams);
              $dataProvider->setPagination([
                  'pageSize' => 5,
              ]);
2fd40ee7   Yarik   test
99
              $model->load(Yii::$app->request->queryParams);
2fd40ee7   Yarik   test
100
101
102
              return $this->render('customer', [
                  'model'        => $model,
                  'dataProvider' => $dataProvider,
2fd40ee7   Yarik   test
103
104
105
              ]);
          }
  
2fd40ee7   Yarik   test
106
  
2fd40ee7   Yarik   test
107
  
cda2c1c9   Administrator   add yii jquery
108
109
110
          public function actionPerformer()
          {
              $specialization = Specialization::specializationsList();
dafc9daf   Administrator   add yii jquery
111
  
a2cb610b   Yarik   Commit
112
113
114
115
116
117
              $specializations = Specialization::find()
                                               ->with('children')
                                               ->where([ 'specialization_pid' => 0 ])
                                               ->orderBy('specialization_id')
                                               ->all();
  
cda2c1c9   Administrator   add yii jquery
118
              $searchModel = new SearchPerformerForm();
eb7e82fb   Administrator   29.02.16
119
  
cda2c1c9   Administrator   add yii jquery
120
121
122
              return $this->render('performer',[
                  'dataProvider' => $searchModel->search(Yii::$app->request->queryParams),
                  'specialization' => $specialization,
a2cb610b   Yarik   Commit
123
                  'specializations' => $specializations,
cda2c1c9   Administrator   add yii jquery
124
125
126
                  'model'=> $searchModel
              ]);
          }
35b03e57   Administrator   add yii jquery
127
  
cda2c1c9   Administrator   add yii jquery
128
129
          public function actionVacancy()
          {
cda2c1c9   Administrator   add yii jquery
130
              $searchModel = new SearchVacancyForm();
35b03e57   Administrator   add yii jquery
131
  
cda2c1c9   Administrator   add yii jquery
132
              $specialization = Specialization::specializationsList();
eb7e82fb   Administrator   29.02.16
133
  
cda2c1c9   Administrator   add yii jquery
134
              $query = $searchModel->search(Yii::$app->request->queryParams);
eb7e82fb   Administrator   29.02.16
135
  
cda2c1c9   Administrator   add yii jquery
136
              $countQuery = clone $query;
eb7e82fb   Administrator   29.02.16
137
  
2fd40ee7   Yarik   test
138
139
140
141
              $pagination = new Pagination([
                  'totalCount' => $countQuery->count(),
                  'pageSize'   => 15,
              ]);
eb7e82fb   Administrator   29.02.16
142
  
2fd40ee7   Yarik   test
143
              $vacancy = $query->offset($pagination->offset)
cda2c1c9   Administrator   add yii jquery
144
                  ->limit($pagination->limit);
eb7e82fb   Administrator   29.02.16
145
  
cda2c1c9   Administrator   add yii jquery
146
              $dataProvider = new ActiveDataProvider([
2fd40ee7   Yarik   test
147
148
149
150
151
152
153
154
155
                  'query'      => $vacancy,
                  'pagination' => false,
                  'sort'       => [
                      'defaultOrder' => [
                          'date_add' => SORT_DESC,
                          'name'     => SORT_ASC,
                      ],
                  ],
              ]);
eb7e82fb   Administrator   29.02.16
156
  
cda2c1c9   Administrator   add yii jquery
157
158
159
160
161
              return $this->render('vacancy',[
                  'dataProvider' => $dataProvider,
                  'specialization' => $specialization,
                  'model'=> $searchModel,
                  'pagination'=> $pagination
2fd40ee7   Yarik   test
162
              ]);
cda2c1c9   Administrator   add yii jquery
163
  
2fd40ee7   Yarik   test
164
          }
eb7e82fb   Administrator   29.02.16
165
  
7fc05ac5   Yarik   test
166
      }