public function actionIndex() { Yii::import('application.modules.apartments.helpers.apartmentsHelper'); Yii::app()->getModule('referencecategories'); $criteria = new CDbCriteria(); $criteria->addInCondition('t.id', Yii::app()->controller->apInComparison); $result = apartmentsHelper::getApartments(param('countListingsInComparisonList', 5), 0, 0, $criteria); $apartments = null; if (array_key_exists('criteria', $result)) { $apartments = Apartment::findAllWithCache($result['criteria']); } if (!$apartments) { $this->redirect(Yii::app()->controller->createAbsoluteUrl('/')); } $this->render('index', array('apartments' => $apartments)); }
<?php if (empty($apartments)) { $apartments = Apartment::findAllWithCache($criteria); } $findIds = $countImagesArr = array(); foreach ($apartments as $item) { $findIds[] = $item->id; } if (count($findIds) > 0) { $countImagesArr = Images::getApartmentsCountImages($findIds); } foreach ($apartments as $item) { $addClass = ''; if ($item->is_special_offer) { $addClass = 'special_offer_highlight'; } elseif ($item->date_up_search != '0000-00-00 00:00:00') { $addClass = 'up_in_search'; } ?> <div class="appartment_item <?php echo $addClass; ?> " lat="<?php echo $item->lat; ?> " lng="<?php echo $item->lng; ?> " ap_id="<?php echo $item->id;
public function run() { Yii::app()->getModule('apartments'); $criteria = $this->criteria ? $this->criteria : new CDbCriteria(); if ($this->filterOn) { Yii::app()->controller->aData['searchOnMap'] = true; $this->renderFilter($criteria); } if (param('useYandexMap', 1)) { echo $this->render('application.modules.apartments.views.backend._ymap', '', true); CustomYMap::init()->createMap(); } elseif (param('useGoogleMap', 1)) { CustomGMap::createMap(); } else { echo '<div id="osmap"></div>'; CustomOSMap::createMap(); } $lang = Yii::app()->language; $criteria->select = 'lat, lng, id, type, address_' . $lang . ', title_' . $lang . ', address_' . $lang; $ownerActiveCond = ''; if (param('useUserads')) { $ownerActiveCond = ' AND owner_active = ' . Apartment::STATUS_ACTIVE . ' '; } $criteria->addCondition('lat <> "" AND lat <> "0" AND active=' . Apartment::STATUS_ACTIVE . ' AND (owner_id=1 OR owner_id>1 ' . $ownerActiveCond . ')'); $apartments = Apartment::findAllWithCache($criteria); if (param('useYandexMap', 1)) { $lats = array(); $lngs = array(); foreach ($apartments as $apartment) { $lats[] = $apartment->lat; $lngs[] = $apartment->lng; CustomYMap::init()->addMarker($apartment->lat, $apartment->lng, $this->render('application.modules.apartments.views.backend._marker', array('model' => $apartment), true), true, $apartment); } if ($lats && $lngs) { CustomYMap::init()->setBounds(min($lats), max($lats), min($lngs), max($lngs)); if ($this->withCluster) { CustomYMap::init()->setClusterer(); } else { CustomYMap::init()->withoutClusterer(); } } else { $minLat = param('module_apartments_ymapsCenterX') - param('module_apartments_ymapsSpanX') / 2; $maxLat = param('module_apartments_ymapsCenterX') + param('module_apartments_ymapsSpanX') / 2; $minLng = param('module_apartments_ymapsCenterY') - param('module_apartments_ymapsSpanY') / 2; $maxLng = param('module_apartments_ymapsCenterY') + param('module_apartments_ymapsSpanY') / 2; CustomYMap::init()->setBounds($minLng, $maxLng, $minLat, $maxLat); } CustomYMap::init()->changeZoom(0, '+'); CustomYMap::init()->processScripts(true); } elseif (param('useGoogleMap', 1)) { foreach ($apartments as $apartment) { CustomGMap::addMarker($apartment, $this->render('application.modules.apartments.views.backend._marker', array('model' => $apartment), true)); } if ($this->withCluster) { CustomGMap::clusterMarkers(); } CustomGMap::setCenter(); CustomGMap::render(); } elseif (param('useOSMMap', 1)) { foreach ($apartments as $apartment) { CustomOSMap::addMarker($apartment, $this->render('application.modules.apartments.views.backend._marker', array('model' => $apartment), true)); } if ($this->withCluster) { CustomOSMap::clusterMarkers(); } CustomOSMap::setCenter(); CustomOSMap::render(); } }