Blame view

frontend/controllers/SearchController.php 4.98 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
  
cda2c1c9   Administrator   add yii jquery
112
              $searchModel = new SearchPerformerForm();
eb7e82fb   Administrator   29.02.16
113
  
cda2c1c9   Administrator   add yii jquery
114
115
116
117
118
119
              return $this->render('performer',[
                  'dataProvider' => $searchModel->search(Yii::$app->request->queryParams),
                  'specialization' => $specialization,
                  'model'=> $searchModel
              ]);
          }
35b03e57   Administrator   add yii jquery
120
  
cda2c1c9   Administrator   add yii jquery
121
122
          public function actionVacancy()
          {
cda2c1c9   Administrator   add yii jquery
123
              $searchModel = new SearchVacancyForm();
35b03e57   Administrator   add yii jquery
124
  
cda2c1c9   Administrator   add yii jquery
125
              $specialization = Specialization::specializationsList();
eb7e82fb   Administrator   29.02.16
126
  
cda2c1c9   Administrator   add yii jquery
127
              $query = $searchModel->search(Yii::$app->request->queryParams);
eb7e82fb   Administrator   29.02.16
128
  
cda2c1c9   Administrator   add yii jquery
129
              $countQuery = clone $query;
eb7e82fb   Administrator   29.02.16
130
  
2fd40ee7   Yarik   test
131
132
133
134
              $pagination = new Pagination([
                  'totalCount' => $countQuery->count(),
                  'pageSize'   => 15,
              ]);
eb7e82fb   Administrator   29.02.16
135
  
2fd40ee7   Yarik   test
136
              $vacancy = $query->offset($pagination->offset)
cda2c1c9   Administrator   add yii jquery
137
                  ->limit($pagination->limit);
eb7e82fb   Administrator   29.02.16
138
  
cda2c1c9   Administrator   add yii jquery
139
              $dataProvider = new ActiveDataProvider([
2fd40ee7   Yarik   test
140
141
142
143
144
145
146
147
148
                  'query'      => $vacancy,
                  'pagination' => false,
                  'sort'       => [
                      'defaultOrder' => [
                          'date_add' => SORT_DESC,
                          'name'     => SORT_ASC,
                      ],
                  ],
              ]);
eb7e82fb   Administrator   29.02.16
149
  
cda2c1c9   Administrator   add yii jquery
150
151
152
153
154
              return $this->render('vacancy',[
                  'dataProvider' => $dataProvider,
                  'specialization' => $specialization,
                  'model'=> $searchModel,
                  'pagination'=> $pagination
2fd40ee7   Yarik   test
155
              ]);
cda2c1c9   Administrator   add yii jquery
156
  
2fd40ee7   Yarik   test
157
          }
eb7e82fb   Administrator   29.02.16
158
  
7fc05ac5   Yarik   test
159
      }