Ejemplo n.º 1
0
 function validateGeometry($geometry)
 {
     $coords = $geometry;
     if (is_string($geometry)) {
         $coords = json_decode($geometry);
     }
     if ($coords and is_array($coords)) {
         if (count($coords)) {
             foreach ($coords as $r => $t) {
                 if (is_array($coords[$r])) {
                     if (!validateGeometry($coords[$r])) {
                         return false;
                     }
                 } else {
                     if (!is_numeric($coords[$r]) || $coords[$r] === null) {
                         return false;
                     }
                 }
             }
             return true;
         }
     }
     return false;
 }
Ejemplo n.º 2
0
?>
	}<?php 
if (!$params->get('suppressmapopenblock', 1)) {
    echo ', {suppressMapOpenBlock: true}';
}
?>
);
<?php 
$controls = array('fullscreenControl', 'geolocationControl', 'routeEditor', 'rulerControl', 'zoomControl', 'typeSelector', 'searchControl', 'trafficControl');
foreach ($controls as $control) {
    if ($params->get(strtolower($control), 1)) {
        echo $map_unique_id . '.controls.add("' . $control . '");';
    }
}
foreach ($objects as $object) {
    if (!empty($object['coordinates']) and validateGeometry($object['coordinates'])) {
        echo $map_unique_id . '.geoObjects.add(new ymaps.' . ucfirst($object['type']) . '(' . $object['coordinates'] . ',' . $object['properties'] . ',' . $object['options'] . '));';
    }
}
if ($params->get('autotraffic')) {
    ?>
	var trafficControl = new ymaps.control.TrafficControl({shown: true},{visible:false});
	<?php 
    echo $map_unique_id;
    ?>
.controls.add(trafficControl);
	window.setInterval(function () {
		trafficControl.getProvider('traffic#actual').update();  
	}, <?php 
    echo $autotrafficupdate;
    ?>
Ejemplo n.º 3
0
    public function getInput()
    {
        $session = JFactory::getSession();
        $session->set('mod_xdsoft_ymaps', 'valid');
        $module_id = intval(@$_REQUEST['id']);
        $images = (include dirname(__FILE__) . '/images.php');
        $options = array();
        foreach ($images as $key => $image) {
            $options[] = '<option value="' . $key . '">' . $key . '</option>';
        }
        $html = '
		<div class="xdsoft_main_content">
			<div class="span4" id="xdsoft_objects_list"></div>
			<div class="span8" style="text-align:left">
				<div id="sizer_for_map">
					<div id="work_area_map">
						<div class="toolbar">
							<a id="polygon" class="btn objects active"><i class="icon icon-polygon"></i></a>
							<a id="polyline" class="btn objects"><i class="icon icon-polyline"></i></a>
							<a id="circle" class="btn objects"><i class="icon icon-circle"></i></a>
							<a id="placemark" class="btn objects"><i class="icon icon-marker"></i></a>
						</div>
						<div id="xdsoft_options">
							<a id="delete" title="' . JText::_('MOD_XDSOFT_YMAPS_SENT_TO_RECICLE') . '" class="icon icon-delete"></a>
							<a class="close"></a>
							<div id="polygon_options">
								<table>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_BALLOON') . ':</th><td><textarea id="balloonContent" placeholder="' . JText::_('MOD_XDSOFT_YMAPS_BALLOON_TEXT_DESCR') . '"></textarea></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_COLOR') . ':</th><td><input class="options" id="strokeColor" type="color"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_OPACITY') . ':</th><td><input class="options" id="strokeOpacity" type="range" min="0" max="10"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_WIDTH') . ':</th><td><input class="options" id="strokeWidth" type="number" min="0"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_FILL_COLOR') . ':</th><td><input class="options" id="fillColor" type="color"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_FILL_OPACITY') . ':</th><td><input class="options" id="fillOpacity" type="range" min="0" max="10"/></td></tr>
								</table>
							</div>
							<div id="polyline_options">
								<table>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_BALLOON') . ':</th><td><textarea id="balloonContent" placeholder="' . JText::_('MOD_XDSOFT_YMAPS_BALLOON_TEXT_DESCR') . '"></textarea></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_COLOR') . ':</th><td><input class="options" id="strokeColor" type="color"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_OPACITY') . ':</th><td><input class="options" id="strokeOpacity" type="range" min="0" max="10"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_WIDTH') . ':</th><td><input class="options" id="strokeWidth" type="number" min="0"/></td></tr>
								</table>
							</div>
							<div id="circle_options">
								<table>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_BALLOON') . ':</th><td><textarea id="balloonContent" placeholder="' . JText::_('MOD_XDSOFT_YMAPS_BALLOON_TEXT_DESCR') . '"></textarea></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_COLOR') . ':</th><td><input class="options" id="strokeColor" type="color"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_OPACITY') . ':</th><td><input class="options" id="strokeOpacity" type="range" min="0" max="10"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_LINE_WIDTH') . ':</th><td><input class="options" id="strokeWidth" type="number" min="0"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_FILL_COLOR') . ':</th><td><input class="options" id="fillColor" type="color"/></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_FILL_OPACITY') . ':</th><td><input class="options" id="fillOpacity" type="range" min="0" max="10"/></td></tr>
								</table>
							</div>
							<div id="placemark_options">
								<table>
									<tr><th>Надпись:</th><td><textarea id="iconContent" placeholder="Надпись на метке"></textarea></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_BALLOON') . ':</th><td><textarea id="balloonContent" placeholder="' . JText::_('MOD_XDSOFT_YMAPS_BALLOON_TEXT_DESCR') . '"></textarea></td></tr>
									<tr><th>' . JText::_('MOD_XDSOFT_YMAPS_STYLE') . ':</th><td>
										<select id="preset" class="options">
										' . implode('', $options) . '
										</select>
									</td></tr>		
								</table>
							</div>
						</div>
					</div>
					<a class="icon icon-sizer"></a>
				</div>
				<div>
					<div class="search_box">
						<input placeholder="' . JText::_('MOD_XDSOFT_YMAPS_START_INPUT_YOUR_PLACE') . '" type="text"/>
						<input type="hidden" id="module_id" value="' . $module_id . '"/>
					</div>
				</div>
				<div style="padding:10px 0px;text-align:right"><a href="http://maps.xdan.ru" target="_blank">' . JText::_('MOD_XDSOFT_YMAPS_MAPSXDANRU') . '</a></div>
			</div>
		</div>
';
        $doc = JFactory::getDocument();
        $lang = in_array(JFactory::getLanguage()->getTag(), array('ru-RU', 'en-US', 'tr-TR', 'uk-UA')) ? JFactory::getLanguage()->getTag() : 'en-US';
        $doc->addScript("//api-maps.yandex.ru/2.1/?lang=" . $lang);
        if (version_compare('3.0.0', JVERSION, '>')) {
            $doc->addScript(JURI::root() . "/modules/mod_xdsoft_ymaps/assets/jquery.min.js");
        }
        $doc->addScript(JURI::root() . "/modules/mod_xdsoft_ymaps/assets/jquery.autocomplete.js");
        $doc->addScript(JURI::root() . "/modules/mod_xdsoft_ymaps/assets/xdsoft_sizerbox.js");
        $doc->addScript(JURI::root() . "/modules/mod_xdsoft_ymaps/assets/xdsoft_maps.js");
        $doc->addScriptDeclaration('window.xdsoft_lang = "' . $lang . '";' . 'window.baseurl = "' . JURI::root() . '";');
        $db = JFactory::getDBO();
        $db->setQuery("SELECT * FROM #__mod_xdsoft_ymaps where del=0 and module_id={$module_id}");
        $objects = $db->loadAssocList();
        $js = 'ymaps.ready(function () {';
        foreach ($objects as $object) {
            if (!empty($object['coordinates']) and validateGeometry($object['coordinates'])) {
                $js .= 'addYMapsObject("' . $object['type'] . '",' . $object['coordinates'] . ',' . $object['id'] . ($object['options'] ? ',' . $object['options'] : '') . ($object['properties'] ? ',' . $object['properties'] : '') . ');' . "\n";
            }
        }
        $doc->addScriptDeclaration($js . '});');
        $doc->addHeadLink(JURI::root() . "/modules/mod_xdsoft_ymaps/assets/jquery.autocomplete.css", 'stylesheet');
        $doc->addHeadLink(JURI::root() . "/modules/mod_xdsoft_ymaps/assets/style.css", 'stylesheet');
        return $html;
    }