/** * @return CustomYMap */ public static function init() { self::$icon['href'] = Yii::app()->request->baseUrl . "/images/house.png"; self::$icon['size'] = array('x' => 32, 'y' => 37); self::$icon['offset'] = array('x' => -16, 'y' => -35); if (!isset(self::$_instance)) { $className = __CLASS__; self::$_instance = new $className(); } return self::$_instance; }
public function createMap() { Yii::app()->getClientScript()->registerScriptFile('http://api-maps.yandex.ru/2.0/?load=package.standard,package.clusters&coordorder=longlat&lang=' . CustomYMap::getLangForMap(), CClientScript::POS_END); # 'yandex#publicMap' и 'yandex#publicMapHybrid' доступны только для России и Украины $yMapTypes = '"yandex#map", "yandex#satellite", "yandex#hybrid"'; if (Yii::app()->language == 'ru' || Yii::app()->language == 'uk') { $yMapTypes .= ', "yandex#publicMap", "yandex#publicMapHybrid"'; } $this->scripts[] = ' var markers = []; '; $this->scripts[] = ' var globalYMap; var placemark; $(function(){ ymaps.ready(function () { var placemarksAll = []; var map = new ymaps.Map("ymap", { center: [' . param("module_apartments_ymapsCenterY", 55.75411314653655) . ', ' . param("module_apartments_ymapsCenterX", 37.620717508911184) . '], zoom: ' . param("module_apartments_ymapsZoomApartment", 15) . ' }); var typeSelector = new ymaps.control.TypeSelector({ mapTypes: [ ' . $yMapTypes . ' ] }); typeSelector.setMinWidth(200); map.controls.add(typeSelector); map.controls.add("mapTools"); map.controls.add("zoomControl"); map.controls.add("scaleLine"); map.controls.add("searchControl"); map.behaviors.disable("scrollZoom"); globalYMap = map; '; }
$cs->registerScriptFile($baseUrl . '/js/jquery.multiselect.min.js'); $cs->registerCssFile($baseUrl . '/css/ui/jquery-ui.multiselect.css'); $cs->registerScriptFile($baseUrl . '/js/jquery.dropdownPlain.js', CClientScript::POS_HEAD); $cs->registerScriptFile($baseUrl . '/js/common.js', CClientScript::POS_HEAD); $cs->registerScriptFile($baseUrl . '/js/habra_alert.js', CClientScript::POS_END); $cs->registerCssFile($baseUrl . '/css/form.css', 'screen, projection'); // superfish menu $cs->registerCssFile(Yii::app()->request->baseUrl . '/js/superfish/css/superfish.css', 'screen'); $cs->registerCssFile(Yii::app()->request->baseUrl . '/js/superfish/css/superfish-vertical.css', 'screen'); $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/superfish/js/hoverIntent.js', CClientScript::POS_HEAD); $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/superfish/js/superfish.js', CClientScript::POS_HEAD); $cs->registerScript('initizlize-superfish-menu', ' $("#sf-menu-id").superfish( {delay: 100, autoArrows: false, dropShadows: false, pathClass: "overideThisToUse", speed: "fast" }); ', CClientScript::POS_READY); if (param('useYandexMap') == 1) { $cs->registerScriptFile('http://api-maps.yandex.ru/2.0/?load=package.standard,package.clusters&coordorder=longlat&lang=' . CustomYMap::getLangForMap(), CClientScript::POS_END); } elseif (param('useGoogleMap') == 1) { //$cs->registerScriptFile('https://maps.google.com/maps/api/js??v=3.5&sensor=false&language='.Yii::app()->language.'', CClientScript::POS_END); //$cs->registerScriptFile('http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js', CClientScript::POS_END); } elseif (param('useOSMMap') == 1) { //$cs->registerScriptFile('http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.js', CClientScript::POS_END); //$cs->registerCssFile('http://cdn.leafletjs.com/leaflet-0.7.2/leaflet.css'); $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/leaflet/leaflet-0.7.2/leaflet.js', CClientScript::POS_HEAD); $cs->registerCssFile(Yii::app()->request->baseUrl . '/js/leaflet/leaflet-0.7.2/leaflet.css'); $cs->registerScriptFile(Yii::app()->request->baseUrl . '/js/leaflet/leaflet-0.7.2/dist/leaflet.markercluster-src.js', CClientScript::POS_HEAD); $cs->registerCssFile(Yii::app()->request->baseUrl . '/js/leaflet/leaflet-0.7.2/dist/MarkerCluster.css'); $cs->registerCssFile(Yii::app()->request->baseUrl . '/js/leaflet/leaflet-0.7.2/dist/MarkerCluster.Default.css'); } if (Yii::app()->user->getState('isAdmin')) { ?> <link rel="stylesheet" type="text/css" href="<?php
public function actionYmap($id, $model = null) { if ($model === null) { $model = $this->loadModel($id); } $result = CustomYMap::init()->actionYmap($id, $model, $this->renderPartial('_marker', array('model' => $model), true)); if ($result) { //return $this->renderPartial('backend/_ymap', $result, true); } return ''; }
public function actionYmap($id) { $model = $this->loadModelUserAd($id); $result = CustomYMap::init()->actionYmap($id, $model, $this->renderPartial('//../modules/apartments/views/backend/_marker', array('model' => $model), true)); if ($result) { return $this->renderPartial('//../modules/apartments/views/backend/_ymap', $result, true); } }
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(); } }