Commit ad6304d6d4477d80e00bc9ba96763d8b321d6c3a
1 parent
cda2c1c9
test
Showing
4 changed files
with
464 additions
and
164 deletions
Show diff stats
common/models/Project.php
1 | +<?php | ||
2 | + | ||
3 | + namespace common\models; | ||
4 | + | ||
5 | + use Yii; | ||
6 | + use yii\base\Model; | ||
7 | + use yii\data\ActiveDataProvider; | ||
8 | + | ||
9 | + /** | ||
10 | + * TenderSearch represents the model behind the search form about `common\models\UserInfo`. | ||
11 | + */ | ||
12 | + class TenderSearch extends Project | ||
13 | + { | ||
14 | + | ||
15 | + public $specialization; | ||
16 | + | ||
17 | + public $city; | ||
18 | + | ||
19 | + public $budget_from; | ||
20 | + | ||
21 | + public $budget_to; | ||
22 | + | ||
23 | + public $budget_currency; | ||
24 | + | ||
25 | + public $contractual; | ||
26 | + | ||
27 | + public $payment; | ||
28 | + | ||
29 | + /** | ||
30 | + * @inheritdoc | ||
31 | + */ | ||
32 | + public function rules() | ||
33 | + { | ||
34 | + return [ | ||
35 | + [ | ||
36 | + [ | ||
37 | + 'specialization', | ||
38 | + 'budget_currency', | ||
39 | + 'contractual', | ||
40 | + ], | ||
41 | + 'integer', | ||
42 | + ], | ||
43 | + [ | ||
44 | + [ | ||
45 | + 'city', | ||
46 | + 'payment', | ||
47 | + ], | ||
48 | + 'safe', | ||
49 | + ], | ||
50 | + [ | ||
51 | + [ | ||
52 | + 'budget_from', | ||
53 | + 'budget_to', | ||
54 | + ], | ||
55 | + 'number', | ||
56 | + 'min' => 0, | ||
57 | + ], | ||
58 | + [ | ||
59 | + [ | ||
60 | + 'payment', | ||
61 | + ], | ||
62 | + 'default', | ||
63 | + 'value' => Payment::find() | ||
64 | + ->asArray() | ||
65 | + ->column(), | ||
66 | + ], | ||
67 | + [ | ||
68 | + [ | ||
69 | + 'budget_currency', | ||
70 | + ], | ||
71 | + 'default', | ||
72 | + 'value' => 3, | ||
73 | + ], | ||
74 | + ]; | ||
75 | + } | ||
76 | + | ||
77 | + /** | ||
78 | + * @inheritdoc | ||
79 | + */ | ||
80 | + public function attributeLabels() | ||
81 | + { | ||
82 | + return [ | ||
83 | + 'specialization' => Yii::t('app', 'Специализация'), | ||
84 | + 'budget_currency' => Yii::t('app', 'Валюта'), | ||
85 | + 'contractual' => Yii::t('app', 'Договорной'), | ||
86 | + 'city' => Yii::t('app', 'Город'), | ||
87 | + 'payment' => Yii::t('app', 'Способ оплаты'), | ||
88 | + 'budget_from' => Yii::t('app', 'от'), | ||
89 | + 'budget_to' => Yii::t('app', 'до'), | ||
90 | + ]; | ||
91 | + } | ||
92 | + | ||
93 | + /** | ||
94 | + * @inheritdoc | ||
95 | + */ | ||
96 | + public function scenarios() | ||
97 | + { | ||
98 | + // bypass scenarios() implementation in the parent class | ||
99 | + return Model::scenarios(); | ||
100 | + } | ||
101 | + | ||
102 | + /** | ||
103 | + * Creates data provider instance with search query applied | ||
104 | + * | ||
105 | + * @param array $params | ||
106 | + * | ||
107 | + * @return ActiveDataProvider | ||
108 | + */ | ||
109 | + public function search($params) | ||
110 | + { | ||
111 | + $query = Project::find() | ||
112 | + ->joinWith('projectSpecializations') | ||
113 | + ->joinWith('projectPayments'); | ||
114 | + | ||
115 | + $dataProvider = new ActiveDataProvider([ | ||
116 | + 'query' => $query, | ||
117 | + ]); | ||
118 | + | ||
119 | + /*$dataProvider->setSort([ | ||
120 | + 'defaultOrder' => [ | ||
121 | + 'name' => SORT_ASC, | ||
122 | + ], | ||
123 | + 'attributes' => [ | ||
124 | + 'name' => [ | ||
125 | + 'asc' => [ | ||
126 | + 'company_info.name' => SORT_ASC, | ||
127 | + 'firstname' => SORT_ASC, | ||
128 | + 'lastname' => SORT_ASC, | ||
129 | + ], | ||
130 | + 'desc' => [ | ||
131 | + 'company_info.name' => SORT_DESC, | ||
132 | + 'firstname' => SORT_DESC, | ||
133 | + 'lastname' => SORT_DESC, | ||
134 | + ], | ||
135 | + 'default' => SORT_ASC, | ||
136 | + 'label' => 'Название', | ||
137 | + ], | ||
138 | + 'staff' => [ | ||
139 | + 'asc' => [ | ||
140 | + 'company_info.staff' => SORT_ASC, | ||
141 | + ], | ||
142 | + 'desc' => [ | ||
143 | + 'company_info.staff' => SORT_DESC, | ||
144 | + ], | ||
145 | + 'default' => SORT_DESC, | ||
146 | + 'label' => 'Количество сотрудников', | ||
147 | + ], | ||
148 | + 'visit' => [ | ||
149 | + 'asc' => [ | ||
150 | + 'user_info.date_visit' => SORT_ASC, | ||
151 | + ], | ||
152 | + 'desc' => [ | ||
153 | + 'user_info.date_visit' => SORT_DESC, | ||
154 | + ], | ||
155 | + 'default' => SORT_DESC, | ||
156 | + 'label' => 'Последний визит', | ||
157 | + ], | ||
158 | + 'city' => [ | ||
159 | + 'asc' => [ | ||
160 | + 'user_info.city' => SORT_ASC, | ||
161 | + ], | ||
162 | + 'desc' => [ | ||
163 | + 'user_info.city' => SORT_DESC, | ||
164 | + ], | ||
165 | + 'default' => SORT_ASC, | ||
166 | + 'label' => 'Город', | ||
167 | + ], | ||
168 | + ], | ||
169 | + ]);*/ | ||
170 | + | ||
171 | + $this->load($params); | ||
172 | + | ||
173 | + if(!$this->validate()) { | ||
174 | + // uncomment the following line if you do not want to return any records when validation fails | ||
175 | + // $query->where('0=1'); | ||
176 | + return $dataProvider; | ||
177 | + } | ||
178 | + | ||
179 | + $query->distinct(true); | ||
180 | + | ||
181 | + $query->andWhere([ | ||
182 | + '>=', | ||
183 | + 'date_end', | ||
184 | + date('Y-m-d'), | ||
185 | + ]); | ||
186 | + | ||
187 | + $query->andFilterWhere([ | ||
188 | + 'project_specialization.specialization_id' => $this->specialization, | ||
189 | + 'project_payment.payment_id' => $this->payment, | ||
190 | + 'city' => $this->city, | ||
191 | + ]) | ||
192 | + ->andWhere([ | ||
193 | + 'project_payment.payment_id' => $this->payment, | ||
194 | + ]); | ||
195 | + | ||
196 | + if(!empty( $this->contractual )) { | ||
197 | + $query->andWhere([ | ||
198 | + 'contractual' => $this->contractual, | ||
199 | + ]); | ||
200 | + } else { | ||
201 | + $currencies = Currency::find() | ||
202 | + ->select([ | ||
203 | + 'rate', | ||
204 | + 'currency_id', | ||
205 | + ]) | ||
206 | + ->asArray() | ||
207 | + ->indexBy('currency_id') | ||
208 | + ->column(); | ||
209 | + | ||
210 | + if(!empty($this->budget_from) && !empty($this->budget_to)) { | ||
211 | + $query->andFilterWhere([ | ||
212 | + 'between', | ||
213 | + 'total_budget', | ||
214 | + $this->budget_from * $currencies[ $this->budget_currency ], | ||
215 | + $this->budget_to * $currencies[ $this->budget_currency ], | ||
216 | + ]); | ||
217 | + } elseif(!empty($this->budget_from)) { | ||
218 | + $query->andFilterWhere([ | ||
219 | + '>=', | ||
220 | + 'total_budget', | ||
221 | + $this->budget_from * $currencies[ $this->budget_currency ], | ||
222 | + ]); | ||
223 | + } elseif(!empty($this->budget_to)) { | ||
224 | + $query->andFilterWhere([ | ||
225 | + '<=', | ||
226 | + 'total_budget', | ||
227 | + $this->budget_to * $currencies[ $this->budget_currency ], | ||
228 | + ]); | ||
229 | + } | ||
230 | + | ||
231 | + } | ||
232 | + | ||
233 | + return $dataProvider; | ||
234 | + } | ||
235 | + } |
frontend/controllers/SearchController.php
1 | <?php | 1 | <?php |
2 | namespace frontend\controllers; | 2 | namespace frontend\controllers; |
3 | 3 | ||
4 | +use common\models\Currency; | ||
4 | use common\models\CustomerSearch; | 5 | use common\models\CustomerSearch; |
6 | +use common\models\Payment; | ||
5 | use common\models\Project; | 7 | use common\models\Project; |
6 | use common\models\Specialization; | 8 | use common\models\Specialization; |
9 | +use common\models\TenderSearch; | ||
7 | use common\models\UserInfo; | 10 | use common\models\UserInfo; |
8 | use common\models\Vacancy; | 11 | use common\models\Vacancy; |
9 | use frontend\models\SearchPerformerForm; | 12 | use frontend\models\SearchPerformerForm; |
@@ -58,14 +61,20 @@ use common\models\Social; | @@ -58,14 +61,20 @@ use common\models\Social; | ||
58 | 61 | ||
59 | public function actionProject() | 62 | public function actionProject() |
60 | { | 63 | { |
61 | - $projects = new ActiveDataProvider([ | ||
62 | - 'query' => Project::find(), | ||
63 | - 'pagination' => [ | ||
64 | - 'pageSize' => 9, | ||
65 | - ], | 64 | + $model = new TenderSearch(); |
65 | + $dataProvider = $model->search(Yii::$app->request->queryParams); | ||
66 | + $dataProvider->setPagination([ | ||
67 | + 'pageSize' => 10, | ||
66 | ]); | 68 | ]); |
69 | + $specialization = Specialization::specializationsList(); | ||
70 | + $currencies = Currency::getCurrencyDropdown(); | ||
71 | + $payments = Payment::find()->select(['name', 'payment_id'])->asArray()->indexBy('payment_id')->column(); | ||
67 | return $this->render('project', [ | 72 | return $this->render('project', [ |
68 | - 'projects' => $projects, | 73 | + 'model' => $model, |
74 | + 'dataProvider' => $dataProvider, | ||
75 | + 'specialization' => $specialization, | ||
76 | + 'currencies' => $currencies, | ||
77 | + 'payments' => $payments, | ||
69 | ]); | 78 | ]); |
70 | } | 79 | } |
71 | 80 |
frontend/views/search/project.php
1 | <?php | 1 | <?php |
2 | + /** | ||
3 | + * @var View $this | ||
4 | + * @var TenderSearch $model | ||
5 | + * @var ActiveDataProvider $dataProvider | ||
6 | + * @var array $specialization | ||
7 | + * @var array $currencies | ||
8 | + * @var array $payments | ||
9 | + */ | ||
10 | + use common\models\TenderSearch; | ||
11 | + use kartik\select2\Select2; | ||
12 | + use yii\data\ActiveDataProvider; | ||
13 | + use \yii\helpers\Html; | ||
14 | + use yii\web\JsExpression; | ||
15 | + use yii\web\View; | ||
16 | + use yii\widgets\ActiveForm; | ||
17 | + use yii\widgets\ListView; | ||
2 | 18 | ||
3 | -use \yii\helpers\Html; | ||
4 | -use yii\widgets\ListView; | ||
5 | - | ||
6 | -/* @var $this yii\web\View */ | ||
7 | -/* @var $projects yii\data\ActiveDataProvider */ | ||
8 | - | ||
9 | -$this->title = 'My Yii Application'; | 19 | + $this->title = 'My Yii Application'; |
10 | ?> | 20 | ?> |
11 | 21 | ||
12 | <div class="section-box content"> | 22 | <div class="section-box content"> |
@@ -14,6 +24,82 @@ $this->title = 'My Yii Application'; | @@ -14,6 +24,82 @@ $this->title = 'My Yii Application'; | ||
14 | <div class="box-wr"> | 24 | <div class="box-wr"> |
15 | <div class="box-all"> | 25 | <div class="box-all"> |
16 | <div class="left-search-work"> | 26 | <div class="left-search-work"> |
27 | + <?php | ||
28 | + $form = ActiveForm::begin([ | ||
29 | + 'method' => 'get', | ||
30 | + 'options' => [ 'class' => 'search-work-form' ], | ||
31 | + 'action' => [ '' ], | ||
32 | + ]); | ||
33 | + echo $form->field($model, 'specialization') | ||
34 | + ->dropDownList($specialization, [ 'prompt' => 'Любая' ]); | ||
35 | + | ||
36 | + echo $form->field($model, 'city') | ||
37 | + ->widget(Select2::classname(), [ | ||
38 | + 'options' => [ 'placeholder' => 'Выбор города ...' ], | ||
39 | + 'pluginOptions' => [ | ||
40 | + 'allowClear' => true, | ||
41 | + 'minimumInputLength' => 3, | ||
42 | + 'ajax' => [ | ||
43 | + 'url' => \yii\helpers\Url::to([ 'site/city' ]), | ||
44 | + 'dataType' => 'json', | ||
45 | + 'data' => new JsExpression('function(params) { return {q:params.term}; }'), | ||
46 | + ], | ||
47 | + 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'), | ||
48 | + 'templateResult' => new JsExpression('function(city) { return city.text; }'), | ||
49 | + 'templateSelection' => new JsExpression('function (city) { return city.text; }'), | ||
50 | + ], | ||
51 | + ]); | ||
52 | + | ||
53 | + ?> | ||
54 | + <div class="blocks-check-list-wrapp"> | ||
55 | + <div class="blocks-check-title">Бюджет</div> | ||
56 | + <div class="form-price-wr"> | ||
57 | + <?= $form->field($model, 'budget_from', [ | ||
58 | + 'template' => "{input}\n{error}", | ||
59 | + 'options' => [ 'tag' => 'span' ], | ||
60 | + ]) | ||
61 | + ->textInput([ 'placeholder' => $model->getAttributeLabel('budget_from') ]) ?> | ||
62 | + <?= $form->field($model, 'budget_to', [ | ||
63 | + 'template' => "{input}\n{error}", | ||
64 | + 'options' => [ 'tag' => 'span' ], | ||
65 | + ]) | ||
66 | + ->textInput([ 'placeholder' => $model->getAttributeLabel('budget_to') ]) ?> | ||
67 | + <?= $form->field($model, 'budget_currency', [ | ||
68 | + 'template' => "{input}\n{error}", | ||
69 | + 'options' => [ 'class' => 'blocks-check-list-wrapp check-valuta' ], | ||
70 | + ]) | ||
71 | + ->dropDownList($currencies) ?> | ||
72 | + </div> | ||
73 | + <?= $form->field($model, 'contractual', [ 'template' => "{input}\n{error}", 'options' => ['class' => ''] ]) | ||
74 | + ->checkboxList([1 => $model->getAttributeLabel('contractual')], [ | ||
75 | + 'item' => function($index, $label, $name, $checked, $value) { | ||
76 | + $return = '<div class="blocks-check-list" style="margin-bottom: 3px">'; | ||
77 | + $return .= '<input type="checkbox" '.($checked ? "checked" : "" ).' name="' . $name . '" class="check-search" value="' . $value . '" id="theme-'.$index.'">'; | ||
78 | + $return .= '<label for="theme-'.$index.'"><span></span>'.$label.'</label>'; | ||
79 | + $return .= '</div>'; | ||
80 | + return $return; | ||
81 | + } | ||
82 | + ]); ?> | ||
83 | + <?= $form->field($model, 'payment', [ 'template' => "{input}\n{error}" ]) | ||
84 | + ->checkboxList($payments, [ | ||
85 | + 'item' => function($index, $label, $name, $checked, $value) { | ||
86 | + $return = '<div class="blocks-check-list">'; | ||
87 | + $return .= '<input type="checkbox" '.($checked ? "checked" : "" ).' name="' . $name . '" class="check-search" value="' . $value . '" id="theme-'.$index.'">'; | ||
88 | + $return .= '<label for="theme-'.$index.'"><span></span>'.$label.'</label>'; | ||
89 | + $return .= '</div>'; | ||
90 | + return $return; | ||
91 | + } | ||
92 | + ]); ?> | ||
93 | + </div> | ||
94 | + <div class="blocks-check-list-submit"> | ||
95 | + <?php | ||
96 | + echo Html::submitInput('Найти'); | ||
97 | + ?> | ||
98 | + </div> | ||
99 | + <?php | ||
100 | + $form->end(); | ||
101 | + /* | ||
102 | + ?> | ||
17 | <form action="" class="search-work-form"> | 103 | <form action="" class="search-work-form"> |
18 | 104 | ||
19 | <div class="blocks-check-list-wrapp"> | 105 | <div class="blocks-check-list-wrapp"> |
@@ -47,7 +133,7 @@ $this->title = 'My Yii Application'; | @@ -47,7 +133,7 @@ $this->title = 'My Yii Application'; | ||
47 | <div class="blocks-check-title">Регион</div> | 133 | <div class="blocks-check-title">Регион</div> |
48 | <select> | 134 | <select> |
49 | <option selected value="">Все страны</option> | 135 | <option selected value="">Все страны</option> |
50 | - <option style="color: #000; font-weight: bold !important;" value="">Украина</option> | 136 | + <option style="color: #000; font-weight: bold !important;" value="">Украина</option> |
51 | <option value="">Россия</option> | 137 | <option value="">Россия</option> |
52 | <option value="">Белорусь</option> | 138 | <option value="">Белорусь</option> |
53 | </select> | 139 | </select> |
@@ -98,17 +184,16 @@ $this->title = 'My Yii Application'; | @@ -98,17 +184,16 @@ $this->title = 'My Yii Application'; | ||
98 | <input type="submit" value="Найти"/> | 184 | <input type="submit" value="Найти"/> |
99 | </div> | 185 | </div> |
100 | </form> | 186 | </form> |
187 | + */?> | ||
101 | </div> | 188 | </div> |
102 | <div class="right-search-work"> | 189 | <div class="right-search-work"> |
103 | - <div class="search-worker-title style">Сейчас <?= $projects->totalCount ?> предложений</div> | 190 | + <div class="search-worker-title style">Сейчас <?= $dataProvider->totalCount ?> предложений</div> |
104 | <div class="search-profile-blocks-wr style"> | 191 | <div class="search-profile-blocks-wr style"> |
105 | - <?= | ||
106 | - ListView::widget( [ | ||
107 | - 'dataProvider' => $projects, | ||
108 | - 'itemView'=>'_projects_list_view', | ||
109 | - 'layout' => "{items}\n<div class='navi-buttons-wr style navi-buttons-yet-wr'>{pager}</div>" | ||
110 | - ] ); | ||
111 | - ?> | 192 | + <?= ListView::widget([ |
193 | + 'dataProvider' => $dataProvider, | ||
194 | + 'itemView' => '_projects_list_view', | ||
195 | + 'layout' => "{items}\n<div class='navi-buttons-wr style navi-buttons-yet-wr'>{pager}</div>", | ||
196 | + ]); ?> | ||
112 | </div> | 197 | </div> |
113 | 198 | ||
114 | </div> | 199 | </div> |
@@ -122,191 +207,164 @@ $this->title = 'My Yii Application'; | @@ -122,191 +207,164 @@ $this->title = 'My Yii Application'; | ||
122 | <div class="map-settings-wrapp"> | 207 | <div class="map-settings-wrapp"> |
123 | <div class="min_markers-wrapp"> | 208 | <div class="min_markers-wrapp"> |
124 | <ul class="min_markers"> | 209 | <ul class="min_markers"> |
125 | - <li class="active_m"><span></span><p>Все</p></li> | ||
126 | - <li><span><img src="/images/markers/marker-min-1.png"/></span><p>Жилые</p></li> | ||
127 | - <li><span><img src="/images/markers/marker-min-2.png"/></span><p>Офисные</p></li> | ||
128 | - <li><span><img src="/images/markers/marker-min-3.png"/></span><p>Торговые</p></li> | ||
129 | - <li><span><img src="/images/markers/marker-min-4.png"/></span><p>Мосты</p></li> | ||
130 | - <li><span><img src="/images/markers/marker-min-5.png"/></span><p>Дороги</p></li> | ||
131 | - <li><span><img src="/images/markers/marker-min-6.png"/></span><p>Сооружения</p></li> | ||
132 | - <li><span><img src="/images/markers/marker-min-7.png"/></span><p>Склады</p></li> | ||
133 | - <li><span><img src="/images/markers/marker-min-8.png"/></span><p>Заводы</p></li> | ||
134 | - <li><span><img src="/images/markers/marker-min-9.png"/></span><p>Разное</p></li> | 210 | + <li class="active_m"><span></span> |
211 | + <p>Все</p></li> | ||
212 | + <li><span><img src="/images/markers/marker-min-1.png"/></span> | ||
213 | + <p>Жилые</p></li> | ||
214 | + <li><span><img src="/images/markers/marker-min-2.png"/></span> | ||
215 | + <p>Офисные</p></li> | ||
216 | + <li><span><img src="/images/markers/marker-min-3.png"/></span> | ||
217 | + <p>Торговые</p></li> | ||
218 | + <li><span><img src="/images/markers/marker-min-4.png"/></span> | ||
219 | + <p>Мосты</p></li> | ||
220 | + <li><span><img src="/images/markers/marker-min-5.png"/></span> | ||
221 | + <p>Дороги</p></li> | ||
222 | + <li><span><img src="/images/markers/marker-min-6.png"/></span> | ||
223 | + <p>Сооружения</p></li> | ||
224 | + <li><span><img src="/images/markers/marker-min-7.png"/></span> | ||
225 | + <p>Склады</p></li> | ||
226 | + <li><span><img src="/images/markers/marker-min-8.png"/></span> | ||
227 | + <p>Заводы</p></li> | ||
228 | + <li><span><img src="/images/markers/marker-min-9.png"/></span> | ||
229 | + <p>Разное</p></li> | ||
135 | </ul> | 230 | </ul> |
136 | <ul class="min_markers_two"> | 231 | <ul class="min_markers_two"> |
137 | - <li><span><img src="/images/markers/marker-min-10.png"/></span><p>проекты</p></li> | ||
138 | - <li><span><img src="/images/markers/marker-min-11.png"/></span><p>подряды</p></li> | 232 | + <li><span><img src="/images/markers/marker-min-10.png"/></span> |
233 | + <p>проекты</p></li> | ||
234 | + <li><span><img src="/images/markers/marker-min-11.png"/></span> | ||
235 | + <p>подряды</p></li> | ||
139 | </ul> | 236 | </ul> |
140 | </div> | 237 | </div> |
141 | </div> | 238 | </div> |
142 | <div class="slider-map"></div> | 239 | <div class="slider-map"></div> |
143 | <div id="map_cloud" style="display: none;"> | 240 | <div id="map_cloud" style="display: none;"> |
144 | <script type="text/javascript"> | 241 | <script type="text/javascript"> |
145 | - function initialize() { | 242 | + function initialize() |
243 | + { | ||
146 | var start_position = new google.maps.LatLng('56', '30'); | 244 | var start_position = new google.maps.LatLng('56', '30'); |
147 | var settings = { | 245 | var settings = { |
148 | - zoom: 7, | ||
149 | - // scrollwheel: false, | ||
150 | - center: start_position, | ||
151 | - mapTypeControl: false, | ||
152 | - mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, | ||
153 | - navigationControl: false, | ||
154 | - navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL}, | ||
155 | - scaleControl: false, | ||
156 | - streetViewControl: false, | ||
157 | - rotateControl: false, | ||
158 | - zoomControl: false, | ||
159 | - mapTypeId: google.maps.MapTypeId.ROADMAP}; | 246 | + zoom : 7, // scrollwheel: false, |
247 | + center : start_position, mapTypeControl : false, | ||
248 | + mapTypeControlOptions : {style : google.maps.MapTypeControlStyle.DROPDOWN_MENU}, | ||
249 | + navigationControl : false, | ||
250 | + navigationControlOptions : {style : google.maps.NavigationControlStyle.SMALL}, | ||
251 | + scaleControl : false, streetViewControl : false, rotateControl : false, | ||
252 | + zoomControl : false, mapTypeId : google.maps.MapTypeId.ROADMAP | ||
253 | + }; | ||
160 | var map = new google.maps.Map(document.getElementById("map_canvas"), settings); | 254 | var map = new google.maps.Map(document.getElementById("map_canvas"), settings); |
161 | 255 | ||
162 | - | ||
163 | - var image1 = new google.maps.MarkerImage('/images/markers/marker-we-1.png', | ||
164 | - new google.maps.Size(21, 32), | ||
165 | - new google.maps.Point(0,0), | ||
166 | - new google.maps.Point(16, 35) | 256 | + var image1 = new google.maps.MarkerImage( |
257 | + '/images/markers/marker-we-1.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
167 | ); | 258 | ); |
168 | - var image2 = new google.maps.MarkerImage('/images/markers/marker-we-2.png', | ||
169 | - new google.maps.Size(21, 32), | ||
170 | - new google.maps.Point(0,0), | ||
171 | - new google.maps.Point(16, 35) | 259 | + var image2 = new google.maps.MarkerImage( |
260 | + '/images/markers/marker-we-2.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
172 | ); | 261 | ); |
173 | - var image3 = new google.maps.MarkerImage('/images/markers/marker-we-3.png', | ||
174 | - new google.maps.Size(21, 32), | ||
175 | - new google.maps.Point(0,0), | ||
176 | - new google.maps.Point(16, 35) | 262 | + var image3 = new google.maps.MarkerImage( |
263 | + '/images/markers/marker-we-3.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
177 | ); | 264 | ); |
178 | - var image4 = new google.maps.MarkerImage('/images/markers/marker-we-4.png', | ||
179 | - new google.maps.Size(21, 32), | ||
180 | - new google.maps.Point(0,0), | ||
181 | - new google.maps.Point(16, 35) | 265 | + var image4 = new google.maps.MarkerImage( |
266 | + '/images/markers/marker-we-4.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
182 | ); | 267 | ); |
183 | - var image5 = new google.maps.MarkerImage('/images/markers/marker-we-5.png', | ||
184 | - new google.maps.Size(21, 32), | ||
185 | - new google.maps.Point(0,0), | ||
186 | - new google.maps.Point(16, 35) | 268 | + var image5 = new google.maps.MarkerImage( |
269 | + '/images/markers/marker-we-5.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
187 | ); | 270 | ); |
188 | - var image6 = new google.maps.MarkerImage('/images/markers/marker-we-6.png', | ||
189 | - new google.maps.Size(21, 32), | ||
190 | - new google.maps.Point(0,0), | ||
191 | - new google.maps.Point(16, 35) | 271 | + var image6 = new google.maps.MarkerImage( |
272 | + '/images/markers/marker-we-6.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
192 | ); | 273 | ); |
193 | - var image7 = new google.maps.MarkerImage('/images/markers/marker-we-7.png', | ||
194 | - new google.maps.Size(21, 32), | ||
195 | - new google.maps.Point(0,0), | ||
196 | - new google.maps.Point(16, 35) | 274 | + var image7 = new google.maps.MarkerImage( |
275 | + '/images/markers/marker-we-7.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
197 | ); | 276 | ); |
198 | - var image8 = new google.maps.MarkerImage('/images/markers/marker-we-8.png', | ||
199 | - new google.maps.Size(21, 32), | ||
200 | - new google.maps.Point(0,0), | ||
201 | - new google.maps.Point(16, 35) | 277 | + var image8 = new google.maps.MarkerImage( |
278 | + '/images/markers/marker-we-8.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
202 | ); | 279 | ); |
203 | - var image9 = new google.maps.MarkerImage('/images/markers/marker-we-9.png', | ||
204 | - new google.maps.Size(21, 32), | ||
205 | - new google.maps.Point(0,0), | ||
206 | - new google.maps.Point(16, 35) | 280 | + var image9 = new google.maps.MarkerImage( |
281 | + '/images/markers/marker-we-9.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
207 | ); | 282 | ); |
208 | - var image10 = new google.maps.MarkerImage('/images/markers/marker-empl-1.png', | ||
209 | - new google.maps.Size(21, 32), | ||
210 | - new google.maps.Point(0,0), | ||
211 | - new google.maps.Point(16, 35) | 283 | + var image10 = new google.maps.MarkerImage( |
284 | + '/images/markers/marker-empl-1.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
212 | ); | 285 | ); |
213 | - var image11 = new google.maps.MarkerImage('/images/markers/marker-empl-2.png', | ||
214 | - new google.maps.Size(21, 32), | ||
215 | - new google.maps.Point(0,0), | ||
216 | - new google.maps.Point(16, 35) | 286 | + var image11 = new google.maps.MarkerImage( |
287 | + '/images/markers/marker-empl-2.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
217 | ); | 288 | ); |
218 | - var image12 = new google.maps.MarkerImage('/images/markers/marker-empl-3.png', | ||
219 | - new google.maps.Size(21, 32), | ||
220 | - new google.maps.Point(0,0), | ||
221 | - new google.maps.Point(16, 35) | 289 | + var image12 = new google.maps.MarkerImage( |
290 | + '/images/markers/marker-empl-3.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
222 | ); | 291 | ); |
223 | - var image13 = new google.maps.MarkerImage('/images/markers/marker-empl-4.png', | ||
224 | - new google.maps.Size(21, 32), | ||
225 | - new google.maps.Point(0,0), | ||
226 | - new google.maps.Point(16, 35) | 292 | + var image13 = new google.maps.MarkerImage( |
293 | + '/images/markers/marker-empl-4.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
227 | ); | 294 | ); |
228 | - var image14 = new google.maps.MarkerImage('/images/markers/marker-empl-5.png', | ||
229 | - new google.maps.Size(21, 32), | ||
230 | - new google.maps.Point(0,0), | ||
231 | - new google.maps.Point(16, 35) | 295 | + var image14 = new google.maps.MarkerImage( |
296 | + '/images/markers/marker-empl-5.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
232 | ); | 297 | ); |
233 | - var image15 = new google.maps.MarkerImage('/images/markers/marker-empl-6.png', | ||
234 | - new google.maps.Size(21, 32), | ||
235 | - new google.maps.Point(0,0), | ||
236 | - new google.maps.Point(16, 35) | 298 | + var image15 = new google.maps.MarkerImage( |
299 | + '/images/markers/marker-empl-6.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
237 | ); | 300 | ); |
238 | - var image16 = new google.maps.MarkerImage('/images/markers/marker-empl-7.png', | ||
239 | - new google.maps.Size(21, 32), | ||
240 | - new google.maps.Point(0,0), | ||
241 | - new google.maps.Point(16, 35) | 301 | + var image16 = new google.maps.MarkerImage( |
302 | + '/images/markers/marker-empl-7.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
242 | ); | 303 | ); |
243 | - var image17 = new google.maps.MarkerImage('/images/markers/marker-empl-8.png', | ||
244 | - new google.maps.Size(21, 32), | ||
245 | - new google.maps.Point(0,0), | ||
246 | - new google.maps.Point(16, 35) | 304 | + var image17 = new google.maps.MarkerImage( |
305 | + '/images/markers/marker-empl-8.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
247 | ); | 306 | ); |
248 | - var image18 = new google.maps.MarkerImage('/images/markers/marker-empl-9.png', | ||
249 | - new google.maps.Size(21, 32), | ||
250 | - new google.maps.Point(0,0), | ||
251 | - new google.maps.Point(16, 35) | 307 | + var image18 = new google.maps.MarkerImage( |
308 | + '/images/markers/marker-empl-9.png', new google.maps.Size(21, 32), new google.maps.Point(0, 0), new google.maps.Point(16, 35) | ||
252 | ); | 309 | ); |
253 | 310 | ||
254 | var markers = []; | 311 | var markers = []; |
255 | 312 | ||
256 | - var marker = new google.maps.Marker({ | ||
257 | - position: new google.maps.LatLng('56', '35.3'), | ||
258 | - map: map, | ||
259 | - title: 'Marker Title2', | ||
260 | - icon: image1 | ||
261 | - }); | 313 | + var marker = new google.maps.Marker( |
314 | + { | ||
315 | + position : new google.maps.LatLng('56', '35.3'), map : map, | ||
316 | + title : 'Marker Title2', icon : image1 | ||
317 | + } | ||
318 | + ); | ||
262 | markers.push(marker); | 319 | markers.push(marker); |
263 | 320 | ||
264 | - var marker = new google.maps.Marker({ | ||
265 | - position: new google.maps.LatLng('56', '36'), | ||
266 | - map: map, | ||
267 | - title: 'Marker Title2', | ||
268 | - icon: image2 | ||
269 | - }); | 321 | + var marker = new google.maps.Marker( |
322 | + { | ||
323 | + position : new google.maps.LatLng('56', '36'), map : map, | ||
324 | + title : 'Marker Title2', icon : image2 | ||
325 | + } | ||
326 | + ); | ||
270 | markers.push(marker); | 327 | markers.push(marker); |
271 | 328 | ||
272 | - var marker = new google.maps.Marker({ | ||
273 | - position: new google.maps.LatLng('56', '34.5'), | ||
274 | - map: map, | ||
275 | - title: 'Marker Title3', | ||
276 | - icon: image18 | ||
277 | - }); | 329 | + var marker = new google.maps.Marker( |
330 | + { | ||
331 | + position : new google.maps.LatLng('56', '34.5'), map : map, | ||
332 | + title : 'Marker Title3', icon : image18 | ||
333 | + } | ||
334 | + ); | ||
278 | markers.push(marker); | 335 | markers.push(marker); |
279 | 336 | ||
280 | - var marker = new google.maps.Marker({ | ||
281 | - position: new google.maps.LatLng('56', '35'), | ||
282 | - map: map, | ||
283 | - title: 'Marker Title4', | ||
284 | - icon: image13 | ||
285 | - }); | 337 | + var marker = new google.maps.Marker( |
338 | + { | ||
339 | + position : new google.maps.LatLng('56', '35'), map : map, | ||
340 | + title : 'Marker Title4', icon : image13 | ||
341 | + } | ||
342 | + ); | ||
286 | markers.push(marker); | 343 | markers.push(marker); |
287 | 344 | ||
288 | - | ||
289 | var clusterStyles = [ | 345 | var clusterStyles = [ |
290 | { | 346 | { |
291 | - url: '/images/markers/clasters.png', | ||
292 | - height: 36, | ||
293 | - width: 36 | 347 | + url : '/images/markers/clasters.png', height : 36, width : 36 |
294 | } | 348 | } |
295 | 349 | ||
296 | ]; | 350 | ]; |
297 | - markerClusterer = new MarkerClusterer(map, markers, | 351 | + markerClusterer = new MarkerClusterer( |
352 | + map, markers, { | ||
353 | + maxZoom : 10, gridSize : 100, styles : clusterStyles | ||
354 | + } | ||
355 | + ); | ||
356 | + //балун | ||
357 | + var infowindow = new google.maps.InfoWindow( | ||
298 | { | 358 | { |
299 | - maxZoom: 10, | ||
300 | - gridSize: 100, | ||
301 | - styles: clusterStyles | ||
302 | - }); | ||
303 | -//балун | ||
304 | - var infowindow = new google.maps.InfoWindow({ | ||
305 | - content: '<div style="width: 112px;"><a href="#" style="text-decoration: none; color: #333"><img style="width: 112px; height: 60px" src="/images/infowindow_marker_slider.jpg" alt=""/><p style="width: 100%; text-align: center; font-family: Ubuntu Bold; font-size: 11px;">Трц “Дарница”</p></a></div>' | ||
306 | - }); | ||
307 | - google.maps.event.addListener(marker, 'click', function() { | ||
308 | - infowindow.open(map, this); | ||
309 | - }); | 359 | + content : '<div style="width: 112px;"><a href="#" style="text-decoration: none; color: #333"><img style="width: 112px; height: 60px" src="/images/infowindow_marker_slider.jpg" alt=""/><p style="width: 100%; text-align: center; font-family: Ubuntu Bold; font-size: 11px;">Трц “Дарница”</p></a></div>' |
360 | + } | ||
361 | + ); | ||
362 | + google.maps.event.addListener( | ||
363 | + marker, 'click', function() | ||
364 | + { | ||
365 | + infowindow.open(map, this); | ||
366 | + } | ||
367 | + ); | ||
310 | } | 368 | } |
311 | </script> | 369 | </script> |
312 | </div> | 370 | </div> |
@@ -397,8 +455,8 @@ $this->title = 'My Yii Application'; | @@ -397,8 +455,8 @@ $this->title = 'My Yii Application'; | ||
397 | </ul> | 455 | </ul> |
398 | </div> | 456 | </div> |
399 | <div id="demo5-btn" class="text-center"> | 457 | <div id="demo5-btn" class="text-center"> |
400 | - <a id="demo5-backward"></a> | ||
401 | - <a id="demo5-forward"></a> | 458 | + <a id="demo5-backward"></a> |
459 | + <a id="demo5-forward"></a> | ||
402 | </div> | 460 | </div> |
403 | </div> | 461 | </div> |
404 | </div> | 462 | </div> |