Файловый менеджер - Редактировать - /home/digilove/public_html/plugins/system/ytshortcodes/includes/libs/googlemap/googleMaps.lib.php
Назад
<?php /* * ------------------------------------------------------------------------ * Copyright (C) 2009 - 2013 The YouTech JSC. All Rights Reserved. * @license - GNU/GPL, http://www.gnu.org/licenses/gpl.html * Author: The YouTech JSC * Websites: http://www.smartaddons.com - http://www.cmsportal.net * ------------------------------------------------------------------------ */ defined('_JEXEC') or die('Restricted access'); class Plugin_googleMaps_base { function init_google_maps($row, $pluginParams, $is_mod) { $param_list = array('api_key', 'width', 'height', 'zoom'); foreach($param_list as $var) { $this->$var = $pluginParams->$var; } $regex = "/\[".$this->tag."\s+(.*?)\]/is"; $contents = $row->text; if (preg_match_all( $regex, $contents, $matches, PREG_SET_ORDER )) { $count = count( $matches[0] ); if ($count==0) return true; static $map_id = 0; $is_mod2 = '_plugin'; $GET_var = "mod_{$this->tag}_id"; if ($is_mod) { if (!isset($_GET[$GET_var])) $_GET[$GET_var] = 131; $is_mod2 = '_mod'; } $js_var = ''; $js = ''; $js2 = ''; $this->lang = ''; $this->options_js = ''; foreach($matches as $matches2) { if ($is_mod) { $map_id = $_GET[$GET_var]++; } #$var = $this->mod.'2'.$map_id; #$js_var .= "var {$var};"; $js .= $this->process($row, $matches2, $map_id); if ($this->z_options!='') { $this->options_js .= "if (id==$map_id) map.setOptions({".$this->z_options."});\n"; } #$js2 .= "$var.checkResize();\n"; if (!$is_mod) ++$map_id; } $init_script = "<script type=\"text/javascript\"> <!-- $js_var function load_gmap() { {$js} } onload_{$this->mod}(load_gmap()); //window.onunload = GUnload; --> </script> "; $row->text = preg_replace( $regex, '', $row->text ); $codes = $this->js_lib(); if(defined('_VALID_MOS')) { $codes .= "<style type=\"text/css\">\n<!--".$this->setup_css()."-->\n</style>"; } else { JFactory::getDocument()->addStyleDeclaration($this->setup_css()); } $codes .= $this->setup_gmap(); $row->text = $codes.$row->text; $row->text .= $init_script; } return true; } function process(&$row, $matches, $map_id) { $this->process_controls($row, $matches, $map_id); $this->process_params($row, $matches, $map_id); $js = $this->output_map($row, $matches, $map_id); return $js; } function process_controls(&$row, $matches, $map_id) { $this->lat = 0; $this->long = 0; $description = ''; $this->startzoom = $this->zoom; $this->description = ''; $this->align = ''; $this->control = ''; $this->maptype = ''; $this->kml = ''; $this->marker = 1; $this->addscale = 0; $this->addoverview = 1; $this->streetview = 1; $this->addr = ''; $this->key_text = 'AIzaSyAYvfhU3lQ4Z52FXziEBemhbiXzFycLj7U'; $this->add_p = 0; $this->w3c = 1; $this->z_options = ''; $type=''; $this->type = ''; $this->with = ''; $this->height = ''; $this->disable_scroll = ''; if (preg_match('/lat=([\+\-]?[0-9\.]+)/', $matches[1], $matches2)) $this->lat = $matches2[1]; if (preg_match('/long=([\+\-]?[0-9\.]+)/', $matches[1], $matches2)) $this->long = $matches2[1]; if (preg_match('/zoom=(\d+)/', $matches[1], $matches2)) $this->startzoom = $matches2[1]; if (preg_match('/width=(\d+%?)/', $matches[1], $matches2)) $this->width = $matches2[1]; if (preg_match('/height=(\d+)/', $matches[1], $matches2)) $this->height = $matches2[1]; // dungnv if (preg_match('/align="([^"]+)"/', $matches[1], $matches2)); if (isset($matches2[1])) $this->align = ' pull-'.$matches2[1]; # added on 090510 if (preg_match('/options=([^\s]+)/', $matches[1], $matches2)) $this->z_options = $matches2[1]; if (preg_match('/control=([^\s]+)/', $matches[1], $matches2)) $this->control = $matches2[1]; if (preg_match('/maptype=([^\s]+)/', $matches[1], $matches2)) $this->maptype = $matches2[1]; if (preg_match('/lang=([^\s]+)/', $matches[1], $matches2)) $this->lang = $matches2[1]; if (preg_match('/marker=([^\s]+)/', $matches[1], $matches2)) $this->marker = $matches2[1]; if (preg_match('/addoverview=(\d+)/', $matches[1], $matches2)) $this->addoverview = $matches2[1]; if (preg_match('/addscale=(\d+)/', $matches[1], $matches2)) $this->addscale = $matches2[1]; if (preg_match('/addgoogle=(\d+)/', $matches[1], $matches2)) $this->addgoogle = $matches2[1]; if (preg_match('/w3c=(\d+%?)/', $matches[1], $matches2)) { $this->w3c = $matches2[1]; } else if (preg_match('/add_p=(\d+%?)/', $matches[1], $matches2)) { $this->add_p = $matches2[1]; $this->w3c = $this->add_p; } if (preg_match('/streetview=(\d+)/', $matches[1], $matches2)) $this->streetview = $matches2[1]; if (preg_match('/options="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) { $this->z_options = $this->fix_str2($matches2[1]); $this->z_options = $this->fix_str2($this->z_options); } $this->maptype = strtoupper($this->maptype); if ($this->maptype=='G_SATELLITE_MAP') $this->maptype = 'SATELLITE'; if ($this->maptype=='G_HYBRID_MAP') $this->maptype = 'HYBRID'; if ($this->maptype=='G_NORMAL_MAP') $this->maptype = 'ROADMAP'; # added on 090509 if (preg_match('/kml=([^\s]+)/', $matches[1], $matches2)) $this->kml = $matches2[1]; if (preg_match('/description="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $description = $this->fix_str2($matches2[1]); if (preg_match('/type="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $type = $this->fix_str2($matches2[1]); if (preg_match('/disable_scroll="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $disable_scroll = $this->fix_str2($matches2[1]); if (preg_match('/label="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $description = $this->fix_str2($matches2[1]); $description = $this->fix_str2($description); $description = str_replace('~', '<br />', $description); #$description = str_replace('~', '<br />', $description); $description = str_replace("'", '\\'."'", $description); $description = str_replace("\r\n", "\n", $description); $description = str_replace("\n", '<br />', $description); $this->description = $description; $this->type = $type; $this->disable_scroll = $disable_scroll; # added on 090528 if (preg_match('/addr="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $this->addr = $this->fix_str2($matches2[1]); $this->addr = str_replace("'", "\\"."'", $this->addr); if (preg_match('/key_text="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $this->key_text = $this->fix_str2($matches2[1]); $this->key_text = str_replace("'", "\\"."'", $this->key_text); if (preg_match('/width="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $this->width = $this->fix_str2($matches2[1]); if (preg_match('/height="([^"]+)"/', $this->fix_str2($matches[1]), $matches2)) $this->height = $this->fix_str2($matches2[1]); if ($this->startzoom<1 || $this->startzoom>18) $this->startzoom = 15; if ($this->height<10 || $this->height>4096) $this->height = 480; } function process_params(&$row, $matches, $map_id) { } function fix_str2($str) { $str = str_replace(''', "'", $str); $str = str_replace('"', '"', $str); $str = str_replace('<', '<', $str); $str = str_replace('>', '>', $str); $str = str_replace('&', '&', $str); $str = str_replace(' ', ' ', $str); return $str; } function fix_str3($str) { $str = str_replace('~', '@', $str); $str = str_replace('<br>', " ", $str); $str = str_replace('<br />', " ", $str); $str = str_replace('<p>', " ", $str); $str = str_replace('</p>', " ", $str); $str = str_replace(' ', ' ', $str); $str = str_replace("\n", " ", $str); $str = str_replace("\r", "", $str); return $str; } function js_lib() { $js = "\n<script type=\"text/javascript\"> <!-- function onload_{$this->mod}(func) { var oldonload = window.onload; if (typeof window.onload != 'function') {window.onload = func;} else { window.onload = function() {if (oldonload){oldonload();}func();} } } function display_{$this->mod}_gmap(id, centerLatitude, centerLongitude, startZoom, description, kml, control, maptype, show_marker, addoverview, addscale, addgoogle, streetview, type,disable_scroll) { var latlng = new google.maps.LatLng(centerLatitude, centerLongitude); if (startZoom==0 || startZoom=='') startZoom=10; var mapdiv = document.getElementById(\"{$this->mod}_gmap\"+id); switch(type) { case 'style2': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'featureType':'landscape','stylers':[{'saturation':-100},{'lightness':65},{'visibility':'on'}]},{'featureType':'poi','stylers':[{'saturation':-100},{'lightness':51},{'visibility':'simplified'}]},{'featureType':'road.highway','stylers':[{'saturation':-100},{'visibility':'simplified'}]},{'featureType':'road.arterial','stylers':[{'saturation':-100},{'lightness':30},{'visibility':'on'}]},{'featureType':'road.local','stylers':[{'saturation':-100},{'lightness':40},{'visibility':'on'}]},{'featureType':'transit','stylers':[{'saturation':-100},{'visibility':'simplified'}]},{'featureType':'administrative.province','stylers':[{'visibility':'off'}]},{'featureType':'water','elementType':'labels','stylers':[{'visibility':'on'},{'lightness':-25},{'saturation':-100}]},{'featureType':'water','elementType':'geometry','stylers':[{'hue':'#ffff00'},{'lightness':-25},{'saturation':-97}]}] }; break; case 'style3': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'stylers':[{'hue':'#16a085'},{'saturation':0}]},{'featureType':'road','elementType':'geometry','stylers':[{'lightness':100},{'visibility':'simplified'}]},{'featureType':'road','elementType':'labels','stylers':[{'visibility':'off'}]}] }; break; case 'style4': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'featureType':'water','stylers':[{'visibility':'on'},{'color':'#333333'}]},{'featureType':'landscape.natural','elementType':'geometry.fill','stylers':[{'visibility':'on'},{'color':'#666666'}]},{'featureType':'landscape.man_made','stylers':[{'visibility':'off'}]},{'featureType':'transit','stylers':[{'visibility':'off'}]},{'featureType':'poi','elementType':'geometry','stylers':[{'color':'#df2f23'},{'visibility':'off'}]},{'featureType':'road.highway.controlled_access','elementType':'geometry.fill','stylers':[{'visibility':'on'},{'color':'#cccccc'}]},{'featureType':'road.highway.controlled_access','elementType':'geometry.stroke','stylers':[{'color':'#999999'}]},{'featureType':'road.local','stylers':[{'visibility':'off'}]},{'featureType':'road.arterial','elementType':'geometry.fill','stylers':[{'color':'#aaaaaa'}]},{'featureType':'road.arterial','elementType':'geometry.stroke','stylers':[{'visibility':'off'}]},{'featureType':'road.highway','elementType':'geometry.fill','stylers':[{'color':'#808080'}]},{'featureType':'administrative','elementType':'geometry.stroke','stylers':[{'color':'#aaaaaa'}]},{'featureType':'administrative','elementType':'labels.text'},{'featureType':'road.highway','elementType':'geometry.stroke','stylers':[{'color':'#c6eeee'}]},{}] }; break; case 'style5': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'featureType':'landscape','stylers':[{'visibility':'simplified'},{'color':'#2b3f57'},{'weight':0.1}]},{'featureType':'administrative','stylers':[{'visibility':'on'},{'hue':'#ff0000'},{'weight':0.4},{'color':'#ffffff'}]},{'featureType':'road.highway','elementType':'labels.text','stylers':[{'weight':1.3},{'color':'#FFFFFF'}]},{'featureType':'road.highway','elementType':'geometry','stylers':[{'color':'#f55f77'},{'weight':3}]},{'featureType':'road.arterial','elementType':'geometry','stylers':[{'color':'#f55f77'},{'weight':1.1}]},{'featureType':'road.local','elementType':'geometry','stylers':[{'color':'#f55f77'},{'weight':0.4}]},{},{'featureType':'road.highway','elementType':'labels','stylers':[{'weight':0.8},{'color':'#ffffff'},{'visibility':'on'}]},{'featureType':'road.local','elementType':'labels','stylers':[{'visibility':'off'}]},{'featureType':'road.arterial','elementType':'labels','stylers':[{'color':'#ffffff'},{'weight':0.7}]},{'featureType':'poi','elementType':'labels','stylers':[{'visibility':'off'}]},{'featureType':'poi','stylers':[{'color':'#6c5b7b'}]},{'featureType':'water','stylers':[{'color':'#f3b191'}]},{'featureType':'transit.line','stylers':[{'visibility':'on'}]}] }; break; case 'style6': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'featureType':'water','stylers':[{'color':'#021019'}]},{'featureType':'landscape','stylers':[{'color':'#08304b'}]},{'featureType':'poi','elementType':'geometry','stylers':[{'color':'#0c4152'},{'lightness':5}]},{'featureType':'road.highway','elementType':'geometry.fill','stylers':[{'color':'#000000'}]},{'featureType':'road.highway','elementType':'geometry.stroke','stylers':[{'color':'#0b434f'},{'lightness':25}]},{'featureType':'road.arterial','elementType':'geometry.fill','stylers':[{'color':'#000000'}]},{'featureType':'road.arterial','elementType':'geometry.stroke','stylers':[{'color':'#0b3d51'},{'lightness':16}]},{'featureType':'road.local','elementType':'geometry','stylers':[{'color':'#000000'}]},{'elementType':'labels.text.fill','stylers':[{'color':'#ffffff'}]},{'elementType':'labels.text.stroke','stylers':[{'color':'#000000'},{'lightness':13}]},{'featureType':'transit','stylers':[{'color':'#146474'}]},{'featureType':'administrative','elementType':'geometry.fill','stylers':[{'color':'#000000'}]},{'featureType':'administrative','elementType':'geometry.stroke','stylers':[{'color':'#144b53'},{'lightness':14},{'weight':1.4}]}] }; break; case 'style7': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'stylers':[{'hue':'#ff1a00'},{'invert_lightness':true},{'saturation':-100},{'lightness':33},{'gamma':0.5}]},{'featureType':'water','elementType':'geometry','stylers':[{'color':'#2D333C'}]}] }; break; case 'style8': var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), styles:[{'featureType':'landscape.natural','elementType':'geometry.fill','stylers':[{'visibility':'on'},{'color':'336d75'}]},{'featureType':'poi','elementType':'geometry.fill','stylers':[{'visibility':'on'},{'hue':'#1900ff'},{'color':'#d064a4'}]},{'featureType':'landscape.man_made','elementType':'geometry.fill'},{'featureType':'road','elementType':'geometry','stylers':[{'lightness':100},{'visibility':'simplified'}]},{'featureType':'road','elementType':'labels','stylers':[{'visibility':'off'}]},{'featureType':'water','stylers':[{'color':'#6bb1e1'}]},{'featureType':'transit.line','elementType':'geometry','stylers':[{'visibility':'on'},{'lightness':700}]}] }; break; default: var myOptions = { zoom: startZoom, center: latlng, scrollwheel: (disable_scroll == 'yes' ? false : true), }; } var map = new google.maps.Map(mapdiv, myOptions); if (kml!='') { var myKMLOptions = { //suppressInfoWindows: true, map: map, preserveViewport: true }; var georssLayer = new google.maps.KmlLayer(kml, myKMLOptions); georssLayer.setMap(map); } format_{$this->mod}(map, control, maptype, show_marker, addoverview, addscale, addgoogle); format2_{$this->mod}(map, id, streetview); if (show_marker) show_gmap_marker(map, latlng, centerLatitude, centerLongitude, description, type, disable_scroll); return map; } function format_{$this->mod}(map, control, maptype, show_marker, addoverview, addscale, addgoogle) { if (addscale==1) map.setOptions({scaleControl: true}); //if (addoverview=='1') {map.setOptions({overviewMapControl: true, overviewMapControlOptions:{opened: true}});} else {map.setOptions({overviewMapControl: false});} if (addoverview==1) map.setOptions({overviewMapControl: true, overviewMapControlOptions:{opened: true}}); //map.setOptions({google.maps.MapTypeId: ROADMAP}); if (maptype=='SATELLITE') {map.setOptions({MapTypeId: google.maps.MapTypeId.SATELLITE});} else if (maptype=='TERRAIN') {map.setOptions({MapTypeId: google.maps.MapTypeId.TERRAIN});} else if (maptype=='HYBRID') {map.setOptions({MapTypeId: google.maps.MapTypeId.HYBRID});} else {map.setOptions({MapTypeId: google.maps.MapTypeId.ROADMAP});} } function format2_{$this->mod}(map, id, streetview) { if (streetview==1) {map.setOptions({streetViewControl: true});} else {map.setOptions({streetViewControl: false});} $this->options_js } function show_gmap_marker(map, latlng, centerLatitude, centerLongitude, description, type,disable_scroll) { var desc = description; if (desc=='') desc = '('+centerLatitude+', '+centerLongitude+')'; var title_desc = desc.replace(/<br \/>/g, ' '); title_desc = title_desc.replace(/~/g, ''); var marker = new google.maps.Marker({ position:latlng, map:map, title:title_desc }); var infowindow = new google.maps.InfoWindow({content:desc.replace(/~/g, '<br />')}); google.maps.event.addListener(marker, 'click', function() {infowindow.open(map, marker);}); } --> </script> "; return $js; } function setup_css() { $output = ''; return $output; } function gmap_code() { $js = "\n<script type=\"text/javascript\"> <!-- function init_{$this->mod}_gmap(id, addr, centerLatitude, centerLongitude, startZoom, description, kml, control, maptype, show_marker, addoverview, addscale, addgoogle, streetview, type, disable_scroll,key_text) { var map; if (addr!='') { var addr2 = addr.replace(/~/g, ''); var latlng_RegExp = /(-?\d+\.\d+)\s*,\s*(-?\d+\.\d+)/; if (latlng_RegExp.test(addr2)) { var str = addr2.match(latlng_RegExp); map = display_{$this->mod}_gmap(id, str[1], str[2], startZoom, description, kml, control, maptype, show_marker, addoverview, addscale, addgoogle, streetview, type,disable_scroll); } else { var geocoder = new google.maps.Geocoder(); geocoder.geocode( { 'address': addr2}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { if (description=='') description = addr; map = display_{$this->mod}_gmap(id, results[0].geometry.location.lat(), results[0].geometry.location.lng(), startZoom, description, kml, control, maptype, show_marker, addoverview, addscale, addgoogle, streetview, type, disable_scroll); } else { alert('Google cannot decode your address: '+addr); } }); } } else { map = display_{$this->mod}_gmap(id, centerLatitude, centerLongitude, startZoom, description, kml, control, maptype, show_marker, addoverview, addscale, addgoogle, streetview, type,disable_scroll); } } --> </script> "; return $js; } } class Plugin_googleMaps extends Plugin_googleMaps_base { function Plugin_googleMaps( &$row, $pluginParams, $is_mod=0 ) { $this->mod = 'gmap'; $this->tag = 'yt_google_map'; $this->addoverview = 1; $this->addgoogle = 1; $this->init_google_maps($row, $pluginParams, $is_mod); } function output_map(&$row, $matches, $map_id) { if (preg_match('/(\d+)%/', $this->width, $matches3)) { if ($matches3[1]<1 || $matches3[1]>100) $this->width = '100%'; } elseif ($this->width<10 || $this->width>4096) $this->width = 640; if (preg_match('/%/', $this->width)) $width2 = $this->width; else $width2 = $this->width.'px'; $output = ''; if ($this->w3c) $output .= '</p>'; $output .= "\n<div class=\"yt-gmap {$this->align}\" id=\"{$this->mod}_gmap{$map_id}\" style=\"width: {$width2}; height: {$this->height}px;\"></div>\n"; $output .= "<div style=\"width: {$width2};\"></div>\n"; if ($this->w3c) $output .= '<p>'; $row->text = str_replace($matches[0], $output, $row->text); $js = "init_{$this->mod}_gmap('$map_id', '$this->addr', $this->lat, $this->long, $this->startzoom, '$this->description', '$this->kml', '$this->control', '$this->maptype', $this->marker, '$this->addoverview', '$this->addscale', '$this->addgoogle', '$this->streetview', '$this->type','$this->disable_scroll','$this->key_text')\n"; return $js; } function setup_gmap() { $output = ""; $lang = ''; if ($this->lang!='') $lang = "&hl=".$this->lang; $output .= "\n"."<script type=\"text/javascript\" src=\"http://maps.googleapis.com/maps/api/js?sensor=false&key=".$this->key_text."&language=".$this->lang.'"></script>'; $output .= $this->gmap_code(); return $output; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Генерация страницы: 0.51 |
proxy
|
phpinfo
|
Настройка