- | ID | -{#MarkerImage#} | -{#MarkerTitle#} | -- |
- - | -- {$marker.id} - | -- - | -- - | -- - | -
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 "
"; 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 0000000..4b8a39a Binary files /dev/null and b/gmap/img/no_image.png differ diff --git a/gmap/img/phone.png b/gmap/img/phone.png new file mode 100644 index 0000000..27c1366 Binary files /dev/null and b/gmap/img/phone.png differ diff --git a/gmap/img/url.png b/gmap/img/url.png new file mode 100644 index 0000000..cedef23 Binary files /dev/null and b/gmap/img/url.png differ 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{#MarkerParam#} |
+ {#MarkerSetVal#} |
+ ||
{#MarkerAdress_not#} | ++ + + + | +||
{#MarkerDesc#} | ++ + + + + {#Gmap_cat_cnf#} + | +||
{#Gmap_doc_title#} | ++ + + + | +||
{#Gmap_img_title#} | +
+
+
+
+
+
+
+ |
+ ||
{#Gmap_cat_inf_dop#} |
+ |||
{#Gmap_cat_inf_tn#} | ++ + | + {else} +{#Gmap_cat_inf_t#} | ++ + | + {/if} +
{#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#} + | +