root
7 years ago
8 changed files with 38 additions and 261 deletions
@ -0,0 +1,4 @@ |
|||||||
|
<?php |
||||||
|
header('Location:/'); |
||||||
|
exit; |
||||||
|
?> |
@ -1,257 +1,7 @@ |
|||||||
<div id="myMap{$gmap.id}" style="height:{$gmap.gmap_height};{if $gmap.gmap_width}width:{$gmap.gmap_width};{/if}"></div> |
function loadMapsAPI(){ldelim}if(window.google&&google.maps)return;{rdelim}window.initMap=function(){ldelim}{rdelim} |
||||||
<script> |
loadMapsAPI();$(document).ready(function(){ldelim}loadMap{$gmap.id}();{rdelim});var defaultZoom{$gmap.id}={$gmap.gmap_zoom};var map{$gmap.id};var infowindow{$gmap.id};var markerList{$gmap.id}=[];function loadMap{$gmap.id}(){ldelim}console.log('loadMap');var defaultLatlng{$gmap.id}=new google.maps.LatLng({$gmap.latitude},{$gmap.longitude});var myOptions{$gmap.id}={ldelim}zoom:defaultZoom{$gmap.id},center:defaultLatlng{$gmap.id},mapTypeId:google.maps.MapTypeId.ROADMAP{rdelim};map{$gmap.id}=new google.maps.Map(document.getElementById("myMap{$gmap.id}"),myOptions{$gmap.id});infowindow{$gmap.id}=new google.maps.InfoWindow({ldelim}maxWidth:700{rdelim});loadMarkers{$gmap.id}();{rdelim} |
||||||
function loadMapsAPI() {ldelim} |
function loadMarkers{$gmap.id}(){ldelim}var lmarkers{$gmap.id}={$markers};$.each(lmarkers{$gmap.id},function(i,item){ldelim}loadMarker{$gmap.id}(item);{rdelim});{rdelim} |
||||||
if( window.google && google.maps ) |
function loadMarker{$gmap.id}(markerData){ldelim}var myLatlng=new google.maps.LatLng(markerData['latitude'],markerData['longitude']);var image='/modules/gmap/images/'+markerData['image']+'.png';if(markerData['img_title']!='/modules/gmap/img/no_image.png'){ldelim}var a_stimg="<img style=\"margin: 0px 10px 0px 0px;\" src=\"/index.php?thumb="+markerData['img_title']+"&height=64&width=64&mode=f\">";{rdelim}else{ldelim}var a_stimg="<img style=\"margin: 0px 10px 10px 0px;\" src=\"/modules/gmap/img/no_image.png\">";{rdelim};if(markerData['marker_cat_title']!=''){ldelim}if(markerData['marker_cat_link']=='/'||markerData['marker_cat_link']=='javascript:void(0);'){ldelim}var a_categ="<li><a style=\"color:#828282; font-size:11px; text-decoration:none;\" onmouseover=\"this.style.color='#181818';\" onmouseout=\"this.style.color='#828282';\" href=\""+markerData['marker_cat_link']+"\">"+markerData['marker_cat_title']+"</a></li>";{rdelim}else{ldelim}var a_categ="<li><a style=\"color:#828282; font-size:11px; text-decoration:none;\" onmouseover=\"this.style.color='#181818';\" onmouseout=\"this.style.color='#828282';\" href=\"/"+markerData['marker_cat_link']+"\">"+markerData['marker_cat_title']+"</a></li>";{rdelim}{rdelim}else{ldelim}var a_categ='';{rdelim};if(markerData['title']!=''){ldelim}if(markerData['title_link']=='/'||markerData['title_link']=='javascript:void(0);'){ldelim}var a_title="<li><a style=\"color:#181818; font-size:18px; text-decoration:none; border-bottom:2px solid;\" onmouseover=\"this.style.color='#FF6600';\" onmouseout=\"this.style.color='#181818';\" href=\""+markerData['title_link']+"\"><strong>"+markerData['title']+"</strong></a></li>";{rdelim}else{ldelim}var a_title="<li><a style=\"color:#181818; font-size:18px; text-decoration:none; border-bottom:2px solid;\" onmouseover=\"this.style.color='#FF6600';\" onmouseout=\"this.style.color='#181818';\" href=\"/"+markerData['title_link']+"\"><strong>"+markerData['title']+"</strong></a></li>";{rdelim}{rdelim}else{ldelim}var a_title='';{rdelim};if(markerData['marker_street']!=''){ldelim}var a_city="<li><span style=\"font-size:12px; color:#68809B;\">"+markerData['marker_city']+", "+markerData['marker_street']+", "+markerData['marker_building']+"</span></li>";{rdelim}else{ldelim}var a_city='';{rdelim};if(markerData['marker_dopfield']!=''){ldelim}var a_dopfield="<li><div style=\"max-width:280px; white-space: normal !important; color:#828282;\">"+markerData['marker_dopfield']+"</div></li>";{rdelim}else{ldelim}var a_dopfield='';{rdelim};if(markerData['marker_phone']!=''){ldelim}var a_phone="<li><img src=\"{$ABS_PATH}modules/gmap/img/phone.png\">"+markerData['marker_phone']+"</li>";{rdelim}else{ldelim}var a_phone='';{rdelim};if(markerData['marker_www']!=''){ldelim}var a_placeholders=new Array('http://www.','https://www.','http://','https://');var a_www="<li><a style=\"font-size:12px; color:#828282; text-decoration:none;\" onmouseover=\"this.style.color='#181818';\" onmouseout=\"this.style.color='#828282';\" href=\""+markerData['marker_www']+"\"><img src=\"{$ABS_PATH}modules/gmap/img/url.png\">"+str_replace(a_placeholders,'www.',markerData['marker_www'])+"</a></li>";{rdelim}else{ldelim} |
||||||
return; |
var a_www='';{rdelim};var a_divs="<div style=\"white-space: nowrap; overflow:hidden; min-height: 64px; \">";var a_dive="</div>";var a_uls="<ul style=\"list-style:none; margin-top:-68px; margin-left: 30px;\">";var a_ultws="<ul style=\"margin-top:-8px; list-style:none; text-align: center;\">";var a_ule="</ul>";var content=a_divs+a_stimg+a_uls+a_categ+a_title+a_city+a_dopfield+a_ule+a_ultws+a_phone+a_www+a_ule+a_dive;var marker=new google.maps.Marker({ldelim}id:markerData['id'],map:map{$gmap.id},content:content,icon:image,position:myLatlng{rdelim});markerList{$gmap.id}[marker.id]=marker;google.maps.event.addListener(marker,'click',function(){ldelim}showMarker{$gmap.id}(marker.id);{rdelim});{rdelim} |
||||||
document.write( |
function showMarker{$gmap.id}(markerId){ldelim}var marker=markerList{$gmap.id}[markerId];if(marker){ldelim}infowindow{$gmap.id}.setContent(marker.content);infowindow{$gmap.id}.open(map{$gmap.id},marker);{rdelim}else{ldelim}alert('Error marker not found: '+markerId);{rdelim}{rdelim} |
||||||
'<script src="', |
function str_replace(search,replace,subject){ldelim}if(!(replace instanceof Array)){ldelim}replace=new Array(replace);if(search instanceof Array){ldelim}while(search.length>replace.length){ldelim}replace[replace.length]=replace[0];{rdelim}{rdelim}{rdelim}if(!(search instanceof Array))search=new Array(search);while(search.length>replace.length){ldelim}replace[replace.length]='';{rdelim}if(subject instanceof Array){ldelim}for(k in subject){ldelim}subject[k]=str_replace(search,replace,subject[k]);{rdelim}return subject;{rdelim}for(var k=0;k<search.length;k++){ldelim}var i=subject.indexOf(search[k]);while(i>-1){ldelim}subject=subject.replace(search[k],replace[k]);i=subject.indexOf(search[k],i);{rdelim}{rdelim}return subject;{rdelim} |
||||||
'https://maps.googleapis.com/maps/api/js?key=', |
|
||||||
'{$api_key}', |
|
||||||
'&=initMap', |
|
||||||
|
|
||||||
'">', |
|
||||||
'<\/script>' |
|
||||||
); |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
window.initMap = function(){ldelim} |
|
||||||
//фикс ошибки "initMap is not a function" |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
loadMapsAPI(); |
|
||||||
</script> |
|
||||||
<script language="Javascript" type="text/javascript"> |
|
||||||
$(document).ready(function(){ldelim} |
|
||||||
loadMap{$gmap.id}(); |
|
||||||
{rdelim}); |
|
||||||
</script> |
|
||||||
<script language="Javascript" type="text/javascript"> |
|
||||||
|
|
||||||
|
|
||||||
// zoom level of the map |
|
||||||
var defaultZoom{$gmap.id} ={$gmap.gmap_zoom}; |
|
||||||
|
|
||||||
// variable for map |
|
||||||
var map{$gmap.id}; |
|
||||||
|
|
||||||
// variable for marker info window |
|
||||||
var infowindow{$gmap.id}; |
|
||||||
|
|
||||||
// List with all marker to check if exist |
|
||||||
var markerList{$gmap.id} = []; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Load Map */ |
|
||||||
function loadMap{$gmap.id}(){ldelim} |
|
||||||
|
|
||||||
console.log('loadMap'); |
|
||||||
// set default map properties |
|
||||||
var defaultLatlng{$gmap.id} = new google.maps.LatLng({$gmap.latitude},{$gmap.longitude}); |
|
||||||
// option for google map object |
|
||||||
var myOptions{$gmap.id} = {ldelim} |
|
||||||
zoom: defaultZoom{$gmap.id}, |
|
||||||
center: defaultLatlng{$gmap.id}, |
|
||||||
mapTypeId: google.maps.MapTypeId.ROADMAP |
|
||||||
{rdelim}; |
|
||||||
// create new map make sure a DIV with id myMap exist on page |
|
||||||
map{$gmap.id} = new google.maps.Map(document.getElementById("myMap{$gmap.id}"), myOptions{$gmap.id}); |
|
||||||
|
|
||||||
// create new info window for marker detail pop-up |
|
||||||
infowindow{$gmap.id} = new google.maps.InfoWindow( |
|
||||||
{ldelim} |
|
||||||
maxWidth: 700 |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
); |
|
||||||
|
|
||||||
// load markers |
|
||||||
loadMarkers{$gmap.id}(); |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
/** |
|
||||||
* Load markers via ajax request from server |
|
||||||
*/ |
|
||||||
|
|
||||||
function loadMarkers{$gmap.id}(){ldelim} |
|
||||||
var lmarkers{$gmap.id} = {$markers}; |
|
||||||
// load marker jSon data |
|
||||||
|
|
||||||
// loop all the markers |
|
||||||
$.each(lmarkers{$gmap.id}, function(i,item){ldelim} |
|
||||||
// add marker to map |
|
||||||
loadMarker{$gmap.id}(item); |
|
||||||
|
|
||||||
{rdelim}); |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* Load marker to map |
|
||||||
*/ |
|
||||||
function loadMarker{$gmap.id}(markerData){ldelim} |
|
||||||
|
|
||||||
// create new marker location |
|
||||||
var myLatlng = new google.maps.LatLng(markerData['latitude'],markerData['longitude']); |
|
||||||
|
|
||||||
// create new marker |
|
||||||
var image = '/modules/gmap/images/'+markerData['image']+'.png'; |
|
||||||
|
|
||||||
if (markerData['img_title'] != '/modules/gmap/img/no_image.png') |
|
||||||
{ldelim} |
|
||||||
var a_stimg = "<img style=\"margin: 0px 10px 0px 0px;\" src=\"/index.php?thumb="+markerData['img_title']+"&height=64&width=64&mode=f\">"; |
|
||||||
{rdelim} else {ldelim} |
|
||||||
var a_stimg = "<img style=\"margin: 0px 10px 10px 0px;\" src=\"/modules/gmap/img/no_image.png\">"; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
if (markerData['marker_cat_title'] != '') |
|
||||||
{ldelim} |
|
||||||
if (markerData['marker_cat_link'] == '/' || markerData['marker_cat_link'] == 'javascript:void(0);'){ldelim} |
|
||||||
var a_categ = "<li><a style=\"color:#828282; font-size:11px; text-decoration:none;\" onmouseover=\"this.style.color='#181818';\" onmouseout=\"this.style.color='#828282';\" href=\""+markerData['marker_cat_link']+"\">"+markerData['marker_cat_title']+"</a></li>"; |
|
||||||
{rdelim} |
|
||||||
else {ldelim} |
|
||||||
var a_categ = "<li><a style=\"color:#828282; font-size:11px; text-decoration:none;\" onmouseover=\"this.style.color='#181818';\" onmouseout=\"this.style.color='#828282';\" href=\"/"+markerData['marker_cat_link']+"\">"+markerData['marker_cat_title']+"</a></li>"; |
|
||||||
{rdelim} |
|
||||||
{rdelim} |
|
||||||
else |
|
||||||
{ldelim} |
|
||||||
var a_categ=''; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
|
|
||||||
if (markerData['title'] != '') |
|
||||||
{ldelim} |
|
||||||
if (markerData['title_link'] == '/' || markerData['title_link'] == 'javascript:void(0);'){ldelim} |
|
||||||
var a_title = "<li><a style=\"color:#181818; font-size:18px; text-decoration:none; border-bottom:2px solid;\" onmouseover=\"this.style.color='#FF6600';\" onmouseout=\"this.style.color='#181818';\" href=\""+markerData['title_link']+"\"><strong>"+markerData['title']+"</strong></a></li>"; |
|
||||||
{rdelim} |
|
||||||
else {ldelim} |
|
||||||
var a_title = "<li><a style=\"color:#181818; font-size:18px; text-decoration:none; border-bottom:2px solid;\" onmouseover=\"this.style.color='#FF6600';\" onmouseout=\"this.style.color='#181818';\" href=\"/"+markerData['title_link']+"\"><strong>"+markerData['title']+"</strong></a></li>"; |
|
||||||
{rdelim} |
|
||||||
{rdelim} |
|
||||||
else |
|
||||||
{ldelim} |
|
||||||
var a_title=''; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
|
|
||||||
if (markerData['marker_street'] != '') |
|
||||||
{ldelim} |
|
||||||
var a_city = "<li><span style=\"font-size:12px; color:#68809B;\">"+markerData['marker_city']+", "+markerData['marker_street']+", "+markerData['marker_building']+"</span></li>"; |
|
||||||
{rdelim} |
|
||||||
else |
|
||||||
{ldelim} |
|
||||||
var a_city=''; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
if (markerData['marker_dopfield'] != '') |
|
||||||
{ldelim} |
|
||||||
var a_dopfield = "<li><div style=\"max-width:280px; white-space: normal !important; color:#828282;\">"+markerData['marker_dopfield']+"</div></li>"; |
|
||||||
{rdelim} |
|
||||||
else |
|
||||||
{ldelim} |
|
||||||
var a_dopfield=''; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
|
|
||||||
if (markerData['marker_phone'] != '') |
|
||||||
{ldelim} |
|
||||||
var a_phone = "<li><img src=\"{$ABS_PATH}modules/gmap/img/phone.png\">"+markerData['marker_phone']+"</li>"; |
|
||||||
{rdelim} |
|
||||||
else |
|
||||||
{ldelim} |
|
||||||
var a_phone=''; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
if (markerData['marker_www'] != '') |
|
||||||
{ldelim} |
|
||||||
var a_placeholders = new Array('http://www.', 'https://www.', 'http://', 'https://'); |
|
||||||
var a_www = "<li><a style=\"font-size:12px; color:#828282; text-decoration:none;\" onmouseover=\"this.style.color='#181818';\" onmouseout=\"this.style.color='#828282';\" href=\""+markerData['marker_www']+"\"><img src=\"{$ABS_PATH}modules/gmap/img/url.png\">"+str_replace(a_placeholders, 'www.', markerData['marker_www'])+"</a></li>"; |
|
||||||
{rdelim} |
|
||||||
else |
|
||||||
{ldelim} |
|
||||||
var a_www=''; |
|
||||||
{rdelim}; |
|
||||||
|
|
||||||
// ПОЗИЦИОНИРУЕМ ЭЛЕМЕНТЫ МАРКЕРА |
|
||||||
|
|
||||||
// div контейнер |
|
||||||
var a_divs = "<div style=\"white-space: nowrap; overflow:hidden; min-height: 64px; \">"; |
|
||||||
var a_dive = "</div>"; |
|
||||||
// список включающий категорию, ссылку на документ и адрес |
|
||||||
var a_uls = "<ul style=\"list-style:none; margin-top:-68px; margin-left: 30px;\">"; |
|
||||||
// список включающий телефон и вебсайт |
|
||||||
var a_ultws = "<ul style=\"margin-top:-8px; list-style:none; text-align: center;\">"; |
|
||||||
// закрывающий тег </ul> |
|
||||||
var a_ule = "</ul>"; |
|
||||||
|
|
||||||
// ФОРМИРУЕМ КОНТЕНТ МАРКЕРА |
|
||||||
var content = a_divs+a_stimg+a_uls+a_categ+a_title+a_city+a_dopfield+a_ule+a_ultws+a_phone+a_www+a_ule+a_dive; |
|
||||||
|
|
||||||
var marker = new google.maps.Marker({ldelim} |
|
||||||
id: markerData['id'], |
|
||||||
map: map{$gmap.id}, |
|
||||||
content: content, |
|
||||||
icon:image, |
|
||||||
position: myLatlng |
|
||||||
{rdelim}); |
|
||||||
|
|
||||||
// add marker to list used later to get content and additional marker information |
|
||||||
markerList{$gmap.id}[marker.id] = marker; |
|
||||||
|
|
||||||
// add event listener when marker is clicked |
|
||||||
// currently the marker data contain a dataurl field this can of course be done different |
|
||||||
google.maps.event.addListener(marker, 'click', function() {ldelim} |
|
||||||
|
|
||||||
// show marker when clicked |
|
||||||
showMarker{$gmap.id}(marker.id); |
|
||||||
{rdelim}); |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
/** |
|
||||||
* Show marker info window |
|
||||||
*/ |
|
||||||
function showMarker{$gmap.id}(markerId){ldelim} |
|
||||||
|
|
||||||
// get marker information from marker list |
|
||||||
var marker = markerList{$gmap.id}[markerId]; |
|
||||||
|
|
||||||
// check if marker was found |
|
||||||
if( marker ){ldelim} |
|
||||||
infowindow{$gmap.id}.setContent(marker.content); |
|
||||||
infowindow{$gmap.id}.open(map{$gmap.id},marker); |
|
||||||
{rdelim}else{ldelim} |
|
||||||
alert('Error marker not found: ' + markerId); |
|
||||||
{rdelim} |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
function str_replace ( search, replace, subject ) {ldelim} |
|
||||||
if(!(replace instanceof Array)){ldelim} |
|
||||||
replace=new Array(replace); |
|
||||||
if(search instanceof Array){ldelim} |
|
||||||
while(search.length>replace.length){ldelim} |
|
||||||
replace[replace.length]=replace[0]; |
|
||||||
{rdelim} |
|
||||||
{rdelim} |
|
||||||
{rdelim} |
|
||||||
if(!(search instanceof Array))search=new Array(search); |
|
||||||
while(search.length>replace.length){ldelim} |
|
||||||
replace[replace.length]=''; |
|
||||||
{rdelim} |
|
||||||
if(subject instanceof Array){ldelim} |
|
||||||
for(k in subject){ldelim} |
|
||||||
subject[k]=str_replace(search,replace,subject[k]); |
|
||||||
{rdelim} |
|
||||||
return subject; |
|
||||||
{rdelim} |
|
||||||
for(var k=0; k<search.length; k++){ldelim} |
|
||||||
var i = subject.indexOf(search[k]); |
|
||||||
while(i>-1){ldelim} |
|
||||||
subject = subject.replace(search[k], replace[k]); |
|
||||||
i = subject.indexOf(search[k],i); |
|
||||||
{rdelim} |
|
||||||
{rdelim} |
|
||||||
return subject; |
|
||||||
{rdelim} |
|
||||||
|
|
||||||
</script> |
|
||||||
|
|
Loading…
Reference in new issue