Commit ad6304d6d4477d80e00bc9ba96763d8b321d6c3a

Authored by Yarik
1 parent cda2c1c9

test

common/models/Project.php
@@ -41,8 +41,6 @@ @@ -41,8 +41,6 @@
41 return 'project'; 41 return 'project';
42 } 42 }
43 43
44 -  
45 -  
46 /** 44 /**
47 * @inheritdoc 45 * @inheritdoc
48 */ 46 */
common/models/TenderSearch.php 0 → 100644
  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-&gt;title = &#39;My Yii Application&#39;; @@ -14,6 +24,82 @@ $this-&gt;title = &#39;My Yii Application&#39;;
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-&gt;title = &#39;My Yii Application&#39;; @@ -47,7 +133,7 @@ $this-&gt;title = &#39;My Yii Application&#39;;
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-&gt;title = &#39;My Yii Application&#39;; @@ -98,17 +184,16 @@ $this-&gt;title = &#39;My Yii Application&#39;;
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-&gt;title = &#39;My Yii Application&#39;; @@ -122,191 +207,164 @@ $this-&gt;title = &#39;My Yii Application&#39;;
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-&gt;title = &#39;My Yii Application&#39;; @@ -397,8 +455,8 @@ $this-&gt;title = &#39;My Yii Application&#39;;
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>