Browse Source

обновление модуля до версии 1.1.3b

master
root 7 years ago
parent
commit
6ac2272d6f
  1. 2
      README.md
  2. 24
      gmap/class.gmap.php
  3. 4
      gmap/js/data-files/index.php
  4. 1
      gmap/lang/en.txt
  5. 1
      gmap/lang/ru.txt
  6. 1
      gmap/lang/ua.txt
  7. 2
      gmap/module.php
  8. 264
      gmap/templates/map.tpl

2
README.md

@ -8,6 +8,8 @@
##### Changelog: ##### Changelog:
##### 08.10.2017 - обновление модуля до версии 1.1.3b - Удалена JS функция document.write(), все js-скрипты выненсены в файлы т подключаются в сеции head
##### 01.07.2017 - обновление модуля до версии 1.1.2b - Фикс подключения файлового менеджера elfinder - изменение путей lib/redactor/elfinder/inc/ на lib/redactor/elfinder/php/ ##### 01.07.2017 - обновление модуля до версии 1.1.2b - Фикс подключения файлового менеджера elfinder - изменение путей lib/redactor/elfinder/inc/ на lib/redactor/elfinder/php/
##### 12.06.2017 - обновление модуля до версии 1.1.1b - Фикс подключения файлового менеджера elfinder - изменение путей lib/redactor/elfinder/php/ на lib/redactor/elfinder/inc/ ##### 12.06.2017 - обновление модуля до версии 1.1.1b - Фикс подключения файлового менеджера elfinder - изменение путей lib/redactor/elfinder/php/ на lib/redactor/elfinder/inc/

24
gmap/class.gmap.php

@ -46,8 +46,20 @@ class Gmap
$AVE_Template->assign('gmap', $row_gs); $AVE_Template->assign('gmap', $row_gs);
$AVE_Template->assign('markers', json_encode($markers)); $AVE_Template->assign('markers', json_encode($markers));
$AVE_Template->assign('api_key', GOOGLE_MAP_API_KEY); $output = $AVE_Template->fetch($tpl_dir . 'map.tpl');
$AVE_Template->display($tpl_dir . 'map.tpl'); $GLOBALS['user_header']['module_unicalendar_'] = '<script src=" https://maps.googleapis.com/maps/api/js?key='.GOOGLE_MAP_API_KEY.'&amp;=initMap" type="text/javascript"></script>';
// Создаем js файл для календаря с названием dataXXX.js - где XXX = Id карты
$fdir = "/modules/gmap/js/data-files/";
mkdir(BASE_DIR . $fdir, 0777, true);
chmod(BASE_DIR . $fdir, 0777);
$df = fopen(BASE_DIR . "/modules/gmap/js/data-files/data".$gmap_id.".js", "w")
or die('You do not have write permission!');// ругаемся если нет прав на запись в директорию data-files !
flock($df,2);
fwrite($df, $output);
flock($df,3);
fclose($df);
$GLOBALS['user_header']['module_unicalendar_' . $gmap_id] = '<script src="'.ABS_PATH.'modules/gmap/js/data-files/data'.$gmap_id.'.js" type="text/javascript"></script>';
echo '<div id="myMap'.$gmap_id.'" style="height:'.$row_gs['gmap_height'].'; width:'.$row_gs['gmap_width'].';"></div>';
} }
/** /**
@ -633,7 +645,13 @@ class Gmap
$AVE_DB->Query("DELETE FROM " . PREFIX . "_module_gmap WHERE id = '" . $gmap_id . "'"); $AVE_DB->Query("DELETE FROM " . PREFIX . "_module_gmap WHERE id = '" . $gmap_id . "'");
$AVE_DB->Query("DELETE FROM " . PREFIX . "_module_gmap_markers WHERE gmap_id = '" . $gmap_id . "'"); $AVE_DB->Query("DELETE FROM " . PREFIX . "_module_gmap_markers WHERE gmap_id = '" . $gmap_id . "'");
// Удаляем js файл с данными из директории /modules/gmap/js/data-files/
$data_dir = "/modules/gmap/js/data-files";
$filename = BASE_DIR .$data_dir."/data".$gmap_id.".js";
if (file_exists($filename))
{
unlink($filename);
}
header('Location:index.php?do=modules&action=modedit&mod=gmap&moduleaction=1&amp;cp=' . SESSION); header('Location:index.php?do=modules&action=modedit&mod=gmap&moduleaction=1&amp;cp=' . SESSION);
exit; exit;
} }

4
gmap/js/data-files/index.php

@ -0,0 +1,4 @@
<?php
header('Location:/');
exit;
?>

1
gmap/lang/en.txt

@ -124,3 +124,4 @@ Gmap_mar_map_ret = "Закончить редактирование и верн
Gmap_mar_map_retry = "Вернуться к созданию маркеров" Gmap_mar_map_retry = "Вернуться к созданию маркеров"
Gmap_mar_editsave = "Сохранить изменения" Gmap_mar_editsave = "Сохранить изменения"
Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!" Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!"
Gmap_write_permission = "У вас нет прав на запись!"

1
gmap/lang/ru.txt

@ -124,3 +124,4 @@ Gmap_mar_map_ret = "Закончить редактирование и верн
Gmap_mar_map_retry = "Вернуться к созданию маркеров" Gmap_mar_map_retry = "Вернуться к созданию маркеров"
Gmap_mar_editsave = "Сохранить изменения" Gmap_mar_editsave = "Сохранить изменения"
Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!" Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!"
Gmap_write_permission = "У вас нет прав на запись!"

1
gmap/lang/ua.txt

@ -124,3 +124,4 @@ Gmap_mar_map_ret = "Закончить редактирование и верн
Gmap_mar_map_retry = "Вернуться к созданию маркеров" Gmap_mar_map_retry = "Вернуться к созданию маркеров"
Gmap_mar_editsave = "Сохранить изменения" Gmap_mar_editsave = "Сохранить изменения"
Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!" Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!"
Gmap_write_permission = "У вас нет прав на запись!"

2
gmap/module.php

@ -14,7 +14,7 @@ if (defined('ACP'))
{ {
$modul['ModuleName'] = 'GMap'; $modul['ModuleName'] = 'GMap';
$modul['ModuleSysName'] = 'gmap'; $modul['ModuleSysName'] = 'gmap';
$modul['ModuleVersion'] = '1.1.2b'; $modul['ModuleVersion'] = '1.1.3b';
$modul['ModuleDescription'] = 'Gmap<br/>Для того, чтобы осуществить просмотр карты, необходимо разместить системный тег <strong>[mod_gmap:XXX]</strong> в теле какого-либо документа'; $modul['ModuleDescription'] = 'Gmap<br/>Для того, чтобы осуществить просмотр карты, необходимо разместить системный тег <strong>[mod_gmap:XXX]</strong> в теле какого-либо документа';
$modul['ModuleAutor'] = 'OcPh | Project Manager Duncan | Upgrade module 2016-2017 Repellent'; $modul['ModuleAutor'] = 'OcPh | Project Manager Duncan | Upgrade module 2016-2017 Repellent';
$modul['ModuleCopyright'] = '&copy; 2016-2017 AVE.cms Team'; $modul['ModuleCopyright'] = '&copy; 2016-2017 AVE.cms Team';

264
gmap/templates/map.tpl

@ -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}',
'&amp;=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…
Cancel
Save