Commit 39a349155dfcd56128a21b854ac439a99fad9e05
1 parent
a22972f9
Commit
Showing
4 changed files
with
175 additions
and
52 deletions
Show diff stats
common/models/TenderSearch.php
frontend/controllers/SearchController.php
... | ... | @@ -90,7 +90,7 @@ |
90 | 90 | $dataProvider->setPagination([ |
91 | 91 | 'pageSize' => 10, |
92 | 92 | ]); |
93 | - $specialization = Specialization::specializationsList(); | |
93 | + $specializations = Specialization::getSorted()->all(); | |
94 | 94 | $currencies = Currency::getCurrencyDropdown(); |
95 | 95 | $payments = Payment::find() |
96 | 96 | ->select([ |
... | ... | @@ -103,7 +103,7 @@ |
103 | 103 | return $this->render('project', [ |
104 | 104 | 'model' => $model, |
105 | 105 | 'dataProvider' => $dataProvider, |
106 | - 'specialization' => $specialization, | |
106 | + 'specializations' => $specializations, | |
107 | 107 | 'currencies' => $currencies, |
108 | 108 | 'payments' => $payments, |
109 | 109 | ]); |
... | ... | @@ -143,7 +143,7 @@ |
143 | 143 | { |
144 | 144 | $searchModel = new SearchVacancyForm(); |
145 | 145 | |
146 | - $specialization = Specialization::specializationsList(); | |
146 | + $specializations = Specialization::getSorted()->all(); | |
147 | 147 | |
148 | 148 | $query = $searchModel->search(Yii::$app->request->queryParams); |
149 | 149 | |
... | ... | @@ -170,7 +170,7 @@ |
170 | 170 | |
171 | 171 | return $this->render('vacancy', [ |
172 | 172 | 'dataProvider' => $dataProvider, |
173 | - 'specialization' => $specialization, | |
173 | + 'specializations' => $specializations, | |
174 | 174 | 'model' => $searchModel, |
175 | 175 | 'pagination' => $pagination, |
176 | 176 | ]); | ... | ... |
frontend/views/search/project.php
... | ... | @@ -3,10 +3,11 @@ |
3 | 3 | * @var View $this |
4 | 4 | * @var TenderSearch $model |
5 | 5 | * @var ActiveDataProvider $dataProvider |
6 | - * @var array $specialization | |
6 | + * @var array $specializations | |
7 | 7 | * @var array $currencies |
8 | 8 | * @var array $payments |
9 | 9 | */ |
10 | + use common\models\Specialization; | |
10 | 11 | use common\models\TenderSearch; |
11 | 12 | use kartik\select2\Select2; |
12 | 13 | use yii\data\ActiveDataProvider; |
... | ... | @@ -35,8 +36,71 @@ |
35 | 36 | ->textInput([ 'class' => 'form-control', |
36 | 37 | 'placeholder' => 'Текст для поиска', |
37 | 38 | ]); |
39 | + ?> | |
40 | + <?php | |
41 | + // New specialization chooser | |
42 | + ?> | |
43 | + <div class="input-blocks-wrapper admin-menu-list"> | |
44 | + <div class="input-blocks" style="width: 100%; margin-bottom: 5px"> | |
45 | + <label>Специализации</label> | |
46 | + <div class="required"></div> | |
47 | + </div> | |
48 | + <div class="new-spec-block style"> | |
49 | + <ul class="content-menu-first"> | |
50 | + <?php foreach($specializations as $specialization): ?> | |
51 | + <li data-img="<?= $specialization->image ?>"> | |
52 | + <span data-menu-bg="<?= $specialization->background ?>" style="background: <?= $specialization->background ?>"></span><a href="#"><?= $specialization->specialization_name ?></a> | |
53 | + <ul> | |
54 | + <?php foreach($specialization->children as $child_first): ?> | |
55 | + | |
56 | + <?php if($child_first instanceof Specialization): ?> | |
57 | + <li> | |
58 | + <a href="#"><?= $child_first->specialization_name ?></a> | |
59 | + <ul> | |
60 | + <?php foreach($child_first->children as $child_second): ?> | |
61 | + <?php if($child_first instanceof Specialization): ?> | |
62 | + <li> | |
63 | + <a href="#" title="<?= $child_second->specialization_name ?>"> | |
64 | + <?= $form->field($model, "specialization[{$child_second->specialization_id}]", [ | |
65 | + 'template' => '{input}{label}{hint}{error}', | |
66 | + ]) | |
67 | + ->label('<span></span>' . $child_second->specialization_name) | |
68 | + ->checkbox([ | |
69 | + 'value' => $child_second->specialization_id, | |
70 | + 'label' => NULL, | |
71 | + 'uncheck' => NULL, | |
72 | + 'class' => 'custom-check', | |
73 | + ], false) ?> | |
74 | + </a> | |
75 | + </li> | |
76 | + <?php endif; ?> | |
77 | + <?php endforeach; ?> | |
78 | + </ul> | |
79 | + </li> | |
80 | + <?php endif; ?> | |
81 | + <?php endforeach; ?> | |
82 | + | |
83 | + </ul> | |
84 | + </li> | |
85 | + <?php endforeach; ?> | |
86 | + </ul> | |
87 | + </div> | |
88 | + <div class="style admn-menu-err"> | |
89 | + <div class="help-block">Необходимо выбрать хотя бы одну «специализацию».</div> | |
90 | + </div> | |
91 | + </div> | |
92 | + | |
93 | + <div class="admin-specialization-selected style"> | |
94 | + <ul></ul> | |
95 | + </div> | |
96 | + <?php | |
97 | + // End of new specialization chooser | |
98 | + ?> | |
99 | + <?php | |
100 | + /* | |
38 | 101 | echo $form->field($model, 'specialization') |
39 | 102 | ->dropDownList($specialization, [ 'prompt' => 'Любая' ]); |
103 | + */ | |
40 | 104 | |
41 | 105 | echo $form->field($model, 'city') |
42 | 106 | ->widget(Select2::classname(), [ | ... | ... |
frontend/views/search/vacancy.php
1 | 1 | <?php |
2 | 2 | |
3 | -use kartik\select2\Select2; | |
4 | -use \yii\helpers\Html; | |
5 | -use yii\web\JsExpression; | |
6 | -use yii\widgets\ActiveForm; | |
7 | -use yii\widgets\LinkPager; | |
8 | -use yii\widgets\ListView; | |
3 | + use common\models\Specialization; | |
4 | + use kartik\select2\Select2; | |
5 | + use \yii\helpers\Html; | |
6 | + use yii\web\JsExpression; | |
7 | + use yii\widgets\ActiveForm; | |
8 | + use yii\widgets\LinkPager; | |
9 | + use yii\widgets\ListView; | |
9 | 10 | |
10 | -/* @var $this yii\web\View */ | |
11 | + /* @var $this yii\web\View */ | |
11 | 12 | |
12 | -$this->title = 'My Yii Application'; | |
13 | + $this->title = 'My Yii Application'; | |
13 | 14 | ?> |
14 | 15 | |
15 | 16 | <div class="section-box content"> |
... | ... | @@ -19,37 +20,99 @@ $this->title = 'My Yii Application'; |
19 | 20 | <div class="performer-vacancy-sidebar-left-wr vacancy-general-sidebar-wr"> |
20 | 21 | <div class="left-search-work"> |
21 | 22 | <?php |
22 | - $form = ActiveForm::begin(['options'=>['class'=>'search-work-form'],'action'=>[''], 'method'=>'get']); | |
23 | + $form = ActiveForm::begin([ | |
24 | + 'options' => [ 'class' => 'search-work-form' ], | |
25 | + 'action' => [ '' ], | |
26 | + 'method' => 'get', | |
27 | + ]); | |
23 | 28 | ?> |
24 | 29 | |
25 | - <?= | |
26 | - $form->field($model, 'city') | |
27 | - ->widget(Select2::classname(), [ | |
28 | - 'options' => [ 'placeholder' => 'Выбор города ...' ], | |
29 | - 'pluginOptions' => [ | |
30 | - 'allowClear' => true, | |
31 | - 'minimumInputLength' => 3, | |
32 | - 'ajax' => [ | |
33 | - 'url' => \yii\helpers\Url::to([ 'site/city' ]), | |
34 | - 'dataType' => 'json', | |
35 | - 'data' => new JsExpression('function(params) { return {q:params.term}; }'), | |
36 | - ], | |
37 | - 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), | |
38 | - 'templateResult' => new JsExpression('function(city) { return city.text; }'), | |
39 | - 'templateSelection' => new JsExpression('function (city) { return city.text; }'), | |
40 | - ], | |
41 | - ]); | |
42 | - ?> | |
43 | - | |
44 | - <?= | |
45 | - $form->field($model, 'specialization') | |
46 | - ->dropDownList($specialization, ['prompt' => 'Любая']); | |
47 | - ?> | |
30 | + <?= $form->field($model, 'city') | |
31 | + ->widget(Select2::classname(), [ | |
32 | + 'options' => [ 'placeholder' => 'Выбор города ...' ], | |
33 | + 'pluginOptions' => [ | |
34 | + 'allowClear' => true, | |
35 | + 'minimumInputLength' => 3, | |
36 | + 'ajax' => [ | |
37 | + 'url' => \yii\helpers\Url::to([ 'site/city' ]), | |
38 | + 'dataType' => 'json', | |
39 | + 'data' => new JsExpression('function(params) { return {q:params.term}; }'), | |
40 | + ], | |
41 | + 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), | |
42 | + 'templateResult' => new JsExpression('function(city) { return city.text; }'), | |
43 | + 'templateSelection' => new JsExpression('function (city) { return city.text; }'), | |
44 | + ], | |
45 | + ]); ?> | |
46 | + <?php | |
47 | + // New specialization chooser | |
48 | + ?> | |
49 | + <div class="input-blocks-wrapper admin-menu-list"> | |
50 | + <div class="input-blocks" style="width: 100%; margin-bottom: 5px"> | |
51 | + <label>Специализации</label> | |
52 | + <div class="required"></div> | |
53 | + </div> | |
54 | + <div class="new-spec-block style"> | |
55 | + <ul class="content-menu-first"> | |
56 | + <?php foreach($specializations as $specialization): ?> | |
57 | + <li data-img="<?= $specialization->image ?>"> | |
58 | + <span data-menu-bg="<?= $specialization->background ?>" style="background: <?= $specialization->background ?>"></span><a href="#"><?= $specialization->specialization_name ?></a> | |
59 | + <ul> | |
60 | + <?php foreach($specialization->children as $child_first): ?> | |
48 | 61 | |
62 | + <?php if($child_first instanceof Specialization): ?> | |
63 | + <li> | |
64 | + <a href="#"><?= $child_first->specialization_name ?></a> | |
65 | + <ul> | |
66 | + <?php foreach($child_first->children as $child_second): ?> | |
67 | + <?php if($child_first instanceof Specialization): ?> | |
68 | + <li> | |
69 | + <a href="#" title="<?= $child_second->specialization_name ?>"> | |
70 | + <?= $form->field($model, "specialization[{$child_second->specialization_id}]", [ | |
71 | + 'template' => '{input}{label}{hint}{error}', | |
72 | + ]) | |
73 | + ->label('<span></span>' . $child_second->specialization_name) | |
74 | + ->checkbox([ | |
75 | + 'value' => $child_second->specialization_id, | |
76 | + 'label' => NULL, | |
77 | + 'uncheck' => NULL, | |
78 | + 'class' => 'custom-check', | |
79 | + ], false) ?> | |
80 | + </a> | |
81 | + </li> | |
82 | + <?php endif; ?> | |
83 | + <?php endforeach; ?> | |
84 | + </ul> | |
85 | + </li> | |
86 | + <?php endif; ?> | |
87 | + <?php endforeach; ?> | |
49 | 88 | |
50 | - <div class="blocks-check-list-submit"> | |
51 | - <?= Html::submitInput('Найти') ?> | |
89 | + </ul> | |
90 | + </li> | |
91 | + <?php endforeach; ?> | |
92 | + </ul> | |
93 | + </div> | |
94 | + <div class="style admn-menu-err"> | |
95 | + <div class="help-block">Необходимо выбрать хотя бы одну «специализацию».</div> | |
52 | 96 | </div> |
97 | + </div> | |
98 | + | |
99 | + <div class="admin-specialization-selected style"> | |
100 | + <ul></ul> | |
101 | + </div> | |
102 | + <?php | |
103 | + // End of new specialization chooser | |
104 | + ?> | |
105 | + <?php | |
106 | + /* | |
107 | + $form->field($model, 'specialization') | |
108 | + ->dropDownList($specialization, ['prompt' => 'Любая']); | |
109 | + */ | |
110 | + ?> | |
111 | + | |
112 | + | |
113 | + <div class="blocks-check-list-submit"> | |
114 | + <?= Html::submitInput('Найти') ?> | |
115 | + </div> | |
53 | 116 | <?php |
54 | 117 | $form->end(); |
55 | 118 | ?> |
... | ... | @@ -59,20 +122,16 @@ $this->title = 'My Yii Application'; |
59 | 122 | <div class="performer-vacancy-vacant-title style">Вакансии</div> |
60 | 123 | <div class="performer-vacancy-vacant-title-reclam-wr style"> |
61 | 124 | |
62 | - <?= | |
63 | - ListView::widget([ | |
64 | - 'dataProvider' => $dataProvider, | |
65 | - 'itemView' => '_vacancy_list_view', | |
66 | - 'summary' => false, | |
67 | - ]); | |
68 | - ?> | |
125 | + <?= ListView::widget([ | |
126 | + 'dataProvider' => $dataProvider, | |
127 | + 'itemView' => '_vacancy_list_view', | |
128 | + 'summary' => false, | |
129 | + ]); ?> | |
69 | 130 | </div> |
70 | 131 | <div class="navi-buttons-wr style"> |
71 | - <?= | |
72 | - LinkPager::widget([ | |
73 | - 'pagination' => $pagination | |
74 | - ]) | |
75 | - ?> | |
132 | + <?= LinkPager::widget([ | |
133 | + 'pagination' => $pagination, | |
134 | + ]) ?> | |
76 | 135 | </div> |
77 | 136 | </div> |
78 | 137 | </div> | ... | ... |