From 999081d37320c34200689dd959ed483b7a6771e1 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 18 Feb 2017 22:35:39 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BC=D0=BE=D0=B4=D1=83=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=B4=D0=BE=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D0=B8=201.0.8b?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gmap/class.gmap.php | 239 ++++++++++- gmap/fm.gmap.php | 491 ++++++++++++++++++++++ gmap/img/no_image.png | Bin 0 -> 3983 bytes gmap/img/phone.png | Bin 0 -> 326 bytes gmap/img/url.png | Bin 0 -> 457 bytes gmap/js/filemanager_gmap.js | 22 + gmap/js/filemanager_template.js | 22 + gmap/lang/ru.txt | 96 ++++- gmap/module.php | 226 +++++++++- gmap/sql.php | 34 +- gmap/templates/admin_gmap_category.tpl | 170 ++++++++ gmap/templates/admin_gmap_edit_marker.tpl | 293 +++++++++++++ gmap/templates/admin_gmap_markers.tpl | 395 +++++++++++++---- gmap/templates/map.tpl | 142 ++++++- 14 files changed, 2012 insertions(+), 118 deletions(-) create mode 100644 gmap/fm.gmap.php create mode 100644 gmap/img/no_image.png create mode 100644 gmap/img/phone.png create mode 100644 gmap/img/url.png create mode 100644 gmap/js/filemanager_gmap.js create mode 100644 gmap/js/filemanager_template.js create mode 100644 gmap/templates/admin_gmap_category.tpl create mode 100644 gmap/templates/admin_gmap_edit_marker.tpl diff --git a/gmap/class.gmap.php b/gmap/class.gmap.php index 8106e64..d9fc3b2 100644 --- a/gmap/class.gmap.php +++ b/gmap/class.gmap.php @@ -54,6 +54,167 @@ class Gmap * ФУНКЦИИ АДМИНИСТРАТИВНОЙ ЧАСТИ */ + + /** + * КАТЕГОРИИ - СОЗДАНИЕ - ДОБАВЛЕНИЕ - РЕДАКТИРОВАНИЕ + */ + + + // Просмотр существующих категорий в админ панели + + function gmapCategoryShow($tpl_dir) + { + global $AVE_DB, $AVE_Template; + $gcats = array(); + $sql = $AVE_DB->Query(" + SELECT * + FROM " . PREFIX . "_module_gmap_category + + "); + //$row_gcat = $sql->FetchRow(); + while($row = $sql->FetchAssocArray()) + { + array_push($gcats, $row); + } + + + + + + $AVE_Template->assign('gcats', $gcats); + $AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'admin_gmap_category.tpl')); + + } + + // Редактирование маркеров + + function gmapMarkerEdit($tpl_dir, $id) + { + global $AVE_DB, $AVE_Template; + $gmarkers = array(); + $sql = $AVE_DB->Query(" + SELECT * + FROM " . PREFIX . "_module_gmap_markers + WHERE id = '" . (int)$id. "' + "); + + while($row = $sql->FetchAssocArray()) + { + array_push($gmarkers, $row); + } + + $gcats = array(); + $sql = $AVE_DB->Query(" + SELECT * + FROM " . PREFIX . "_module_gmap_category + + "); + //$row_gcat = $sql->FetchRow(); + while($row = $sql->FetchAssocArray()) + { + array_push($gcats, $row); + } + + + $AVE_Template->assign('gcats', $gcats); + + $AVE_Template->assign('gmarkers', $gmarkers); + $AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'admin_gmap_edit_marker.tpl')); + + } + + // Сохранение отредактированного маркера + + function gmapMarkerEditSave($id){ + if (isset($_POST['e_marker'])) + { + global $AVE_DB; + + + $markerDataE = $_POST['e_marker']; + $sql = "UPDATE " . PREFIX . "_module_gmap_markers + SET + id = '" . $markerDataE['id'] . "', + gmap_id = '" . $markerDataE['gmap_id'] . "', + latitude = '" . $markerDataE['latitude'] . "', + longitude = '" . $markerDataE['longitude'] . "', + title = '" . $markerDataE['title'] . "', + title_link = '" . $markerDataE['title_link'] . "', + marker_cat_id = '" . $markerDataE['marker_cat_id'] . "', + marker_cat_title = '" . $markerDataE['marker_cat_title'] . "', + marker_cat_link = '" . $markerDataE['marker_cat_link'] . "', + img_title = '" . $markerDataE['img_title'] . "', + marker_city = '" . $markerDataE['marker_city'] . "', + marker_street = '" . $markerDataE['marker_street'] . "', + marker_building = '" . $markerDataE['marker_building'] . "', + marker_dopfield = '" . $markerDataE['marker_dopfield'] . "', + marker_phone = '" . $markerDataE['marker_phone'] . "', + marker_www = '" . $markerDataE['marker_www'] . "', + image = '" . $markerDataE['image']. "' + WHERE id = '" . (int)$id. "' + "; + $AVE_DB->Query($sql); + //$markerDataE['id'] = $AVE_DB->InsertId(); + + echo json_encode($markerDataE); + exit; + } + + } + + // Добавление и сохранение новых категорий в админ панели модуля и вывод категории при создании + + function gmapCategoryNewAdd(){ + if (isset($_POST['category'])) + { + global $AVE_DB; + + + $categoryData = $_POST['category']; + $sql = " + INSERT + INTO " . PREFIX . "_module_gmap_category + SET + id = '', + gcat_title = '" . $categoryData['gcatnewadd'] . "', + gcat_link = '" . $categoryData['gct_link'] . "' + "; + $AVE_DB->Query($sql); + $categoryData['id'] = $AVE_DB->InsertId(); + + $sql = $AVE_DB->Query(" + SELECT gcat_title + FROM " . PREFIX . "_module_gmap_category + ORDER BY id DESC + LIMIT 1 + "); + $row_gcat = $sql->FetchRow(); + $categoryData['gcat_title'] = $row_gcat->gcat_title; + echo json_encode($categoryData); + exit; + } + + } + + /** + * Удаление категории + * + * @param int $id - идентификатор категории + */ + + function gmapCategoryDel($id){ + global $AVE_DB; + + $sql = "DELETE FROM " . PREFIX . "_module_gmap_category WHERE id = '" . (int)$id. "'"; + $AVE_DB->Query("DELETE FROM " . PREFIX . "_module_gmap_markers WHERE marker_cat_id = '" . (int)$id . "'"); + + $AVE_DB->Query($sql); + echo $id; + exit; + + + } + /** * Просмотр маркеров карты и добавление новых в админке * @@ -143,9 +304,25 @@ class Gmap $page_nav = ''; } + $gcats = array(); + $sql = $AVE_DB->Query(" + SELECT * + FROM " . PREFIX . "_module_gmap_category - - $AVE_Template->assign('api_key', GOOGLE_MAP_API_KEY); + "); + //$row_gcat = $sql->FetchRow(); + while($row = $sql->FetchAssocArray()) + { + array_push($gcats, $row); + } + + + + + + $AVE_Template->assign('gcats', $gcats); + $AVE_Template->assign('gcats_id', $row['id']); + $AVE_Template->assign('api_key', GOOGLE_MAP_API_KEY); $AVE_Template->assign('page_nav', $page_nav); $AVE_Template->assign('gmap', $row_gs); $AVE_Template->assign('gmap_id', $row_gs['id']); @@ -239,6 +416,17 @@ class Gmap latitude = '" . $markerData['latitude'] . "', longitude = '" . $markerData['longitude'] . "', title = '" . $markerData['title'] . "', + title_link = '" . $markerData['title_link'] . "', + marker_cat_id = '" . $markerData['marker_cat_id'] . "', + marker_cat_title = '" . $markerData['marker_cat_title'] . "', + marker_cat_link = '" . $markerData['marker_cat_link'] . "', + img_title = '" . $markerData['img_title'] . "', + marker_city = '" . $markerData['marker_city'] . "', + marker_street = '" . $markerData['marker_street'] . "', + marker_building = '" . $markerData['marker_building'] . "', + marker_dopfield = '" . $markerData['marker_dopfield'] . "', + marker_phone = '" . $markerData['marker_phone'] . "', + marker_www = '" . $markerData['marker_www'] . "', image = '" . $markerData['image']. "' "; $AVE_DB->Query($sql); @@ -307,11 +495,48 @@ class Gmap WHERE id = '" . $id . "' "); $row_gs = $sql->FetchRow(); - - echo $row_gs->title; + echo "
"; + if ($row_gs->img_title != '/modules/gmap/img/no_image.png'){ + echo ""; + } else { + echo ""; + } + echo ""; + + + + + + echo ""; + } + echo "
"; exit; - - } /** @@ -412,8 +637,6 @@ class Gmap header('Location:index.php?do=modules&action=modedit&mod=gmap&moduleaction=1&cp=' . SESSION); exit; } - - } ?> \ No newline at end of file diff --git a/gmap/fm.gmap.php b/gmap/fm.gmap.php new file mode 100644 index 0000000..48b03fb --- /dev/null +++ b/gmap/fm.gmap.php @@ -0,0 +1,491 @@ +"; + print_r($o); +} +function logger($cmd, $voumes, $result) { + $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." "; + + if (isset($voumes[1])) { + $log .= $voumes[1]->id()." "; + } + switch ($cmd) { + case "mkdir": + case "mkfile": + case "upload": + $log .= $result["added"][0]["name"]; + break; + case "rename": + $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"]; + break; + case "duplicate": + $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"]; + break; + case "rm": + $log .= $result["removedDetails"][0]["name"]; + break; + default: + $log = ""; + } + if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) { + $fp = fopen("../../../../cache/redactor/log.txt", "a"); + if ($fp) { + fwrite($fp, $log."\n"); + fclose($fp); + } + } + return $result; +} +class elFinderSimpleLogger { + public function write($cmd, $voumes, $result) { + $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." "; + + if (isset($voumes[1])) { + $log .= $voumes[1]->id()." "; + } + switch ($cmd) { + case "mkdir": + case "mkfile": + case "upload": + case "paste": + $log .= $result["added"][0]["name"]; + break; + case "rename": + $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"]; + break; + case "duplicate": + $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"]; + break; + case "rm": + $log .= $result["removedDetails"][0]["name"]; + break; + default: + $log = ""; + } + if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) { + $fp = fopen("../../../../cache/redactor/log.txt", "a"); + if ($fp) { + fwrite($fp, $log."\n"); + fclose($fp); + } + } + return $result; + } +} // END class +function access($attr, $path, $data, $volume) { + return strpos(basename($path), ".") === 0 + ? !($attr == "read" || $attr == "write") + : $attr == "read" || $attr == "write"; +} +class elFinderTestACL { + public function fsAccess($attr, $path, $data, $volume) { + + if ($volume->name() == "localfilesystem") { + return strpos(basename($path), ".") === 0 + ? !($attr == "read" || $attr == "write") + : $attr == "read" || $attr == "write"; + } + return true; + } +} +$acl = new elFinderTestACL(); +function validName($name) { + return strpos($name, ".") !== 0; +} +$opts = array( + "locale" => "en_US.UTF-8", + "bind" => array( + "mkdir mkfile rename duplicate upload rm paste" => array(new elFinderSimpleLogger(), "write"), + ), + "debug" => true, + "roots" => array( + array( + // "id" => "x5", + "driver" => "LocalFileSystem", // driver for accessing file system (REQUIRED) + "path" => "../../../../".UPLOAD_DIR, // path to files (REQUIRED) + "URL" => "/".UPLOAD_DIR."/", // URL to files (REQUIRED) + "alias" => UPLOAD_DIR, + "disabled" => array(), + "acceptedName" => "validName", + "uploadAllow" => array("all"), + "uploadDeny" => array("all"), + "uploadOrder" => "deny,allow", + "uploadOverwrite" => false, + "uploadMaxSize" => "128m", + "copyOverwrite" => false, + "copyJoin" => true, + "mimeDetect" => "internal", + "tmbCrop" => false, + "imgLib" => "gd", + "utf8fix" => true, + "attributes" => array( + array( + "pattern" => "/^\/\./", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => true + ), + array( + "pattern" => "/.tmb/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.php$/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.quarantine/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.htaccess$/", + "write" => false, + "locked" => false, + "hidden" => true + ), + array( + "pattern" => "/.uploader/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.temp/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ) + ), + ) + ) +); +header("Access-Control-Allow-Origin: *"); +$connector = new elFinderConnector(new elFinder($opts), true); +$connector->run(); +?>'; + + $gfo = fopen(BASE_DIR . "/lib/redactor/elfinder/php/connector_module_gmap.php", "w"); + flock($gfo,2); + fwrite($gfo, $gmfmen); + flock($gfo,3); + fclose($gfo); + chmod(BASE_DIR . "/lib/redactor/elfinder/php/connector_module_gmap.php", 0755); + +} + +if ($fmgmap == 'dir_uplgmi') +{ + $gmfmen = '"; + print_r($o); +} +function logger($cmd, $voumes, $result) { + $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." "; + + if (isset($voumes[1])) { + $log .= $voumes[1]->id()." "; + } + switch ($cmd) { + case "mkdir": + case "mkfile": + case "upload": + $log .= $result["added"][0]["name"]; + break; + case "rename": + $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"]; + break; + case "duplicate": + $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"]; + break; + case "rm": + $log .= $result["removedDetails"][0]["name"]; + break; + default: + $log = ""; + } + if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) { + $fp = fopen("../../../../cache/redactor/log.txt", "a"); + if ($fp) { + fwrite($fp, $log."\n"); + fclose($fp); + } + } + return $result; +} +class elFinderSimpleLogger { + public function write($cmd, $voumes, $result) { + $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." "; + + if (isset($voumes[1])) { + $log .= $voumes[1]->id()." "; + } + switch ($cmd) { + case "mkdir": + case "mkfile": + case "upload": + case "paste": + $log .= $result["added"][0]["name"]; + break; + case "rename": + $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"]; + break; + case "duplicate": + $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"]; + break; + case "rm": + $log .= $result["removedDetails"][0]["name"]; + break; + default: + $log = ""; + } + if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) { + $fp = fopen("../../../../cache/redactor/log.txt", "a"); + if ($fp) { + fwrite($fp, $log."\n"); + fclose($fp); + } + } + return $result; + } +} // END class +function access($attr, $path, $data, $volume) { + return strpos(basename($path), ".") === 0 + ? !($attr == "read" || $attr == "write") + : $attr == "read" || $attr == "write"; +} +class elFinderTestACL { + public function fsAccess($attr, $path, $data, $volume) { + + if ($volume->name() == "localfilesystem") { + return strpos(basename($path), ".") === 0 + ? !($attr == "read" || $attr == "write") + : $attr == "read" || $attr == "write"; + } + return true; + } +} +$acl = new elFinderTestACL(); +function validName($name) { + return strpos($name, ".") !== 0; +} +$opts = array( + "locale" => "en_US.UTF-8", + "bind" => array( + "mkdir mkfile rename duplicate upload rm paste" => array(new elFinderSimpleLogger(), "write"), + ), + "debug" => true, + "roots" => array( + array( + // "id" => "x5", + "driver" => "LocalFileSystem", // driver for accessing file system (REQUIRED) + "path" => "../../../../".UPLOAD_DIR, // path to files (REQUIRED) + "URL" => "/".UPLOAD_DIR."/", // URL to files (REQUIRED) + "alias" => UPLOAD_DIR, + "disabled" => array(), + "acceptedName" => "validName", + "uploadAllow" => array("all"), + "uploadDeny" => array("all"), + "uploadOrder" => "deny,allow", + "uploadOverwrite" => false, + "uploadMaxSize" => "128m", + "copyOverwrite" => false, + "copyJoin" => true, + "mimeDetect" => "internal", + "tmbCrop" => false, + "imgLib" => "gd", + "utf8fix" => true, + "attributes" => array( + array( + "pattern" => "/^\/\./", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => true + ), + array( + "pattern" => "/.tmb/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.php$/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.quarantine/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.htaccess$/", + "write" => false, + "locked" => false, + "hidden" => true + ), + array( + "pattern" => "/.uploader/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.temp/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ) + ), + ), + array( + // "id" => "x5", + "driver" => "LocalFileSystem", // driver for accessing file system (REQUIRED) + "path" => "../../../../modules/gmap/images", // path to files (REQUIRED) + "URL" => "/modules/gmap/images/", // URL to files (REQUIRED) + "alias" => "modules/gmap/images", + "disabled" => array(), + "acceptedName" => "validName", + "uploadAllow" => array("all"), + "uploadDeny" => array("all"), + "uploadOrder" => "deny,allow", + "uploadOverwrite" => false, + "uploadMaxSize" => "128m", + "copyOverwrite" => false, + "copyJoin" => true, + "mimeDetect" => "internal", + "tmbCrop" => false, + "imgLib" => "gd", + "utf8fix" => true, + "attributes" => array( + array( + "pattern" => "/^\/\./", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => true + ), + array( + "pattern" => "/.tmb/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.php$/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.quarantine/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.htaccess$/", + "write" => false, + "locked" => false, + "hidden" => true + ), + array( + "pattern" => "/.uploader/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.temp/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ) + ), + ), + ) +); +header("Access-Control-Allow-Origin: *"); +$connector = new elFinderConnector(new elFinder($opts), true); +$connector->run(); +?>'; + + $gfo = fopen(BASE_DIR . "/lib/redactor/elfinder/php/connector_module_gmap.php", "w"); + flock($gfo,2); + fwrite($gfo, $gmfmen); + flock($gfo,3); + fclose($gfo); + chmod(BASE_DIR . "/lib/redactor/elfinder/php/connector_module_gmap.php", 0755); +} + +if ($fmgmap != 'dir_upl' || $fmgmap != 'dir_uplgmi') +{ + header('Location:/index.php'); + exit; +} + + +?> \ No newline at end of file diff --git a/gmap/img/no_image.png b/gmap/img/no_image.png new file mode 100644 index 0000000000000000000000000000000000000000..4b8a39a84494d6facbe8cab11133d8108e8c23a1 GIT binary patch literal 3983 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 X|CY|Ncme9xFS4CA-s+YmA^HCRfH2~r literal 0 HcmV?d00001 diff --git a/gmap/img/phone.png b/gmap/img/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..27c1366a3ccd63c15e60718c18449d83ea30262d GIT binary patch literal 326 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4nJ za0`Jjz>#>N;e1@t*fz`G&>0M>}>niTlrtd|k*aAXt0m;z9Fi zr46}aY)d8lUL6T-aGiPI@UG;9ner9KB>nyyG4cc^NC_S+5}FwADZ6r){I^!By3|Iyer>d#P0j}!}%>t^Z4{-O1;=m Q0{z3_>FVdQ&MBb@0DMb!kpKVy literal 0 HcmV?d00001 diff --git a/gmap/img/url.png b/gmap/img/url.png new file mode 100644 index 0000000000000000000000000000000000000000..cedef236accaa2b1be198c068a6bf46109a05ab2 GIT binary patch literal 457 zcmV;)0XF`LP)L)4xmBQ547Vmzop}VG0eY5TTJjf~TRu)kQZ!r?!?j z(9ja~R|IX!5pfc6jG%wO7M)xi+)Q!u8LCC;DR~;a!Z-aI!E>g2?>V10pL5T>UF~*T zC(+%J8aL_=BccbRcz~bS&&;oNwOyB6h=?&vW1&C>uz>?CW@fWm-+f6ujybGj6Yp`1 zCO+X!MD*7JBBB@1kvPK%-r+umGIIwX@!~oMlem?c-_XKHvEPf?h#0~)MkAuH4lsg8 z5%Id%eTkbT_ZzLuytuHz3sH3nCz!zxjQKm7_+F-Sy8y2^*e&~EOyCu^oR9HwS${!4 z4zB<*^8jlYMDIe500000NkvXXu0mjf&m+G( literal 0 HcmV?d00001 diff --git a/gmap/js/filemanager_gmap.js b/gmap/js/filemanager_gmap.js new file mode 100644 index 0000000..cec478a --- /dev/null +++ b/gmap/js/filemanager_gmap.js @@ -0,0 +1,22 @@ +$(function loadFM() { + // отдельный файловый менеджер + $('#finder').elfinder({ + url : ave_path+'lib/redactor/elfinder/php/connector_module_gmap.php', + lang : 'ru', + height : 300, + title : 'Файловый менеджер' + }).elfinder('instance'); + + $('#elFinder a').hover( + function () { + $('#elFinder a').animate({ + 'background-position' : '0 -45px' + }, 300); + }, + function () { + $('#elFinder a').delay(400).animate({ + 'background-position' : '0 0' + }, 300); + } + ); +}); diff --git a/gmap/js/filemanager_template.js b/gmap/js/filemanager_template.js new file mode 100644 index 0000000..3819291 --- /dev/null +++ b/gmap/js/filemanager_template.js @@ -0,0 +1,22 @@ +$(function() { + // отдельный файловый менеджер + $('#finder').elfinder({ + url : ave_path+'lib/redactor/elfinder/php/connector_template.php', + lang : 'ru', + height : 500, + title : 'Файловый менеджер' + }).elfinder('instance'); + + $('#elFinder a').hover( + function () { + $('#elFinder a').animate({ + 'background-position' : '0 -45px' + }, 300); + }, + function () { + $('#elFinder a').delay(400).animate({ + 'background-position' : '0 0' + }, 300); + } + ); +}); diff --git a/gmap/lang/ru.txt b/gmap/lang/ru.txt index 5353f56..fe0f188 100644 --- a/gmap/lang/ru.txt +++ b/gmap/lang/ru.txt @@ -18,16 +18,19 @@ CpTag = "Тег в системе" GmapMainAddress = "Адрес для центрирования карты" SetMarkerOnClick = "Создавать маркер по клику" GmapZoom = "Масштаб" -AddMarkers = "Действия с маркерами - добавить, удалить, изменить или удалить описание маркеров" -AddMarkerButton = "Добавить маркер" +AddMarkers = "Установка маркеров на карту" +AddMarkerButton = "Добавить и сохранить маркер" MarkerParam = "Параметры маркера" -MarkerSetVal = "Значения" -MarkerAdress = "Адрес" -MarkerDesc = "Описание" +MarkerSetVal = "Действия:" +MarkerAdress = "Местоположение *" +MarkerDesc = "Категория маркера" +Markercat_h = "Выберите категорию из выпадающего списка и нажмите Применить" +Markerimg_t = "Добавьте миниатюру изображения объекта маркера предпочтительны размеры 64х64px" Save = "Сохранить" Delete = "Удалить" -MarkerImage = "Изображение" -MarkerView = "Настройки маркеров на карте" +MarkerImage = "Изображение - маркер на карте *" +MarkerView = "Установка маркеров на карту" +MarkerAddmap = "Создание маркеров" EditGmap = "Редактирование настроек карты" DeleteGmap = "Удалить карту" DeleteGmapC = "Вы уверены, что хотите удалить данную карту?" @@ -45,6 +48,7 @@ SaveSuccess = "Успешно сохранены" SaveError = "Вызвали ошибку, попробуйте сохранить еще раз..." Gmap_edit = "Перейти в раздел управления маркерами" Gmap_esave = "Сохранить изменения" +Gmap_return_page = "На предыдущую страницу" Gmap_return = "Вернуться к списку карт" Gmap_maredit = "Управление маркерами" Gmap_mapedit = "Настройки карты" @@ -52,13 +56,71 @@ Gmap_marcount_no = "Маркеров нет" Gmap_marcount_info = "Количество маркеров на карте" Gmap_marcount_yes = "Маркеров на карте: " Gmap_copy_buf = "Скопировать тег в буфер обмена" -Gmap_edi_mark ="Настройки маркеров на карте" -Gmap_sv_mark ="Маркер" -Gmap_sv_mark1 ="успешно создан и сохранен" -Gmap_sv_mark2 ="Данные успешно сохранены" -Gmap_sv_mark3 ="выбранный маркер успешно удален!" -Gmap_api_key_no ="В системе не установлен GOOGLE MAP API KEY. Пожалуйста, установите ключ в системных настройках." -Gmap_api_key ="Используется GOOGLE MAP API KEY : " -Gmap_link_set_api_key ="Перейти в системные настройки и установить GOOGLE MAP API KEY
После установки ключа в систему, Вы можете начать работу с модулем." -Gmap_link_get_api_key ="Перейти в Google Maps API и получить API KEY" -Gmap_link_get_api_info ="Переход по внешней ссылке, откроется в новом окне." \ No newline at end of file +Gmap_edi_mark = "Установка маркеров на карту" +Gmap_sv_mark = "Маркер" +Gmap_sv_mark1 = "успешно создан и сохранен" +Gmap_sv_mark2 = "Данные успешно сохранены" +Gmap_sv_mark3 = "выбранный маркер успешно удален!" +Gmap_api_key_no = "В системе не установлен GOOGLE MAP API KEY. Пожалуйста, установите ключ в системных настройках." +Gmap_api_key = "Используется GOOGLE MAP API KEY : " +Gmap_link_set_api_key = "Перейти в системные настройки и установить GOOGLE MAP API KEY
После установки ключа в систему, Вы можете начать работу с модулем." +Gmap_link_get_api_key = "Перейти в Google Maps API и получить API KEY" +Gmap_link_get_api_info = "Переход по внешней ссылке, откроется в новом окне." +Gmap_fm_inf = "Настройки файлового менеджера. Клик по кнопке - запомнить и подключить только директорию" +Gmap_fm_inf1 = "UPLOADS" +Gmap_fm_inf2 = "или директории" +Gmap_fm_inf3 = "UPLOADS + modules/gmap/images" +Gmap_fm = "Файловый менеджер" +Gmap_img_title = "Изображение объекта маркера" +Gmap_load_img_title = "Посмотреть на сервере" +Gmap_doc_title = "Документ маркера" +Gmap_btn_doc_title = "Связать с документом" +Gmap_link_single_marker = "Ссылка на документ, принадлежащий этому маркеру. Например: маркер на карте указывает на Московский зоопарк, далее вы создаете (или уже создали) документ Московский зоопарк, затем выбираете этот документ кликом по кнопке Связать с документом. Также вы можете просто ввести название с клавиатуры в это поле." +Gmap_link_single_image = "Изображение объекта маркера. Корневой директорией для хранения изображений является директория UPLOADS - в ней вы можете с помощью файлового менеджера создавать поддиректории и хранить там файлы изображений. Помните, что , при выводе маркера на карте , размер изображения в нем , будет 64х64 пикселя." +Gmap_link_category = "Это поле доступно только для ввода значений из выпадающего списка!
Если вы хотите ввести здесь просто название, без ссылки на конкретный документ-категорию, перейдите в раздел 'Редактирование категорий' и создайте категорию с нужным вам названием и без ссылки на документ. После этого созданная вами категория будет доступна в выпадающем списке." +Gmap_cat_sel = "Выбрать категорию" +Gmap_cat_create = "Создать категории" +Gmap_cat_edit = "Редактировать категории" +Gmap_cat_manage = "Управление категориями" +Gmap_cat_list = "Список категорий" +Gmap_cat_add = "Добавить категорию" +Gmap_cat_cs = "Выберите категорию!" +Gmap_cat_cnf = "Применить" +Gmap_cat_name = "Название категории" +Gmap_cat_save = "Сохранить" +Gmap_cat_nca = "Добавлена новая категория:" +Gmap_cat_i = "Категория" +Gmap_cat_in = "Успешно создана и сохранена" +Gmap_cat_ind = "категория и принадлежащие ей маркеры успешно удалены." +Gmap_cat_del = "Удалить категорию" +Gmap_cat_delconf = "Вы действительно хотите удалить категорию?" +Gmap_warndelcat1 = "В данном разделе, вы можете создавать или удалять категории к которым принадлежат маркеры.
Не забывайте, что, при удалении категории, все маркеры, принадлежащие данной категории, будут так же удалены." +Gmap_cat_inf_dop = "Вывести при клике на маркер следующую информацию:" +Gmap_cat_inf_t = "Город или населенный пункт *" +Gmap_cat_inf_tn = "Город или населенный пункт" +Gmap_cat_inf_tp = "Москва" +Gmap_cat_inf_stp = "Тверская" +Gmap_cat_inf_blp = "15, 77" +Gmap_cat_inf_dopfi = "Дополнительная информация" +Gmap_cat_inf_telp = "В произвольном формате" +Gmap_cat_inf_tt = "Это поле обязательно для заполнения !
" +Gmap_cat_inf_st = "Улица (это поле является ключом)" +Gmap_cat_inf_bi = "Строение, офис" +Gmap_cat_inf_ap = "Дополнительная информация" +Gmap_cat_inf_phone = "Телефон" +Gmap_cat_inf_www = "Вебсайт" +Gmap_cat_inf_wwwf = "Формат поля, например https://mysite.ru" +Gmap_cat_inf_wwwi = "Обязательно указывайте протокол
http:// или https://" +Gmap_not_mark_a = "Выберите изображение маркера!" +Gmap_not_mark_all = "Маркер не может быть сохранен, заполните обязательные поля: ' Местоположение '' и ' Город или населенный пункт! '" +Gmap_not_mark_t = "Маркер не может быть сохранен, заполните обязательное поле ' Город или населенный пункт! '" +Gmap_narker_edit = "Редактировать" +Gmap_narker_edit_not = "Это поле недоступно для редактирования" +MarkerAdress_not = "Местоположение" +MarkerAdress_e_brc = "Редактирование маркера ID " +MarkerAdress_m_e = "Раздел редактирования маркера" +Gmap_field_reset = "Сбросить значения всех полей" +Gmap_mar_map_ret = "Закончить редактирование и вернуться на карту" +Gmap_mar_map_retry = "Вернуться к созданию маркеров" +Gmap_mar_editsave = "Сохранить изменения" +Gmap_mar_key_street = "Это поле является ключом! Если оно заполнено - в маркере будет включен вывод строки, состоящей из полей: Город или населенный пункт, Улица, Строение-офис. Если это поле (Улица) незаполнено - перечисленные поля выводиться не будут!" diff --git a/gmap/module.php b/gmap/module.php index 91592c2..4a1c8a1 100644 --- a/gmap/module.php +++ b/gmap/module.php @@ -14,10 +14,10 @@ if (defined('ACP')) { $modul['ModuleName'] = 'GMap'; $modul['ModuleSysName'] = 'gmap'; - $modul['ModuleVersion'] = '1.0.6'; + $modul['ModuleVersion'] = '1.0.8b'; $modul['ModuleDescription'] = 'Gmap
Для того, чтобы осуществить просмотр карты, необходимо разместить системный тег [mod_gmap:XXX] в теле какого-либо документа'; - $modul['ModuleAutor'] = 'OcPh upgrade Repellent'; - $modul['ModuleCopyright'] = '© 2016 OcPh & AVE.cms Team'; + $modul['ModuleAutor'] = 'OcPh | Project Manager Duncan | Upgrade module Repellent'; + $modul['ModuleCopyright'] = '© 2016-2017 OcPh & AVE.cms Team'; $modul['ModuleIsFunction'] = 1; $modul['ModuleAdminEdit'] = 1; $modul['ModuleFunction'] = 'mod_gmap'; @@ -67,8 +67,29 @@ if (defined('ACP') && !empty($_REQUEST['moduleaction'])) break; case 'show': // Просмотр маркеров карты + $_SESSION['use_editor'] = get_settings('use_editor'); $gmap->gmapMarkersShow($tpl_dir, intval($_REQUEST['id'])); break; + + case 'showcategory': // Просмотр категорий + $gmap->gmapCategoryShow($tpl_dir); + break; + case 'editmarker': // Редактирование маркера + $gmap->gmapMarkerEdit($tpl_dir, intval($_REQUEST['id'])); + break; + + case 'saveeditmarker': // Сохранение отредактированного маркера + $gmap->gmapMarkerEditSave(intval($_REQUEST['id'])); + break; + + case 'addnewcategory': // Добавление новой категории + $gmap->gmapCategoryNewAdd(intval($_REQUEST['id'])); + break; + + case 'gcatdel': // Удаление категории + $gmap->gmapCategoryDel(intval($_REQUEST['id'])); + break; + case 'addmarker': // Добавление маркера $gmap->gmapMarkersAdd(intval($_REQUEST['id'])); break; @@ -97,5 +118,204 @@ if (defined('ACP') && !empty($_REQUEST['moduleaction'])) } } +// подключаем файловый менеджер проверяем , если файла нет - создаем, если есть ничего не делаем +$filename = BASE_DIR . '/lib/redactor/elfinder/php/connector_module_gmap.php'; +if (!file_exists($filename)) { +$gmfmen = '"; + print_r($o); +} +function logger($cmd, $voumes, $result) { + $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." "; + + if (isset($voumes[1])) { + $log .= $voumes[1]->id()." "; + } + switch ($cmd) { + case "mkdir": + case "mkfile": + case "upload": + $log .= $result["added"][0]["name"]; + break; + case "rename": + $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"]; + break; + case "duplicate": + $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"]; + break; + case "rm": + $log .= $result["removedDetails"][0]["name"]; + break; + default: + $log = ""; + } + if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) { + $fp = fopen("../../../../cache/redactor/log.txt", "a"); + if ($fp) { + fwrite($fp, $log."\n"); + fclose($fp); + } + } + return $result; +} +class elFinderSimpleLogger { + public function write($cmd, $voumes, $result) { + $log = $cmd.": [".date("d.m H:s")."] ".$voumes[0]->id()." "; + + if (isset($voumes[1])) { + $log .= $voumes[1]->id()." "; + } + switch ($cmd) { + case "mkdir": + case "mkfile": + case "upload": + case "paste": + $log .= $result["added"][0]["name"]; + break; + case "rename": + $log .= "from ".$result["removedDetails"][0]["name"]." to ".$result["added"][0]["name"]; + break; + case "duplicate": + $log .= "src: ".$result["src"]["name"]." copy: ".$result["added"][0]["name"]; + break; + case "rm": + $log .= $result["removedDetails"][0]["name"]; + break; + default: + $log = ""; + } + if ($log && is_dir("../../../../cache/redactor") || @mkdir("../../../../cache/redactor")) { + $fp = fopen("../../../../cache/redactor/log.txt", "a"); + if ($fp) { + fwrite($fp, $log."\n"); + fclose($fp); + } + } + return $result; + } +} // END class +function access($attr, $path, $data, $volume) { + return strpos(basename($path), ".") === 0 + ? !($attr == "read" || $attr == "write") + : $attr == "read" || $attr == "write"; +} +class elFinderTestACL { + public function fsAccess($attr, $path, $data, $volume) { + + if ($volume->name() == "localfilesystem") { + return strpos(basename($path), ".") === 0 + ? !($attr == "read" || $attr == "write") + : $attr == "read" || $attr == "write"; + } + return true; + } +} +$acl = new elFinderTestACL(); +function validName($name) { + return strpos($name, ".") !== 0; +} +$opts = array( + "locale" => "en_US.UTF-8", + "bind" => array( + "mkdir mkfile rename duplicate upload rm paste" => array(new elFinderSimpleLogger(), "write"), + ), + "debug" => true, + "roots" => array( + array( + // "id" => "x5", + "driver" => "LocalFileSystem", // driver for accessing file system (REQUIRED) + "path" => "../../../../".UPLOAD_DIR, // path to files (REQUIRED) + "URL" => "/".UPLOAD_DIR."/", // URL to files (REQUIRED) + "alias" => UPLOAD_DIR, + "disabled" => array(), + "acceptedName" => "validName", + "uploadAllow" => array("all"), + "uploadDeny" => array("all"), + "uploadOrder" => "deny,allow", + "uploadOverwrite" => false, + "uploadMaxSize" => "128m", + "copyOverwrite" => false, + "copyJoin" => true, + "mimeDetect" => "internal", + "tmbCrop" => false, + "imgLib" => "gd", + "utf8fix" => true, + "attributes" => array( + array( + "pattern" => "/^\/\./", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => true + ), + array( + "pattern" => "/.tmb/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.php$/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.quarantine/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/\.htaccess$/", + "write" => false, + "locked" => false, + "hidden" => true + ), + array( + "pattern" => "/.uploader/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ), + array( + "pattern" => "/.temp/", + "read" => false, + "write" => false, + "hidden" => true, + "locked" => false + ) + ), + ) + ) +); +header("Access-Control-Allow-Origin: *"); +$connector = new elFinderConnector(new elFinder($opts), true); +$connector->run(); +?>'; + $gfo = fopen(BASE_DIR . "/lib/redactor/elfinder/php/connector_module_gmap.php", "w"); + flock($gfo,2); + fwrite($gfo, $gmfmen); + flock($gfo,3); + fclose($gfo); + chmod(BASE_DIR . "/lib/redactor/elfinder/php/connector_module_gmap.php", 0755); +} + ?> \ No newline at end of file diff --git a/gmap/sql.php b/gmap/sql.php index 806156a..f5ef663 100644 --- a/gmap/sql.php +++ b/gmap/sql.php @@ -14,10 +14,11 @@ $module_sql_install = array(); $module_sql_deinstall = array(); - +$module_sql_update = array(); //Удаление модуля $module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_gmap;"; +$module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_gmap_category;"; $module_sql_deinstall[] = "DROP TABLE IF EXISTS CPPREFIX_module_gmap_markers;"; //Установка модуля @@ -32,14 +33,43 @@ $module_sql_install[] = "CREATE TABLE `CPPREFIX_module_gmap` ( PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;"; +$module_sql_install[] = "CREATE TABLE `CPPREFIX_module_gmap_category` ( + `id` int(10) unsigned NOT NULL auto_increment, + `gcat_title` varchar(255) NOT NULL default '', + `gcat_link` varchar(255) NOT NULL default '', + PRIMARY KEY (`id`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;"; + $module_sql_install[] = "CREATE TABLE `CPPREFIX_module_gmap_markers` ( `id` int(10) unsigned NOT NULL auto_increment, `gmap_id` int(10) unsigned NOT NULL default '0', + `marker_cat_id` int(10) unsigned NOT NULL default '0', `latitude` decimal(10,7) NOT NULL, `longitude` decimal(10,7) NOT NULL, - `title` varchar(255) NOT NULL, + `img_title` varchar(255) NOT NULL default '', + `title` varchar(255) NOT NULL default '', + `title_link` varchar(255) NOT NULL default '', + `marker_cat_title` varchar(255) NOT NULL default '', + `marker_cat_link` varchar(255) NOT NULL default '', + `marker_city` varchar(255) NOT NULL, + `marker_street` varchar(255) NOT NULL default '', + `marker_building` varchar(255) NOT NULL default '', + `marker_dopfield` varchar(255) NOT NULL default '', + `marker_phone` varchar(255) NOT NULL default '', + `marker_www` varchar(255) NOT NULL default '', `image` text NOT NULL, PRIMARY KEY (`id`), KEY `gmap_id` (`gmap_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 PACK_KEYS=0;"; + +$module_sql_update[] = " + UPDATE `CPPREFIX_module` + SET + ModuleAveTag = '" . $modul['ModuleAveTag'] . "', + ModulePHPTag = '" . $modul['ModulePHPTag'] . "', + ModuleVersion = '" . $modul['ModuleVersion'] . "' + WHERE + ModuleSysName = '" . $modul['ModuleSysName'] . "' + LIMIT 1; +"; ?> \ No newline at end of file diff --git a/gmap/templates/admin_gmap_category.tpl b/gmap/templates/admin_gmap_category.tpl new file mode 100644 index 0000000..b4770ce --- /dev/null +++ b/gmap/templates/admin_gmap_category.tpl @@ -0,0 +1,170 @@ +{literal} + +{/literal} +
{#ModName#}
+
+
+ {#Gmap_warndelcat1#} +
+
+ +
+
{#Gmap_cat_list#}
+ + + + + +{foreach from=$gcats item=gcat key=k} + +{if $k%4 == 3}{/if} +{/foreach} +
{$gcat.gcat_title}
+
+
+
+ + + + + + + +
{#Gmap_cat_add#} + +
+
+ + + + + + + + + diff --git a/gmap/templates/admin_gmap_edit_marker.tpl b/gmap/templates/admin_gmap_edit_marker.tpl new file mode 100644 index 0000000..41dbc6b --- /dev/null +++ b/gmap/templates/admin_gmap_edit_marker.tpl @@ -0,0 +1,293 @@ +{foreach from=$gmarkers item=gmarker} +
{#ModName#} - {#MarkerAdress_e_brc#}{$gmarker.id}
+ +
+
+ {#MarkerAdress_m_e#} +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {if $gmarker.marker_city !=''} + + + {else} + + + {/if} + + + + + + + + + + + + + + + + + + + + + + + + + +
{#MarkerParam#}
{#MarkerSetVal#}
{#MarkerAdress_not#}  +    + + +
{#MarkerDesc#}  + + +   +    + {#Gmap_cat_cnf#}  +
{#Gmap_doc_title#}  +   + + +
{#Gmap_img_title#}  +
+ +
+
+   +   +
{#Gmap_cat_inf_dop#}
{#Gmap_cat_inf_tn#}  + + {#Gmap_cat_inf_t#}  + +
{#Gmap_cat_inf_st#}  + +
{#Gmap_cat_inf_bi#} + +
{#Gmap_cat_inf_ap#} + +
{#Gmap_cat_inf_phone#} + +
{#Gmap_cat_inf_www#}  + +
+    + {#Gmap_field_reset#}   + {#Gmap_mar_map_ret#} +
+ +{/foreach} + + + + + diff --git a/gmap/templates/admin_gmap_markers.tpl b/gmap/templates/admin_gmap_markers.tpl index 2bb1f1e..d8c7284 100644 --- a/gmap/templates/admin_gmap_markers.tpl +++ b/gmap/templates/admin_gmap_markers.tpl @@ -1,3 +1,11 @@ + {if check_permission('adminpanel')} + + + + + + {/if} + -
{#ModName#}
+
{#ModName#} - {#MarkerAddmap#}
@@ -27,6 +35,24 @@
+
+
+
{#Gmap_fm#}
+
+
+ +
+
finder
+
+
+
+ +
{#Gmap_edi_mark#} {$gmap_title}
@@ -36,24 +62,93 @@ - {#MarkerParam#} - {#MarkerSetVal#} +
{#MarkerParam#}
+
{#MarkerSetVal#}
- {#MarkerAdress#} - - + {#MarkerAdress#}  + +    - {#MarkerDesc#} + {#MarkerDesc#}  + + + +   +    + {#Gmap_cat_cnf#}  + {if $gcat.id !=''}{#Gmap_cat_edit#}{else}{#Gmap_cat_create#}{/if} + + + + {#Gmap_doc_title#}  + +   + + + + + + {#Gmap_img_title#}  + +
+ +
+
+   +   + + + +
{#Gmap_cat_inf_dop#}
+ + + {#Gmap_cat_inf_t#}  + + + + + + {#Gmap_cat_inf_st#}  + + + + + + {#Gmap_cat_inf_bi#} + + + + + + {#Gmap_cat_inf_ap#} - + + + {#Gmap_cat_inf_phone#} + + + + + + {#Gmap_cat_inf_www#}  + + + + + {#MarkerImage#} @@ -64,77 +159,27 @@ - -    - {#Gmap_return#} - - + +    + {if $gcat.id !=''}{#Gmap_cat_edit#}{else}{#Gmap_cat_create#}{/if}   + {#Gmap_return#} + +
- + - - + +
{#SetMarkerOnClick#}
{#SetMarkerOnClick#}
  
-{if $page_nav} - -{/if} -
- - - - - - - - - - - - - - - - - {foreach from=$markers item=marker} - - - - - - - - {/foreach} - -
ID{#MarkerImage#}{#MarkerTitle#}
- - - {$marker.id} - -
-
-
-
- -
-
+ +
-{if $page_nav} - -{/if} \ No newline at end of file + + + + + + + + diff --git a/gmap/templates/map.tpl b/gmap/templates/map.tpl index be08bba..5f01fe7 100644 --- a/gmap/templates/map.tpl +++ b/gmap/templates/map.tpl @@ -58,7 +58,12 @@ $(document).ready(function(){ldelim} 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(); + infowindow{$gmap.id} = new google.maps.InfoWindow( + {ldelim} + maxWidth: 700 + {rdelim} + + ); // load markers loadMarkers{$gmap.id}(); @@ -87,17 +92,105 @@ $(document).ready(function(){ldelim} function loadMarker{$gmap.id}(markerData){ldelim} // create new marker location - var myLatlng = new google.maps.LatLng(markerData['latitude'],markerData['longitude']); + var myLatlng = new google.maps.LatLng(markerData['latitude'],markerData['longitude']); // create new marker - var image = '/modules/gmap/images/'+markerData['image']+'.png'; - - var content = markerData['title']; + var image = '/modules/gmap/images/'+markerData['image']+'.png'; + + if (markerData['img_title'] != '/modules/gmap/img/no_image.png') + {ldelim} + var a_stimg = ""; + {rdelim} else {ldelim} + var a_stimg = ""; + {rdelim}; + + if (markerData['marker_cat_title'] != '') + {ldelim} + if (markerData['marker_cat_link'] == '/' || markerData['marker_cat_link'] == 'javascript:void(0);'){ldelim} + var a_categ = "
  • "+markerData['marker_cat_title']+"
  • "; + {rdelim} + else {ldelim} + var a_categ = "
  • "+markerData['marker_cat_title']+"
  • "; + {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 = "
  • "+markerData['title']+"
  • "; + {rdelim} + else {ldelim} + var a_title = "
  • "+markerData['title']+"
  • "; + {rdelim} + {rdelim} + else + {ldelim} + var a_title=''; + {rdelim}; + + + if (markerData['marker_street'] != '') + {ldelim} + var a_city = "
  • "+markerData['marker_city']+", "+markerData['marker_street']+", "+markerData['marker_building']+"
  • "; + {rdelim} + else + {ldelim} + var a_city=''; + {rdelim}; + + if (markerData['marker_dopfield'] != '') + {ldelim} + var a_dopfield = "
  • "+markerData['marker_dopfield']+"
  • "; + {rdelim} + else + {ldelim} + var a_dopfield=''; + {rdelim}; + + + if (markerData['marker_phone'] != '') + {ldelim} + var a_phone = "
  • "+markerData['marker_phone']+"
  • "; + {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 = "
  • "+str_replace(a_placeholders, 'www.', markerData['marker_www'])+"
  • "; + {rdelim} + else + {ldelim} + var a_www=''; + {rdelim}; + + // ПОЗИЦИОНИРУЕМ ЭЛЕМЕНТЫ МАРКЕРА + + // div контейнер + var a_divs = "
    "; + var a_dive = "
    "; + // список включающий категорию, ссылку на документ и адрес + var a_uls = "
      "; + // список включающий телефон и вебсайт + var a_ultws = "
        "; + // закрывающий тег
      + var a_ule = "
    "; + + // ФОРМИРУЕМ КОНТЕНТ МАРКЕРА + 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} + var marker = new google.maps.Marker({ldelim} id: markerData['id'], map: map{$gmap.id}, - title: content, + content: content, icon:image, position: myLatlng {rdelim}); @@ -124,10 +217,41 @@ $(document).ready(function(){ldelim} // check if marker was found if( marker ){ldelim} - infowindow{$gmap.id}.setContent(marker.title); + 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} - \ No newline at end of file + + 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-1){ldelim} + subject = subject.replace(search[k], replace[k]); + i = subject.indexOf(search[k],i); + {rdelim} + {rdelim} + return subject; +{rdelim} + + +