Example #1
0
 /**
  * @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;
 }
Example #2
0
    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;
		';
    }
Example #3
0
$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 
Example #4
0
 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 '';
 }
Example #5
0
 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);
     }
 }
Example #6
0
 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();
     }
 }