From 4359f5616ad97e7e7c563a0fca86a96ae615db92 Mon Sep 17 00:00:00 2001
From: pafnuty Предварительная правка файлов для установки модуля не требуется. Инструкция по настройке модуля находится на странице с документацией: http://maps.pafnuty.name/documentation/#setup Админчасть модуля удалена 'ymaps',
-
- // Название модуля - показывается как в установщике, так и в админке.
- 'moduleTitle' => 'Yandex Maps',
-
- // Описание модуля, для установщика и админки.
- 'moduleDescr' => 'Модуль Яндекс.Карты для DLE',
-
- // Версия модуля, для установщика
- 'moduleVersion' => '2.0.1',
-
- // Дата выпуска модуля, для установщика
- 'moduleDate' => '16.10.2018',
-
- // Версии DLE, поддержваемые модулем, для установщика
- 'dleVersion' => '10.x',
-
- // ID групп, для которых доступно управление модулем в админке.
- 'allowGroups' => '1',
-
- // Массив с запросами, которые будут выполняться при установке
- 'queries' => array(),
-
- // Устанавливать админку (true/false). Включает показ кнопки установки и удаления админки.
- 'installAdmin' => true,
-
- // Отображать шаги утановки модуля
- 'steps' => true
-
-);
-
-// Определяем кодировку.
-$fileCharset = chasetConflict($cfg);
-
-// Шаги установки модуля
-$steps = <<
-
Редактирование файлов
- ';
-
- if ($queries) {
- // Выполняем запросы из массива.
- foreach ($cfg['queries'] as $q) {
- $query[] = $dle_api->db->query($q);
- }
-
- $output .= '
';
- }
-
- }
-
- // Если через $_POST передаётся параметр remove, производим удаление админчасти модуля
- elseif (!empty($_POST['remove'])) {
- $remove_admin = $dle_api->uninstall_admin_module($cfg['moduleName']);
- $output .= '
Кодировка файла установщика (' . $fileCharset['charset'] . ') не совпадает с кодировкой сайта (' . $config['charset'] . ').
Установка не возможна.
Перекодируйте все php файлы модуля и запустите установщик ещё раз.
Date: Sat, 29 Feb 2020 02:14:26 +0400 Subject: [PATCH 03/12] =?UTF-8?q?3.0.0=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dle-yandexmaps.xml | 36 ++ engine/ajax/ymaps/all.php | 1 - engine/ajax/ymaps/cat.php | 2 - engine/ajax/ymaps/check_status.php | 9 - engine/ajax/ymaps/check_updates.php | 9 - engine/ajax/ymaps/editmarker.php | 10 +- engine/ajax/ymaps/editnews.php | 251 +++-------- engine/ajax/ymaps/saveconfig.php | 11 +- engine/ajax/ymaps/xfields.php | 10 +- engine/modules/ymaps/addnews-inline.php | 75 ++-- engine/modules/ymaps/addnews.php | 81 ++-- .../modules/ymaps/admin/classes/xfields.php | 3 +- engine/modules/ymaps/admin/mapsettings.php | 9 +- .../modules/ymaps/admin/pointersettings.php | 3 +- engine/modules/ymaps/admin/support.php | 5 +- engine/modules/ymaps/detail.php | 5 +- .../modules/ymaps/js/jquery.autosize.min.js | 7 + engine/modules/ymaps/js/ymaps_editnews.js | 352 +++++++++++++-- engine/modules/ymaps/language/English.lng | 2 +- engine/modules/ymaps/language/Russian.lng | 2 +- templates/{THEME}/ymaps/index.htm | 8 - templates/{THEME}/ymaps/simple.tpl | 20 +- templates/{THEME}/ymaps/ymaps.css | 57 +-- templates/{THEME}/ymaps/ymaps.js | 408 ++++++++++-------- templates/{THEME}/ymaps/ymaps_public.js | 49 +-- templates/{THEME}/ymaps/ymaps_quickedit.js | 52 --- 26 files changed, 770 insertions(+), 707 deletions(-) create mode 100644 dle-yandexmaps.xml delete mode 100644 engine/ajax/ymaps/check_status.php delete mode 100644 engine/ajax/ymaps/check_updates.php create mode 100644 engine/modules/ymaps/js/jquery.autosize.min.js delete mode 100644 templates/{THEME}/ymaps/index.htm delete mode 100644 templates/{THEME}/ymaps/ymaps_quickedit.js diff --git a/dle-yandexmaps.xml b/dle-yandexmaps.xml new file mode 100644 index 0000000..c7b1916 --- /dev/null +++ b/dle-yandexmaps.xml @@ -0,0 +1,36 @@ + ++ \ No newline at end of file diff --git a/engine/ajax/ymaps/all.php b/engine/ajax/ymaps/all.php index 3eafbdf..3c9fd61 100644 --- a/engine/ajax/ymaps/all.php +++ b/engine/ajax/ymaps/all.php @@ -22,7 +22,6 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); -include_once ENGINE_DIR . '/plugins/loader/loader.php'; if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); diff --git a/engine/ajax/ymaps/cat.php b/engine/ajax/ymaps/cat.php index 1b5b69d..cd5dd71 100644 --- a/engine/ajax/ymaps/cat.php +++ b/engine/ajax/ymaps/cat.php @@ -22,8 +22,6 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); -include_once ENGINE_DIR . '/plugins/loader/loader.php'; - if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); } else { diff --git a/engine/ajax/ymaps/check_status.php b/engine/ajax/ymaps/check_status.php deleted file mode 100644 index dd2a9d0..0000000 --- a/engine/ajax/ymaps/check_status.php +++ /dev/null @@ -1,9 +0,0 @@ - - * @link https://git.io/v9irg - */ - -die ('License activation is not required'); \ No newline at end of file diff --git a/engine/ajax/ymaps/check_updates.php b/engine/ajax/ymaps/check_updates.php deleted file mode 100644 index 7f14761..0000000 --- a/engine/ajax/ymaps/check_updates.php +++ /dev/null @@ -1,9 +0,0 @@ - - * @link https://git.io/v9irg - */ - -die ('DLE-YandexMaps +Яндекс карты для DLE +engine/skins/images/ymaps.png +3.0.0 +13 +greater +https://updates.pafnuty.name/check-ymaps.php +0 ++ 1 ++ + + + + + + + + + Release notes]]> ++ ++ +{$lang['header_n_title']}", $lang['addnews'] );]]> +';]]> ++ ++ ++ ';]]> +'); \ No newline at end of file diff --git a/engine/ajax/ymaps/editmarker.php b/engine/ajax/ymaps/editmarker.php index 8941c06..6c3b2ac 100644 --- a/engine/ajax/ymaps/editmarker.php +++ b/engine/ajax/ymaps/editmarker.php @@ -22,8 +22,6 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); -include_once ENGINE_DIR . '/plugins/loader/loader.php'; - if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); } else { @@ -36,11 +34,9 @@ require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); -if ($config['version_id'] > 9.6) { - dle_session(); -} else { - @session_start(); -} + +dle_session(); + $user_group = get_vars("usergroup"); diff --git a/engine/ajax/ymaps/editnews.php b/engine/ajax/ymaps/editnews.php index b8246b7..7347e9c 100644 --- a/engine/ajax/ymaps/editnews.php +++ b/engine/ajax/ymaps/editnews.php @@ -6,215 +6,84 @@ * @link https://git.io/v9irg */ -// Всякие обязательные штуки для ajax DLE -@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); -@ini_set('display_errors', true); -@ini_set('html_errors', false); -@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE); +if (!defined('DATALIFEENGINE')) { + header("HTTP/1.1 403 Forbidden"); + header('Location: ../../../'); + die("Hacking attempt!"); +} -define('DATALIFEENGINE', true); -define('ROOT_DIR', substr(dirname(__FILE__), 0, -18)); +if (!$is_logged) { + die('error'); +} define('ENGINE_DIR', ROOT_DIR . '/engine'); -$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json'), true); -$icons = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_icons.json'), true); - -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); +$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); -include_once ENGINE_DIR . '/plugins/loader/loader.php'; +define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); -if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { - include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); +if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { + include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')); } else { die("Language file not found"); } +$key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; -include (DLEPlugins::Check(ENGINE_DIR . '/data/config.php')); - -require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); -if ($config['version_id'] > 9.6) { - dle_session(); -} else { - @session_start(); -} - - -$user_group = get_vars("usergroup"); -if (!$user_group) { - $user_group = []; - $db->query("SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC"); - while ($row = $db->get_row()) { - $user_group[$row['id']] = []; - foreach ($row as $key => $value) $user_group[$row['id']][$key] = stripslashes($value); - } - set_vars("usergroup", $user_group); - $db->free(); -} - -$cat_info = get_vars("category"); - -if (!is_array($cat_info)) { - $cat_info = []; - - $db->query("SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC"); - while ($row = $db->get_row()) { - - $cat_info[$row['id']] = []; - - foreach ($row as $key => $value) { - $cat_info[$row['id']][$key] = stripslashes($value); - } - - } - set_vars("category", $cat_info); - $db->free(); -} - - -$key = ($cfg->apiKey) ? '&key=' . $cfg->apiKey : ''; - -$ymaps = ''; -$ymaps .= ''; -// $ymaps .= ''; - -$mapHeight = ($cfg['main']['mapHeight']) ? $cfg['main']['mapHeight'] : '400'; -$controls = $cfg['main']['controls']; -$controls = array_keys($controls); -$controls = json_encode($controls); -$arPlacemarkStyles = ($cfg['pointSettings']['catPoints']) ? json_encode($cfg['pointSettings']['catPoints']) : '{}'; - - -$ymaps .= << - var pointInput = $('[name="xfield[{$cfg['main']['coordsField']}]"]'), - coor = getCorrsFromInput(pointInput), - coordsFieldText; - - - var lon = coor.lon, - lat = coor.lat, - zoom = coor.zoom, - controls = $.parseJSON('{$controls}'), - height = {$cfg['main']['mapHeight']}; - - - function hideCoordsField() { - if (pointInput.length) { - var editPlacemarkText = (pointInput.val()) ? '{$module_lang['moduleTextEditPlacemark']}' : '{$module_lang['moduleTextAddPlacemark']}' ; - if ($('[data-mfp-src="#addMap"]').length < 1) { - pointInput.hide().after(''+editPlacemarkText+' ×'); - } else { - $('.btn-editmap-modal').text(editPlacemarkText); - } - }; - - - } - - function getCorrsFromInput() { - if (pointInput.val()) { - return $.parseJSON(pointInput.val()); - } else { - return {"lat":"{$cfg['main']['mapCenter']['latitude']}","lon":"{$cfg['main']['mapCenter']['longitude']}","zoom":"{$cfg['main']['mapCenter']['zoom']}"}; - } - } - - function setCenter(coords, zoom) { - var inpText = '{"lat":"'+coords[0].toPrecision(6)+'", "lon" : "'+coords[1].toPrecision(6)+'", "zoom": "'+zoom+'"}'; - coordsFieldText = inpText; - } - function clearPlacemark() { - pointInput.val(''); - } - - function editMapInit() { - var editnewsMap, - myPlacemark; - - $(document) - .on('editMapInit', function() { - - var map = $('#map'), - coor = getCorrsFromInput(), - lon = coor.lon, - lat = coor.lat, - zoom = coor.zoom; - - map.height(height); - - if (editnewsMap) { - myPlacemark = false; - editnewsMap.events.remove(['click','boundschange','dragend']); - editnewsMap.destroy(); - }; - - - editnewsMap = new ymaps.Map('map', { - center: [lat, lon], - zoom: zoom, - controls: controls - }); - - if (pointInput.val()) { - var _coords = $.parseJSON(pointInput.val()); - myPlacemark = createPlacemark([_coords.lat*1, _coords.lon*1]); - - editnewsMap.geoObjects.add(myPlacemark); - }; - - // Слушаем клик на карте - editnewsMap.events - .add('click', function (e) { - var coords = e.get('coords'); - // Если метка уже создана – просто передвигаем ее - if (myPlacemark) { - myPlacemark.geometry.setCoordinates(coords); - } - // Если нет – создаем. - else { - myPlacemark = createPlacemark(coords); - editnewsMap.geoObjects.add(myPlacemark); - - // Слушаем событие окончания перетаскивания на метке. - myPlacemark.events.add('dragend', function () { - setCenter(myPlacemark.geometry.getCoordinates(), editnewsMap.getZoom()); - }); - } - setCenter(coords, editnewsMap.getZoom()); - }) - .add('boundschange', function (e) { - setCenter([lat*1, lon*1], editnewsMap.getZoom()); - }); - - // Создание метки - function createPlacemark(coords) { - var arPlacemarkStyles = '{$arPlacemarkStyles}', - categoryId = ($('#category').length) ? $('#category option:selected').val() : 0, - key = (categoryId > 0) ? categoryId : 'default', - placemarkStyle = $.parseJSON(arPlacemarkStyles); - - return new ymaps.Placemark(coords, {}, - placemarkStyle[key] - ); - } - }); - }; - +$mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; +$controls = (array)$cfg->main->controls; +$controls = array_keys($controls); +$mapSelector = $cfg->moduleName . '-edit-map-container'; +$modalHtml = << -+HTML; +$btnHtml = <<editmap + +HTML; + + -echo $ymaps; \ No newline at end of file +$ymapsJson = [ + 'mapSelector' => $mapSelector, + 'mapUrl' => '//api-maps.yandex.ru/2.1/?lang=ru_RU' . $key, + 'scripts' => [ + '/engine/modules/' . $cfg->moduleName . '/js/jquery.magnificpopup.min.js' + ], + 'controls' => $controls, + 'height' => $cfg->main->mapHeight, + 'defaultPos' => [ + 'lat' => $cfg->main->mapCenter->latitude, + 'lon' => $cfg->main->mapCenter->longitude, + 'zoom' => $cfg->main->mapCenter->zoom, + ], + 'arPlacemarkStyles' => $cfg->pointSettings->catPoints, + 'inputSelector' => '[name="xfield[' . $cfg->main->coordsField .']"]', + 'xfHolder' => '#xfield_holder_' . $cfg->main->coordsField, + 'modalHtml' => $modalHtml, + 'btnHtml' => $btnHtml, + 'text' => [ + 'edit' => $module_lang['moduleTextEditPlacemark'], + 'add' => $module_lang['moduleTextAddPlacemark'] + ] +]; + + +header('Content-Type: application/json'); +echo json_encode($ymapsJson); diff --git a/engine/ajax/ymaps/saveconfig.php b/engine/ajax/ymaps/saveconfig.php index 3d101a0..c149eaa 100644 --- a/engine/ajax/ymaps/saveconfig.php +++ b/engine/ajax/ymaps/saveconfig.php @@ -21,18 +21,13 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); -include_once ENGINE_DIR . '/plugins/loader/loader.php'; - include (DLEPlugins::Check(ENGINE_DIR . '/data/config.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); -if ($config['version_id'] > 9.6) { - dle_session(); -} else { - @session_start(); -} +dle_session(); + $user_group = get_vars("usergroup"); if (!$user_group) { @@ -74,8 +69,6 @@ unset($_POST['mapsettings']); $cfg['main'] = $_POST; } - // echo "× -{$module_lang['moduleActionApply']}+{$module_lang['moduleActionApply']}"; print_r($_POST); echo ""; - // die (); $jsn = json_encode($cfg); file_put_contents(ENGINE_DIR . '/data/ymaps_config.json', $jsn); diff --git a/engine/ajax/ymaps/xfields.php b/engine/ajax/ymaps/xfields.php index 88ef309..9e4bbef 100644 --- a/engine/ajax/ymaps/xfields.php +++ b/engine/ajax/ymaps/xfields.php @@ -21,8 +21,6 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); -include_once ENGINE_DIR . '/plugins/loader/loader.php'; - if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); } else { @@ -35,11 +33,9 @@ require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); -if ($config['version_id'] > 9.6) { - dle_session(); -} else { - @session_start(); -} + +dle_session(); + $user_group = get_vars("usergroup"); diff --git a/engine/modules/ymaps/addnews-inline.php b/engine/modules/ymaps/addnews-inline.php index d515569..43b214d 100644 --- a/engine/modules/ymaps/addnews-inline.php +++ b/engine/modules/ymaps/addnews-inline.php @@ -7,8 +7,10 @@ */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } +global $onload_scripts, $js_array; $cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); @@ -17,55 +19,42 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { - include(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng'); + include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')); } else { die("Language file not found"); } -$key = ($cfg->apiKey) ? '&key=' . $cfg->apiKey : ''; +$key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; -$ymaps = ''; -$ymaps .= ''; +$js_array[] = '/templates/' . $config['skin'] . '/' . $cfg->moduleName . '/' . $cfg->moduleName . '.js'; $mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; -$controls = (array)$cfg->main->controls; -$controls = array_keys($controls); -$controls = json_encode($controls); - -$ymaps .= << - var arPlacemarkStyles = '{$arPlacemarkStyles}', - inputSelector = '[name="xfield[{$cfg->main->coordsField}]"]', - controls = $.parseJSON('{$controls}'), - height = {$cfg->main->mapHeight}, - coordsFieldText; - - function hideCoordsField(but) { - if ($('#xfield_holder_{$cfg->main->coordsField}').css('display') != 'none') { - $('#xfield_holder_{$cfg->main->coordsField}').hide(); - $(but).show(); - } else { - $(but).hide(); - } - } - - function getCorrsFromInput() { - var pointInput = $(inputSelector); - if (pointInput.val()) { - return $.parseJSON(pointInput.val()); - } else { - return {"lat":"{$cfg->main->mapCenter->latitude}","lon":"{$cfg->main->mapCenter->longitude}","zoom":"{$cfg->main->mapCenter->zoom}"}; - } +$controls = (array)$cfg->main->controls; +$controls = array_keys($controls); +$controls = json_encode($controls); +$arPlacemarkStyles = ($cfg->pointSettings->catPoints) ? json_encode($cfg->pointSettings->catPoints) : '{}'; +$mapSelector = $cfg->moduleName . '-map-container'; + +$onload_scripts[] = <<main->mapHeight}, + coordsFieldText:'', + defaultPos: { + lat: '{$cfg->main->mapCenter->latitude}', + lon: '{$cfg->main->mapCenter->longitude}', + zoom: '{$cfg->main->mapCenter->zoom}', + }, + arPlacemarkStyles: {$arPlacemarkStyles}, + inputSelector: '[name="xfield[{$cfg->main->coordsField}]"]', + xfHolder: '#xfield_holder_{$cfg->main->coordsField}' } - - function setCenter(coords, zoom) { - var inpText = '{"lat":"'+coords[0].toPrecision(6)+'", "lon" : "'+coords[1].toPrecision(6)+'", "zoom": "'+zoom+'"}'; - $('[name="xfield[{$cfg->main->coordsField}]"]').val(inpText); - } - - - + if (addNewsMapStart) { + addNewsMapStart(mapConfig); + }; HTML; - -echo $ymaps; \ No newline at end of file +echo ''; \ No newline at end of file diff --git a/engine/modules/ymaps/addnews.php b/engine/modules/ymaps/addnews.php index 7c02d6d..d911dfc 100644 --- a/engine/modules/ymaps/addnews.php +++ b/engine/modules/ymaps/addnews.php @@ -7,8 +7,10 @@ */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } +global $onload_scripts, $js_array; $cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); @@ -17,73 +19,50 @@ define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { - include(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng'); + include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')); } else { die("Language file not found"); } -$key = ($cfg->apiKey) ? '&key=' . $cfg->apiKey : ''; +$key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; -$ymaps = ''; -$ymaps .= ''; -$ymaps .= ''; +$js_array[] = '/engine/modules/' . $cfg->moduleName . '/js/jquery.magnificpopup.min.js'; +$js_array[] = '/templates/' . $config['skin'] . '/' . $cfg->moduleName . '/' . $cfg->moduleName . '.js'; $mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; $controls = (array)$cfg->main->controls; $controls = array_keys($controls); $controls = json_encode($controls); $arPlacemarkStyles = ($cfg->pointSettings->catPoints) ? json_encode($cfg->pointSettings->catPoints) : '{}'; - -$ymaps .= << - var arPlacemarkStyles = '{$arPlacemarkStyles}', - inputSelector = '[name="xfield[{$cfg->main->coordsField}]"]', - controls = $.parseJSON('{$controls}'), - height = {$cfg->main->mapHeight}, - coordsFieldText; - - function hideCoordsField(but) { - if ($('#xfield_holder_{$cfg->main->coordsField}').css('display') != 'none') { - $('#xfield_holder_{$cfg->main->coordsField}').hide(); - $(but).show(); - } else { - $(but).hide(); - } - } - - function getCorrsFromInput() { - var pointInput = $(inputSelector); - if (pointInput.val()) { - return $.parseJSON(pointInput.val()); - } else { - return {"lat":"{$cfg->main->mapCenter->latitude}","lon":"{$cfg->main->mapCenter->longitude}","zoom":"{$cfg->main->mapCenter->zoom}"}; - } - } - - function setCenter(coords, zoom) { - var inpText = '{"lat":"'+coords[0].toPrecision(6)+'", "lon" : "'+coords[1].toPrecision(6)+'", "zoom": "'+zoom+'"}'; - coordsFieldText = inpText; - } - - function applyCoords() { - $(inputSelector).val(coordsFieldText); - } - - function resetCoords() { - $(inputSelector).val(''); +$mapSelector = $cfg->moduleName . '-map-container'; + +$onload_scripts[] = <<main->mapHeight}, + defaultPos: { + lat: '{$cfg->main->mapCenter->latitude}', + lon: '{$cfg->main->mapCenter->longitude}', + zoom: '{$cfg->main->mapCenter->zoom}', + }, + arPlacemarkStyles: {$arPlacemarkStyles}, + inputSelector: '[name="xfield[{$cfg->main->coordsField}]"]', + xfHolder: '#xfield_holder_{$cfg->main->coordsField}' } + if (addNewsMapStart) { + addNewsMapStart(mapConfig); + }; +HTML; - function getInput() { - return $(inputSelector).val(); - } - - - +$ymaps = <<×- + */ ?>{$module_lang['moduleActionApply']}{$module_lang['moduleActionReset']}diff --git a/engine/modules/ymaps/admin/classes/xfields.php b/engine/modules/ymaps/admin/classes/xfields.php index 7008e4b..94eb4af 100644 --- a/engine/modules/ymaps/admin/classes/xfields.php +++ b/engine/modules/ymaps/admin/classes/xfields.php @@ -6,7 +6,8 @@ * @link https://git.io/v9irg */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } /** diff --git a/engine/modules/ymaps/admin/mapsettings.php b/engine/modules/ymaps/admin/mapsettings.php index 7397b20..26ecfc6 100644 --- a/engine/modules/ymaps/admin/mapsettings.php +++ b/engine/modules/ymaps/admin/mapsettings.php @@ -7,7 +7,8 @@ */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } $fullscreenControl_checked = ($cfg->main->controls->fullscreenControl) ? 'checked' : ''; @@ -78,16 +79,16 @@ function getLangsList($dir = '../language') { href="http://store.pafnuty.name/purchase/" target="_blank">= $module_lang['moduleTextGetlicenceKey'] ?>*/ ?> +=$module_lang['moduleTextApiKey']?>-+HTML; + +$btnHtml = <<editmap + +HTML; + + +$ymapsJson = [ + 'mapSelector' => $mapSelector, + 'mapUrl' => 'https://api-maps.yandex.ru/2.1/?lang=ru_RU'.$key, + 'scripts' => [ + '/engine/modules/ymaps/js/jquery.magnificpopup.min.js', + ], + 'controls' => $controls, + 'height' => $cfg->main->mapHeight, + 'defaultPos' => [ + 'lat' => $cfg->main->mapCenter->latitude, + 'lon' => $cfg->main->mapCenter->longitude, + 'zoom' => $cfg->main->mapCenter->zoom, + ], + 'arPlacemarkStyles' => $cfg->pointSettings->catPoints, + 'inputSelector' => '[name="xfield['.$cfg->main->coordsField.']"]', + 'xfHolder' => '#xfield_holder_'.$cfg->main->coordsField, + 'modalHtml' => $modalHtml, + 'btnHtml' => $btnHtml, + 'text' => [ + 'edit' => $module_lang['moduleTextEditPlacemark'], + 'add' => $module_lang['moduleTextAddPlacemark'], + ], +]; + + +header('Content-Type: application/json'); +echo json_encode($ymapsJson); diff --git a/engine/ajax/ymaps_saveconfig.php b/engine/ajax/ymaps_saveconfig.php new file mode 100644 index 0000000..c756fd6 --- /dev/null +++ b/engine/ajax/ymaps_saveconfig.php @@ -0,0 +1,54 @@ + + * @link https://git.io/v9irg + */ + +if (!defined('DATALIFEENGINE')) { + header("HTTP/1.1 403 Forbidden"); + header('Location: ../../'); + die("Hacking attempt!"); +} + + +/** + * Основной код файла + */ + +if ($member_id['user_group'] == '1') { + + $cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json'), true); + + if ($_POST['pointID'] > 0 || $_POST['pointID'] == 'default') { + $post = array_filter($_POST); + + $catId = $post['pointID']; + unset($post['pointID']); + if (isset($post['preset']) && isset($post['iconColor'])) { + $cfg['pointSettings']['catPoints'][$catId] = ['preset' => $post['preset'], + 'iconColor' => $post['iconColor'], + ]; + } elseif (isset($post['iconLayout'])) { + unset($post['preset']); + $cfg['pointSettings']['catPoints'][$catId] = $post; + } elseif ($post['preset']) { + $cfg['pointSettings']['catPoints'][$catId] = ['preset' => $post['preset'],]; + } + if (isset($_POST['deletePoint']) && $_POST['deletePoint'] == 'y') { + unset($cfg['pointSettings']['catPoints'][$catId]); + } + + } + if ($_POST['mapsettings']) { + unset($_POST['mapsettings']); + $cfg['main'] = $_POST; + } + + $jsn = json_encode($cfg); + file_put_contents(ENGINE_DIR.'/data/ymaps_config.json', $jsn); + die ($jsn); +} else { + die ('Access denied'); +} \ No newline at end of file diff --git a/engine/ajax/ymaps_xfields.php b/engine/ajax/ymaps_xfields.php new file mode 100644 index 0000000..cd31a1c --- /dev/null +++ b/engine/ajax/ymaps_xfields.php @@ -0,0 +1,55 @@ + + * @link https://git.io/v9irg + */ + +if (!defined('DATALIFEENGINE')) { + header("HTTP/1.1 403 Forbidden"); + header('Location: ../../'); + die("Hacking attempt!"); +} + +/** + * Основной код файла + */ +if ($member_id['user_group'] == '1') { + include_once(DLEPlugins::Check(ENGINE_DIR.'/modules/ymaps/language/Russian.lng')); + require_once(DLEPlugins::Check(ENGINE_DIR.'/modules/ymaps/admin/classes/xfields.php')); + + $fun = new xfClass; + $name = (isset($_REQUEST['name'])) ? $db->safesql($_REQUEST['name']) : false; + $description = (isset($_REQUEST['description'])) ? $db->safesql($_REQUEST['description']) : false; + $value = (isset($_REQUEST['value'])) ? $db->safesql($_REQUEST['value']) : false; + $fieldType = (isset($_REQUEST['fieldType'])) ? $db->safesql($_REQUEST['fieldType']) : false; + + $xf = $fun->xf('add', $name, $description, $value, $fieldType)->result; + + if ($xf) { + $content = 'diff --git a/engine/modules/ymaps/admin/pointersettings.php b/engine/modules/ymaps/admin/pointersettings.php index 648715f..273f229 100644 --- a/engine/modules/ymaps/admin/pointersettings.php +++ b/engine/modules/ymaps/admin/pointersettings.php @@ -7,7 +7,8 @@ */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } $icons = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_icons.json'), true); diff --git a/engine/modules/ymaps/admin/support.php b/engine/modules/ymaps/admin/support.php index 265b40b..793fa7f 100644 --- a/engine/modules/ymaps/admin/support.php +++ b/engine/modules/ymaps/admin/support.php @@ -7,7 +7,8 @@ */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } ?> @@ -20,7 +21,7 @@= $module_lang['moduleTextHelp'] ?>
- = $module_lang['moduleLongText1'] ?> http://maps.pafnuty.name/documentation/. + = $module_lang['moduleLongText1'] ?> maps.pafnuty.name/documentation/.diff --git a/engine/modules/ymaps/detail.php b/engine/modules/ymaps/detail.php index 7642b4d..9dca13d 100644 --- a/engine/modules/ymaps/detail.php +++ b/engine/modules/ymaps/detail.php @@ -7,7 +7,8 @@ */ if (!defined('DATALIFEENGINE')) { - die("Go fuck yourself!"); + header("HTTP/1.1 403 Forbidden"); + die("Hacking attempt!"); } $cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); @@ -54,7 +55,7 @@ $queryFields = implode(', ', $arQueryFields); // API-key - $key = ($cfg->main->apiKey) ? '&key=' . $cfg->main->apiKey : ''; + $key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; $mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; diff --git a/engine/modules/ymaps/js/jquery.autosize.min.js b/engine/modules/ymaps/js/jquery.autosize.min.js new file mode 100644 index 0000000..6763b64 --- /dev/null +++ b/engine/modules/ymaps/js/jquery.autosize.min.js @@ -0,0 +1,7 @@ +/*! + Autosize v1.18.1 - 2013-11-05 + Automatically adjust textarea height based on user input. + (c) 2013 Jack Moore - http://www.jacklmoore.com/autosize + license: http://www.opensource.org/licenses/mit-license.php +*/ +(function(e){var t,o={className:"autosizejs",append:"",callback:!1,resizeDelay:10},i='',n=["fontFamily","fontSize","fontWeight","fontStyle","letterSpacing","textTransform","wordSpacing","textIndent"],s=e(i).data("autosize",!0)[0];s.style.lineHeight="99px","99px"===e(s).css("lineHeight")&&n.push("lineHeight"),s.style.lineHeight="",e.fn.autosize=function(i){return this.length?(i=e.extend({},o,i||{}),s.parentNode!==document.body&&e(document.body).append(s),this.each(function(){function o(){var t,o;"getComputedStyle"in window?(t=window.getComputedStyle(u,null),o=u.getBoundingClientRect().width,e.each(["paddingLeft","paddingRight","borderLeftWidth","borderRightWidth"],function(e,i){o-=parseInt(t[i],10)}),s.style.width=o+"px"):s.style.width=Math.max(p.width(),0)+"px"}function a(){var a={};if(t=u,s.className=i.className,d=parseInt(p.css("maxHeight"),10),e.each(n,function(e,t){a[t]=p.css(t)}),e(s).css(a),o(),window.chrome){var r=u.style.width;u.style.width="0px",u.offsetWidth,u.style.width=r}}function r(){var e,n;t!==u?a():o(),s.value=u.value+i.append,s.style.overflowY=u.style.overflowY,n=parseInt(u.style.height,10),s.scrollTop=0,s.scrollTop=9e4,e=s.scrollTop,d&&e>d?(u.style.overflowY="scroll",e=d):(u.style.overflowY="hidden",c>e&&(e=c)),e+=w,n!==e&&(u.style.height=e+"px",f&&i.callback.call(u,u))}function l(){clearTimeout(h),h=setTimeout(function(){var e=p.width();e!==g&&(g=e,r())},parseInt(i.resizeDelay,10))}var d,c,h,u=this,p=e(u),w=0,f=e.isFunction(i.callback),z={height:u.style.height,overflow:u.style.overflow,overflowY:u.style.overflowY,wordWrap:u.style.wordWrap,resize:u.style.resize},g=p.width();p.data("autosize")||(p.data("autosize",!0),("border-box"===p.css("box-sizing")||"border-box"===p.css("-moz-box-sizing")||"border-box"===p.css("-webkit-box-sizing"))&&(w=p.outerHeight()-p.height()),c=Math.max(parseInt(p.css("minHeight"),10)-w||0,p.height()),p.css({overflow:"hidden",overflowY:"hidden",wordWrap:"break-word",resize:"none"===p.css("resize")||"vertical"===p.css("resize")?"none":"horizontal"}),"onpropertychange"in u?"oninput"in u?p.on("input.autosize keyup.autosize",r):p.on("propertychange.autosize",function(){"value"===event.propertyName&&r()}):p.on("input.autosize",r),i.resizeDelay!==!1&&e(window).on("resize.autosize",l),p.on("autosize.resize",r),p.on("autosize.resizeIncludeStyle",function(){t=null,r()}),p.on("autosize.destroy",function(){t=null,clearTimeout(h),e(window).off("resize",l),p.off("autosize").off(".autosize").css(z).removeData("autosize")}),r())})):this}})(window.jQuery||window.$); \ No newline at end of file diff --git a/engine/modules/ymaps/js/ymaps_editnews.js b/engine/modules/ymaps/js/ymaps_editnews.js index 73dea3b..46636da 100644 --- a/engine/modules/ymaps/js/ymaps_editnews.js +++ b/engine/modules/ymaps/js/ymaps_editnews.js @@ -1,49 +1,321 @@ -/**! +/* eslint-disable no-undef */ +/* eslint-env es5 */ + +/** ! * DLE-YandexMaps — Бесплатный модуль Яндекс Карт для DLE * * @author ПафНутиЙ
* @link https://git.io/v9irg */ +/** + * @typedef {object} mapConfig + * + * @property {string} mapSelector + * @property {array} scripts + * @property {array} controls + * @property {number} height + * @property {object} defaultPos + * @property {string} defaultPos.lat + * @property {string} defaultPos.lon + * @property {string} defaultPos.zoom + * @property {object} arPlacemarkStyles + * @property {string} inputSelector + * @property {string} xfHolder + * @property {string} modalHtml + * @property {string} btnHtml + * @property {object} text + * @property {string} text.edit + * @property {string} text.add + */ var doc = $(document); doc - .on('click', '.popup-modal-dismiss', function (e) { - e.preventDefault(); - $.magnificPopup.close(); - }) - .on('click', '.btn-editmap-save', function (e) { - if (coordsFieldText) { - pointInput.val(coordsFieldText); - hideCoordsField(); - } - - }); -jQuery(document).ready(function ($) { - $.ajax({ - url: 'engine/ajax/ymaps/editnews.php' - }) - .done(function (data) { - $('#addnews').append(data); - hideCoordsField(); - $.extend(true, $.magnificPopup.defaults, { - tClose: 'Закрыть (Esc)', - tLoading: 'Загрузка...' - }); - - $('.btn-editmap-modal').magnificPopup({ - type: 'inline', - preloader: false, - modal: true, - callbacks: { - open: function () { - doc.trigger('editMapInit'); - } - } - }); - - }) - .fail(function () { - console.log("error"); - }); -}); + .on('dialogopen', '#dlepopup-news-edit', function() { + setTimeout( + loadController + , 500); + }) + .on('click', '.popup-modal-dismiss', function(e) { + e.preventDefault(); + $.magnificPopup.close(); + }); + +var loadController = function () { + // eslint-disable-next-line camelcase + var dleRoot = window.dle_root || ''; + $.ajax({ + url: dleRoot + 'engine/ajax/controller.php', + data: { + mod: 'ymaps', + type: 'editnews' + } + }) + .done(function(data) { + runQuickEdit(data); + }) + .fail(function() { + console.error('error'); + }); +}; + +var loadScript = function(url, callback) { + var script = document.createElement('script'); + script.src = url; + if (callback) { + script.onload = callback; + } + document.getElementsByTagName('head')[0].appendChild(script); +}; + +var runQuickEdit = function(mapConfig) { + if ($(mapConfig.inputSelector).length) { + mapConfig.scripts.forEach(function(scriptUrl) { + loadScript(scriptUrl); + }); + + if (window.ymaps) { + ymapsStart(mapConfig); + } else { + loadScript(mapConfig.mapUrl, function () { + ymapsStart(mapConfig); + }); + } + } +}; + +/** + * + * @param {mapConfig} mapConfig + */ +var ymapsStart = function(mapConfig) { + var $xfieldInput = $(mapConfig.inputSelector); + + var $btnHtml = $(mapConfig.btnHtml); + + $xfieldInput + .parent() + .append($btnHtml) + .append($(mapConfig.modalHtml)); + + // $btnHtml.insertAfter($xfieldInput); + + var $editMapBtn = $('.btn-editmap-modal'); + + var editnewsMap = window.editnewsMap; + var myPlacemark; + + var methods = { + checkBtnText: function() { + var $this = $(mapConfig.inputSelector); + if ($this.val().length) { + $editMapBtn.text(mapConfig.text.edit); + } else { + $editMapBtn.text(mapConfig.text.add); + } + }, + toggleXFieldAndBtn: function() { + var $xfHolder = $(mapConfig.xfHolder); + if ($xfHolder.length) { + if ($xfHolder.css('display') !== 'none') { + $xfieldInput.hide(); + } + } else { + if ($xfieldInput.css('display') !== 'none') { + $xfieldInput.hide(); + $btnHtml.show(); + } else { + $btnHtml.hide(); + } + } + }, + + /** + * @returns {{lat: string, lon: string, zoom: string}|any | jQuery | null | undefined} + */ + getCoordsFromInput: function() { + var pointInput = $xfieldInput; + if (pointInput.val()) { + return $.parseJSON(pointInput.val()); + } else { + return mapConfig.defaultPos; + } + }, + + /** + * + * @param coords + * @param zoom + */ + setCenter: function(coords, zoom) { + if (coords && coords.length && zoom) { + var inpText = + '{"lat":"' + + coords[0].toPrecision(6) + + '", "lon" : "' + + coords[1].toPrecision(6) + + '", "zoom": "' + + zoom + + '"}'; + $xfieldInput.val(inpText); + } + methods.checkBtnText(); + }, + + /** + * + * @returns {Array} + */ + getDataFromInput: function() { + var returnValue = []; + var inputValue = $xfieldInput.val(); + if (inputValue) { + var inputCoords = JSON.parse(inputValue); + returnValue = [inputCoords.lat * 1, inputCoords.lon * 1]; + } + return returnValue; + }, + + resetCoords: function() { + $xfieldInput.val(''); + methods.checkBtnText(); + }, + + /** + * + * @param coords + * @returns {object} ymaps.Placemark + */ + createPlacemark: function(coords) { + var $catList = $('[name="catlist[]"]'); + var categoryId = 0; + if ($catList.length) { + categoryId = $catList.find('option:selected').val() || $catList.val(); + } + var key = categoryId > 0 ? categoryId : 'default'; + var placemarkStyle = mapConfig.arPlacemarkStyles; + + return new ymaps.Placemark(coords, {}, placemarkStyle[key]); + }, + + /** + * + * @param res + */ + addOrMovePlacemark: function(res) { + // Пробуем получить метку из геометрии переданной точки (если точка передана из поиска) + var coords = res.geometry && res.geometry.getCoordinates(); + + // Или пробуем достать её из текущих координат (если это клик по карте) + if (!coords) { + coords = res.get('coords'); + } + // Если метка уже создана – просто передвигаем ее + if (myPlacemark) { + myPlacemark.geometry.setCoordinates(coords); + } else { + // Если нет – создаем. + myPlacemark = methods.createPlacemark(coords); + editnewsMap.geoObjects.add(myPlacemark); + + // Слушаем событие окончания перетаскивания на метке. + myPlacemark.events.add('dragend', function() { + methods.setCenter(myPlacemark.geometry.getCoordinates(), editnewsMap.getZoom()); + }); + } + methods.setCenter(myPlacemark.geometry.getCoordinates(), editnewsMap.getZoom()); + } + }; + + doc + .off('.ymapsEdit') + .on('change.ymapsEdit', '#category, [name="category[]"]', methods.toggleXFieldAndBtn) + .on('change.ymapsEdit', mapConfig.inputSelector, methods.checkBtnText) + .on('click.ymapsEdit', '.btn-clear-placemark', methods.resetCoords); + + // Инициализация карты. + ymaps.ready(addMapInit); + + function addMapInit() { + // Скрываем поле с координатами карты, оно не нужно пользователю. + methods.toggleXFieldAndBtn(); + methods.checkBtnText(); + + // Убираем блокировку с кнопки открытия модального окна + $editMapBtn.prop('disabled', false); + + doc + .on('mapInit.ymapsEdit', function() { + var $map = $('#' + mapConfig.mapSelector); + var coors = methods.getCoordsFromInput(); + var lat = coors.lat; + var lon = coors.lon; + var zoom = coors.zoom; + + // На всякий случай устанавливаем высоту карты + $map.height(mapConfig.height); + + if (editnewsMap) { + myPlacemark = false; + editnewsMap.events.remove(['click', 'boundschange', 'dragend', 'resultselect', 'submit']); + editnewsMap.destroy(); + } + + editnewsMap = new ymaps.Map(mapConfig.mapSelector, { + center: [lat, lon], // Саратов + zoom: zoom, + controls: mapConfig.controls + }); + + var searchControl = editnewsMap.controls.get('searchControl'); + + if (searchControl) { + searchControl.options.set('noPlacemark', true); + searchControl.events.add('resultselect', function(e) { + var index = e.get('index'); + searchControl.getResult(index).then(methods.addOrMovePlacemark); + }); + } + + var dataFromInput = methods.getDataFromInput(); + + if (dataFromInput) { + myPlacemark = methods.createPlacemark(dataFromInput); + editnewsMap.geoObjects.add(myPlacemark); + } + + // Слушаем клик на карте + editnewsMap.events.add('click', methods.addOrMovePlacemark).add('boundschange', function() { + var coords = [lat * 1, lon * 1]; + + if (myPlacemark) { + coords = myPlacemark.geometry.getCoordinates(); + } + methods.setCenter(coords, editnewsMap.getZoom()); + }); + }) + .on('click.ymapsEdit', '.btn-editmap-modal', function() { + if ($.magnificPopup) { + // Дефолтные настройки magnificpopup + $.extend(true, $.magnificPopup.defaults, { + tClose: 'Закрыть (Esc)', + tLoading: 'Загрузка...' + }); + + $.magnificPopup.open({ + type: 'inline', + items: { + src: '#' + mapConfig.mapSelector + '-modal' + }, + preloader: false, + modal: true, + callbacks: { + open: function() { + doc.trigger('mapInit'); + } + } + }); + } + }); + } +}; diff --git a/engine/modules/ymaps/language/English.lng b/engine/modules/ymaps/language/English.lng index 8832c08..827ec70 100644 --- a/engine/modules/ymaps/language/English.lng +++ b/engine/modules/ymaps/language/English.lng @@ -16,7 +16,7 @@ $module_lang = array ( 'mapSettings' => 'Map settings', 'mapsSettings' => 'Customize the page with labels', - 'moduleTextApiKey' => 'API Key Yandex maps', + 'moduleTextApiKey' => 'API Key Yandex maps', 'moduleTextApiKeyWhat' => 'For what need key?', 'moduleTextMapHeight' => 'The height of the default map (px)', 'moduleTextMapControls' => 'The map controls', diff --git a/engine/modules/ymaps/language/Russian.lng b/engine/modules/ymaps/language/Russian.lng index 03cb99b..0ef69bb 100644 --- a/engine/modules/ymaps/language/Russian.lng +++ b/engine/modules/ymaps/language/Russian.lng @@ -16,7 +16,7 @@ $module_lang = array ( 'mapSettings' => 'Настройки карты', 'mapsSettings' => 'Настройки страницы с метками', - 'moduleTextApiKey' => 'API Key Яндекс карт', + 'moduleTextApiKey' => 'API Key Яндекс карт', 'moduleTextApiKeyWhat' => 'Для чего нужен ключ?', 'moduleTextMapHeight' => 'Высота карты по умолчанию (px)', 'moduleTextMapControls' => 'Элементы управления картой', diff --git a/templates/{THEME}/ymaps/index.htm b/templates/{THEME}/ymaps/index.htm deleted file mode 100644 index 7d13843..0000000 --- a/templates/{THEME}/ymaps/index.htm +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Error!!! - -Error!!! - diff --git a/templates/{THEME}/ymaps/simple.tpl b/templates/{THEME}/ymaps/simple.tpl index 6b551db..c02a7c9 100644 --- a/templates/{THEME}/ymaps/simple.tpl +++ b/templates/{THEME}/ymaps/simple.tpl @@ -1,20 +1,20 @@ {script_yandex} diff --git a/templates/{THEME}/ymaps/ymaps.css b/templates/{THEME}/ymaps/ymaps.css index 2df29f9..99fe7a6 100644 --- a/templates/{THEME}/ymaps/ymaps.css +++ b/templates/{THEME}/ymaps/ymaps.css @@ -5,61 +5,6 @@ * @link https://git.io/v9irg */ -/* ========================================================================== - Buttons */ -/* ========================================================================== */ - - .btn { - display: inline-block; - color: #ffffff; - margin-bottom: 0; - font-weight: normal; - text-align: center; - vertical-align: middle; - cursor: pointer; - background-image: none; - background: #4a9fc5; - border: 0; - text-decoration: none; - white-space: nowrap; - padding: 7px 15px 5px; - font-size: 14px; - line-height: 20px; - border-radius: 3px; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transition: all ease 0.3s; - -moz-transition: all ease 0.3s; - -o-transition: all ease 0.3s; - transition: all ease 0.3s; - -webkit-box-shadow: 0 2px 0 #3584a7; - -moz-box-shadow: 0 2px 0 #3584a7; - box-shadow: 0 2px 0 #3584a7; - } - .btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } - .btn:hover, - .btn:focus { - color: #ffffff; - background: #50bd98; - text-decoration: none; - -webkit-box-shadow: 0 2px 0 #3c9e7d; - -moz-box-shadow: 0 2px 0 #3c9e7d; - box-shadow: 0 2px 0 #3c9e7d; - } - .btn:active, - .btn.active { - outline: 0; - -webkit-box-shadow: 0 2px 0 #50bd98; - -moz-box-shadow: 0 2px 0 #50bd98; - box-shadow: 0 2px 0 #50bd98; - } - /* ========================================================================== Magnific Popup CSS */ @@ -94,4 +39,4 @@ .map-wrapper { border: solid 1px #a3aaba; margin: 10px 0; - } \ No newline at end of file + } diff --git a/templates/{THEME}/ymaps/ymaps.js b/templates/{THEME}/ymaps/ymaps.js index 3f5191b..640f295 100644 --- a/templates/{THEME}/ymaps/ymaps.js +++ b/templates/{THEME}/ymaps/ymaps.js @@ -1,180 +1,240 @@ -/**! +/* eslint-disable no-undef */ +/* eslint-env es5 */ +/** ! * DLE-YandexMaps — Бесплатный модуль Яндекс Карт для DLE * * @author ПафНутиЙ* @link https://git.io/v9irg */ -var doc = $(document); - -doc - .on('change', '#category', function() { - hideCoordsField('.btn-addmap'); - }) - .on('click', '.add-map-save', function() { - applyCoords(); - }) - .on('click', '.add-map-clear', function() { - resetCoords(); - }); - - // Инициализация карты. - - ymaps.ready(addMapInit); - - function addMapInit() { - var addnewsMap, - myPlacemark; - doc - .on('mapInit', function() { - var $map = $('#map'), - coors = getCorrsFromInput(), - lat = coors.lat, - lon = coors.lon, - zoom = coors.zoom; - - $map.height(height); - - if (addnewsMap) { - myPlacemark = false; - addnewsMap.events.remove(['click','boundschange','dragend']); - addnewsMap.destroy(); - }; - - addnewsMap = new ymaps.Map('map', { - center: [lat, lon], // Саратов - zoom: zoom, - controls: controls - }); - console.log('getInput', getInput()); - - if (getInput()) { - var _coords = $.parseJSON(getInput()); - myPlacemark = createPlacemark([_coords.lat*1, _coords.lon*1]); - addnewsMap.geoObjects.add(myPlacemark); - }; - - // Слушаем клик на карте - addnewsMap.events - .add('click', function (e) { - var coords = e.get('coords'); - // Если метка уже создана – просто передвигаем ее - if (myPlacemark) { - myPlacemark.geometry.setCoordinates(coords); - console.log('двигаем'); - } - // Если нет – создаем. - else { - console.log('создаём'); - myPlacemark = createPlacemark(coords); - addnewsMap.geoObjects.add(myPlacemark); - - // Слушаем событие окончания перетаскивания на метке. - myPlacemark.events.add('dragend', function () { - setCenter(myPlacemark.geometry.getCoordinates(), addnewsMap.getZoom()); - }); - } - setCenter(coords, addnewsMap.getZoom()); - }) - .add('boundschange', function (e) { - setCenter([lat*1, lon*1], addnewsMap.getZoom()); - }); - - // Создание метки - function createPlacemark(coords) { - // переменная arPlacemarkStyles определена в модуле - var categoryId = ($('#category').length) ? $('#category option:selected').val() : 0, - key = (categoryId > 0) ? categoryId : 'default', - placemarkStyle = $.parseJSON(arPlacemarkStyles); - - console.log('categoryId: ',categoryId); - return new ymaps.Placemark(coords, {}, - placemarkStyle[key] - ); - } - }); - }; - -jQuery(document).ready(function($) { - // Прячем поле с координатами. - // Сама функция живёт в /engine/modules/ymaps/addnews.php - // и генерируется автоматически в зависимости от поля. - hideCoordsField('.btn-addmap'); - if ($.magnificPopup) { - // Дефолтные настройки magnificpopup - $.extend(true, $.magnificPopup.defaults, { - tClose: 'Закрыть (Esc)', - tLoading: 'Загрузка...' - }); - - - $('[data-mfp-src]').magnificPopup({ - type: 'inline', - preloader: false, - // focus: '#username', - modal: true, - callbacks: { - open : function () { - doc.trigger('mapInit'); - } - } - }); - }; - - if ($('#map-inline').length) { - ymaps.ready(ymapInline); - function ymapInline() { - var addnewsMap, - myPlacemark, - $map = $('#map'), - coors = getCorrsFromInput(), - lat = coors.lat, - lon = coors.lon, - zoom = coors.zoom; - - $map.height(height); - - if (!addnewsMap) { - - addnewsMap = new ymaps.Map('map-inline', { - center: [lat, lon], // Саратов - zoom: zoom, - controls: controls - }); - }; - // Слушаем клик на карте - addnewsMap.events.add('click', function (e) { - var coords = e.get('coords'); - - // Если метка уже создана – просто передвигаем ее - if (myPlacemark) { - myPlacemark.geometry.setCoordinates(coords); - } - // Если нет – создаем. - else { - myPlacemark = createPlacemark(coords); - - addnewsMap.geoObjects.add(myPlacemark); - // Слушаем событие окончания перетаскивания на метке. - myPlacemark.events.add('dragend', function () { - setCenter(myPlacemark.geometry.getCoordinates(), addnewsMap.getZoom()); - }); - } - setCenter(coords, addnewsMap.getZoom()); - }) - .add('boundschange', function (e) { - setCenter([lat * 1, lon * 1], addnewsMap.getZoom()); - }); - - // Создание метки - function createPlacemark(coords) { - return new ymaps.Placemark(coords, { - draggable: true - }); - } - - - } - } - -}); //ready \ No newline at end of file +/** + * @typedef {object} mapConfig + * + * @property {string} mapSelector + * @property {boolean} isInline + * @property {string} mapUrl + * @property {array} controls + * @property {number} height + * @property {object} defaultPos + * @property {string} defaultPos.lat + * @property {string} defaultPos.lon + * @property {string} defaultPos.zoom + * @property {object} arPlacemarkStyles + * @property {string} inputSelector + * @property {string} xfHolder + */ + +/** + * Функция, запускающая скрипт карты. вызывается из php файла + * @param {mapConfig} mapConfig + */ +// eslint-disable-next-line no-unused-vars +var addNewsMapStart = function(mapConfig) { + var script = document.createElement('script'); + script.src = mapConfig.mapUrl; + script.onload = function() { + ymapsStart(mapConfig); + }; + document.getElementsByTagName('head')[0].appendChild(script); +}; + +/** + * + * @param {mapConfig} mapConfig + */ +var ymapsStart = function(mapConfig) { + var addnewsMap, myPlacemark; + var methods = { + toggleXFieldAndBtn: function() { + var $btn = $('.btn-addmap'); + if ($(mapConfig.xfHolder).css('display') !== 'none') { + $(mapConfig.xfHolder).hide(); + $btn.show(); + } else { + $btn.hide(); + } + }, + + /** + * + * @returns {{lat: string, lon: string, zoom: string}|any | jQuery | null | undefined} + */ + getCoordsFromInput: function() { + var pointInput = $(mapConfig.inputSelector); + if (pointInput.val()) { + return $.parseJSON(pointInput.val()); + } else { + return mapConfig.defaultPos; + } + }, + + /** + * + * @param coords + * @param zoom + */ + setCenter: function(coords, zoom) { + if (coords && coords.length && zoom) { + var inpText = + '{"lat":"' + + coords[0].toPrecision(6) + + '", "lon" : "' + + coords[1].toPrecision(6) + + '", "zoom": "' + + zoom + + '"}'; + $(mapConfig.inputSelector).val(inpText); + } + }, + + /** + * + * @returns {Array} + */ + getDataFromInput: function() { + var returnValue = []; + var inputValue = $(mapConfig.inputSelector).val(); + if (inputValue) { + var inputCoords = JSON.parse(inputValue); + returnValue = [inputCoords.lat * 1, inputCoords.lon * 1]; + } + return returnValue; + }, + + resetCoords: function() { + $(mapConfig.inputSelector).val(''); + }, + + /** + * + * @param coords + * @returns {object} ymaps.Placemark + */ + createPlacemark: function(coords) { + var $catList = $('[name="catlist[]"]'); + var categoryId = 0; + if ($catList.length) { + categoryId = $catList.find('option:selected').val() || $catList.val(); + } + var key = categoryId > 0 ? categoryId : 'default'; + var placemarkStyle = mapConfig.arPlacemarkStyles; + + return new ymaps.Placemark(coords, {}, placemarkStyle[key]); + }, + + /** + * + * @param res + */ + addOrMovePlacemark: function(res) { + // Пробуем получить метку из геометрии переданной точки (если точка передана из поиска) + var coords = res.geometry && res.geometry.getCoordinates(); + + // Или пробуем достать её из текущих координат (если это клик по карте) + if (!coords) { + coords = res.get('coords'); + } + // Если метка уже создана – просто передвигаем ее + if (myPlacemark) { + myPlacemark.geometry.setCoordinates(coords); + } else { + // Если нет – создаем. + myPlacemark = methods.createPlacemark(coords); + addnewsMap.geoObjects.add(myPlacemark); + + // Слушаем событие окончания перетаскивания на метке. + myPlacemark.events.add('dragend', function() { + methods.setCenter(myPlacemark.geometry.getCoordinates(), addnewsMap.getZoom()); + }); + } + methods.setCenter(myPlacemark.geometry.getCoordinates(), addnewsMap.getZoom()); + } + }; + var doc = $(document); + + doc.on('change', '#category', methods.toggleXFieldAndBtn).on('click', '.add-map-clear', methods.resetCoords); + + // Инициализация карты. + ymaps.ready(addMapInit); + + function addMapInit() { + // Скрываем поле с координатами карты, оно не нужно пользователю. + methods.toggleXFieldAndBtn(); + // Убираем блокировку с кнопки открытия модального окна + $('.btn-addmap').prop('disabled', false); + + doc.on('mapInit', function() { + var $map = $('#' + mapConfig.mapSelector); + var coors = methods.getCoordsFromInput(); + var lat = coors.lat; + var lon = coors.lon; + var zoom = coors.zoom; + + // На всякий случай устанавливаем высоту карты + $map.height(mapConfig.height); + + if (addnewsMap) { + myPlacemark = false; + addnewsMap.events.remove(['click', 'boundschange', 'dragend', 'resultselect', 'submit']); + addnewsMap.destroy(); + } + + addnewsMap = new ymaps.Map(mapConfig.mapSelector, { + center: [lat, lon], // Саратов + zoom: zoom, + controls: mapConfig.controls + }); + + var searchControl = addnewsMap.controls.get('searchControl'); + + if (searchControl) { + searchControl.options.set('noPlacemark', true); + searchControl.events.add('resultselect', function(e) { + var index = e.get('index'); + searchControl.getResult(index).then(methods.addOrMovePlacemark); + }); + } + + var dataFromInput = methods.getDataFromInput(); + + if (dataFromInput) { + myPlacemark = methods.createPlacemark(dataFromInput); + addnewsMap.geoObjects.add(myPlacemark); + } + + // Слушаем клик на карте + addnewsMap.events.add('click', methods.addOrMovePlacemark).add('boundschange', function() { + var coords = [lat * 1, lon * 1]; + + if (myPlacemark) { + coords = myPlacemark.geometry.getCoordinates(); + } + methods.setCenter(coords, addnewsMap.getZoom()); + }); + }); + + if (mapConfig.isInline) { + doc.trigger('mapInit'); + } + + if ($.magnificPopup) { + // Дефолтные настройки magnificpopup + $.extend(true, $.magnificPopup.defaults, { + tClose: 'Закрыть (Esc)', + tLoading: 'Загрузка...' + }); + + $('[data-mfp-src]').magnificPopup({ + type: 'inline', + preloader: false, + // focus: '#username', + modal: true, + callbacks: { + open: function() { + doc.trigger('mapInit'); + } + } + }); + } + } +}; diff --git a/templates/{THEME}/ymaps/ymaps_public.js b/templates/{THEME}/ymaps/ymaps_public.js index 7247afb..6f81282 100644 --- a/templates/{THEME}/ymaps/ymaps_public.js +++ b/templates/{THEME}/ymaps/ymaps_public.js @@ -1,4 +1,4 @@ -/**! +/** ! * DLE-YandexMaps — Бесплатный модуль Яндекс Карт для DLE * * @author ПафНутиЙ @@ -7,31 +7,28 @@ var doc = $(document); -doc - .on('click', '.modal-close, .btn-close', function() { - $.magnificPopup.close(); - }); +doc.on('click', '.modal-close, .btn-close', function() { + $.magnificPopup.close(); +}); jQuery(document).ready(function($) { + // Дефолтные настройки magnificpopup + $.extend(true, $.magnificPopup.defaults, { + tClose: 'Закрыть (Esc)', // Alt text on close button + tLoading: 'Загрузка...', // Text that is displayed during loading. Can contain %curr% and %total% keys + ajax: { + tError: 'Контент не загружен.' // Error message when ajax request failed + } + }); - // Дефолтные настройки magnificpopup - $.extend(true, $.magnificPopup.defaults, { - tClose: 'Закрыть (Esc)', // Alt text on close button - tLoading: 'Загрузка...', // Text that is displayed during loading. Can contain %curr% and %total% keys - ajax: { - tError: 'Контент не загружен.' // Error message when ajax request failed - } - }); - - $('[data-mfp-src]').magnificPopup({ - type: 'inline', - preloader: true, - modal: true, - callbacks: { - open : function () { - doc.trigger('mapInit'); - } - } - }); - -}); //ready + $('[data-mfp-src]').magnificPopup({ + type: 'inline', + preloader: true, + modal: true, + callbacks: { + open: function() { + doc.trigger('mapInit'); + } + } + }); +}); // ready diff --git a/templates/{THEME}/ymaps/ymaps_quickedit.js b/templates/{THEME}/ymaps/ymaps_quickedit.js deleted file mode 100644 index be7f60b..0000000 --- a/templates/{THEME}/ymaps/ymaps_quickedit.js +++ /dev/null @@ -1,52 +0,0 @@ -/**! - * DLE-YandexMaps — Бесплатный модуль Яндекс Карт для DLE - * - * @author ПафНутиЙ - * @link https://git.io/v9irg - */ - -var doc = $(document); - -doc - .on('dialogopen', '#dlepopup-news-edit', function (event, ui) { - var $this = $(this); - setTimeout(function () { - $.ajax({ - url: dle_root + 'engine/ajax/ymaps/editnews.php', - }) - .done(function(data) { - $this.append(data); - hideCoordsField(); - $.extend(true, $.magnificPopup.defaults, { - tClose: 'Закрыть (Esc)', - tLoading: 'Загрузка...' - }); - - $('.btn-editmap-modal').magnificPopup({ - type: 'inline', - preloader: false, - modal: true, - callbacks: { - open : function () { - doc.trigger('editMapInit'); - } - } - }); - - }) - .fail(function() { - console.log("error"); - }); - - }, 500); - }) - .on('click', '.popup-modal-dismiss', function(e) { - e.preventDefault(); - $.magnificPopup.close(); - }) - .on('click', '.btn-editmap-save', function(e) { - if (coordsFieldText) { - pointInput.val(coordsFieldText); - hideCoordsField(); - }; - }); From 20fb99b9baa6100774d9214cfe52a53a6dc55bc9 Mon Sep 17 00:00:00 2001 From: pafnuty Date: Sat, 29 Feb 2020 02:21:19 +0400 Subject: [PATCH 04/12] =?UTF-8?q?3.0.0=20=D0=A3=D0=B4=D0=B0=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- engine/data/ymaps_config.json | 3 --- engine/inc/ymaps.php | 9 ++------- engine/modules/ymaps/js/main.js | 16 ---------------- engine/modules/ymaps/language/English.lng | 1 - engine/modules/ymaps/language/Russian.lng | 1 - engine/modules/ymaps/language/Ukrainian.lng | 1 - 6 files changed, 2 insertions(+), 29 deletions(-) diff --git a/engine/data/ymaps_config.json b/engine/data/ymaps_config.json index d451cbc..be7fb17 100644 --- a/engine/data/ymaps_config.json +++ b/engine/data/ymaps_config.json @@ -2,9 +2,6 @@ "moduleName": "ymaps", "moduleTitle": "Yandex Maps", "moduleDescr": "Модуль Яндекс.Карты для DLE", - "moduleVersion": "2.0.1", - "moduleDate": "16.10.2018", - "dleVersion": "10.x", "main": { "moduleLang": "Russian", "licenceKey": "", diff --git a/engine/inc/ymaps.php b/engine/inc/ymaps.php index cde5b24..53547bd 100644 --- a/engine/inc/ymaps.php +++ b/engine/inc/ymaps.php @@ -68,14 +68,9 @@ class="btn btn-small btn-white">= $lang['skin_view'] ?> -HTML; - -$btnHtml = <<editmap - -HTML; - - - -$ymapsJson = [ - 'mapSelector' => $mapSelector, - 'mapUrl' => '//api-maps.yandex.ru/2.1/?lang=ru_RU' . $key, - 'scripts' => [ - '/engine/modules/' . $cfg->moduleName . '/js/jquery.magnificpopup.min.js' - ], - 'controls' => $controls, - 'height' => $cfg->main->mapHeight, - 'defaultPos' => [ - 'lat' => $cfg->main->mapCenter->latitude, - 'lon' => $cfg->main->mapCenter->longitude, - 'zoom' => $cfg->main->mapCenter->zoom, - ], - 'arPlacemarkStyles' => $cfg->pointSettings->catPoints, - 'inputSelector' => '[name="xfield[' . $cfg->main->coordsField .']"]', - 'xfHolder' => '#xfield_holder_' . $cfg->main->coordsField, - 'modalHtml' => $modalHtml, - 'btnHtml' => $btnHtml, - 'text' => [ - 'edit' => $module_lang['moduleTextEditPlacemark'], - 'add' => $module_lang['moduleTextAddPlacemark'] - ] -]; - - -header('Content-Type: application/json'); -echo json_encode($ymapsJson); diff --git a/engine/ajax/ymaps/saveconfig.php b/engine/ajax/ymaps/saveconfig.php deleted file mode 100644 index c149eaa..0000000 --- a/engine/ajax/ymaps/saveconfig.php +++ /dev/null @@ -1,78 +0,0 @@ - - * @link https://git.io/v9irg - */ - -// Всякие обязательные штуки для ajax DLE -@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); -@ini_set('display_errors', true); -@ini_set('html_errors', false); -@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE); - -define('DATALIFEENGINE', true); -define('ROOT_DIR', substr(dirname(__FILE__), 0, -18)); - -define('ENGINE_DIR', ROOT_DIR . '/engine'); - -$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json'), true); - -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); - -include (DLEPlugins::Check(ENGINE_DIR . '/data/config.php')); - -require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); -dle_session(); - - -$user_group = get_vars("usergroup"); -if (!$user_group) { - $user_group = []; - $db->query("SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC"); - while ($row = $db->get_row()) { - $user_group[$row['id']] = []; - foreach ($row as $key => $value) $user_group[$row['id']][$key] = stripslashes($value); - } - set_vars("usergroup", $user_group); - $db->free(); -} -require_once ENGINE_DIR . '/modules/sitelogin.php'; - -/** - * Основной код файла - */ -if ($member_id['user_group'] == '1') { - - if ($_POST['pointID'] > 0 || $_POST['pointID'] == 'default') { - $post = array_filter($_POST); - - $catId = $post['pointID']; - unset($post['pointID']); - if (isset($post['preset']) && isset($post['iconColor'])) { - $cfg['pointSettings']['catPoints'][$catId] = ['preset' => $post['preset'], 'iconColor' => $post['iconColor'],]; - } elseif (isset($post['iconLayout'])) { - unset($post['preset']); - $cfg['pointSettings']['catPoints'][$catId] = $post; - } elseif ($post['preset']) { - $cfg['pointSettings']['catPoints'][$catId] = ['preset' => $post['preset'],]; - } - if (isset($_POST['deletePoint']) && $_POST['deletePoint'] == 'y') { - unset($cfg['pointSettings']['catPoints'][$catId]); - } - - } - if ($_POST['mapsettings']) { - unset($_POST['mapsettings']); - $cfg['main'] = $_POST; - } - - $jsn = json_encode($cfg); - file_put_contents(ENGINE_DIR . '/data/ymaps_config.json', $jsn); - die ($jsn); -} else { - die ('Access denied'); -} \ No newline at end of file diff --git a/engine/ajax/ymaps/xfields.php b/engine/ajax/ymaps/xfields.php deleted file mode 100644 index 9e4bbef..0000000 --- a/engine/ajax/ymaps/xfields.php +++ /dev/null @@ -1,91 +0,0 @@ - - * @link https://git.io/v9irg - */ - -// Всякие обязательные штуки для ajax DLE -@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); -@ini_set('display_errors', true); -@ini_set('html_errors', false); -@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE); - -define('DATALIFEENGINE', true); -define('ROOT_DIR', substr(dirname(__FILE__), 0, -18)); - -define('ENGINE_DIR', ROOT_DIR . '/engine'); - -$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json'), true); - -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); - -if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { - include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); -} else { - die("Language file not found"); -} - - -include (DLEPlugins::Check(ENGINE_DIR . '/data/config.php')); - -require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); - -dle_session(); - - - -$user_group = get_vars("usergroup"); -if (!$user_group) { - $user_group = []; - $db->query("SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC"); - while ($row = $db->get_row()) { - $user_group[$row['id']] = []; - foreach ($row as $key => $value) $user_group[$row['id']][$key] = stripslashes($value); - } - set_vars("usergroup", $user_group); - $db->free(); -} -require_once ENGINE_DIR . '/modules/sitelogin.php'; -require_once MODULE_DIR . 'admin/classes/xfields.php'; - - -/** - * Основной код файла - */ - -if ($member_id['user_group'] == '1') { - $fun = new xfClass; - $name = (isset($_REQUEST['name'])) ? $db->safesql($_REQUEST['name']) : false; - $description = (isset($_REQUEST['description'])) ? $db->safesql($_REQUEST['description']) : false; - $value = (isset($_REQUEST['value'])) ? $db->safesql($_REQUEST['value']) : false; - $fieldType = (isset($_REQUEST['fieldType'])) ? $db->safesql($_REQUEST['fieldType']) : false; - - $xf = $fun->xf('add', $name, $description, $value, $fieldType)->result; - - if ($xf) { - $content = 'diff --git a/engine/modules/ymaps/js/main.js b/engine/modules/ymaps/js/main.js index 2af0797..575bd00 100644 --- a/engine/modules/ymaps/js/main.js +++ b/engine/modules/ymaps/js/main.js @@ -200,22 +200,6 @@ doc thisVal = $this.val(); $('.selected-marker').css('background', thisVal); - }) - .on('sheckLicenseStatus', function (event) { - var $licenseStatus = $('#licenseStatus'); - $.ajax({ - url: 'engine/ajax/ymaps/check_status.php' - }) - .done(function (data) { - $licenseStatus.html(data); - }) - .fail(function () { - console.log("error"); - }) - .always(function () { - console.log("complete"); - }); - }); // pre-submit callback diff --git a/engine/modules/ymaps/language/English.lng b/engine/modules/ymaps/language/English.lng index 827ec70..cd85be2 100644 --- a/engine/modules/ymaps/language/English.lng +++ b/engine/modules/ymaps/language/English.lng @@ -121,7 +121,6 @@ $module_lang = array ( 'could_not_save_local_key' => 'Error, it is not possible to record a new local key.', 'license_key_string_mismatch' => 'Error, the local key is not valid for the specified license.', 'license_error' => 'License error, contact the author of the module.', - 'licenseStatus' => 'License status: ', 'moduleActionReset' => 'Reset', // 1.4.3 diff --git a/engine/modules/ymaps/language/Russian.lng b/engine/modules/ymaps/language/Russian.lng index 0ef69bb..60b786f 100644 --- a/engine/modules/ymaps/language/Russian.lng +++ b/engine/modules/ymaps/language/Russian.lng @@ -121,7 +121,6 @@ $module_lang = array ( 'could_not_save_local_key' => 'Ошибка, не возможно записать новый локальный ключ.', 'license_key_string_mismatch' => 'Ошибка, локальный ключ не действителен для указанной лицензии.', 'license_error' => 'Ошибка лицензии, обратитесь к автору модуля.', - 'licenseStatus' => 'Статус лицензии: ', 'moduleActionReset' => 'Сбросить', // 1.4.3 diff --git a/engine/modules/ymaps/language/Ukrainian.lng b/engine/modules/ymaps/language/Ukrainian.lng index 810b674..8e573a6 100644 --- a/engine/modules/ymaps/language/Ukrainian.lng +++ b/engine/modules/ymaps/language/Ukrainian.lng @@ -121,7 +121,6 @@ $module_lang = array ( 'could_not_save_local_key' => 'Помилка, не можливо записати новий локальний ключ.', 'license_key_string_mismatch' => 'Помилка, локальний ключ не дійсний для зазначеної ліцензії.', 'license_error' => 'Помилка ліцензії, зверніться до автора модуля.', - 'licenseStatus' => 'Статус ліцензії: ', 'moduleActionReset' => 'Сбросить', // 1.4.3 From 16f0cf566878200c05eedd144d253cec142dd860 Mon Sep 17 00:00:00 2001 From: pafnuty-= $cfg->moduleTitle ?> - - v.= $cfg->moduleVersion ?> = $module_lang['ot'] ?> = $cfg->moduleDate ?> - = $module_lang['moduleTextCheckUpdates'] ?> +
+ = $cfg->moduleTitle ?>
-= $module_lang['licenseStatus'] ?> -
Date: Sat, 29 Feb 2020 13:30:22 +0400 Subject: [PATCH 05/12] =?UTF-8?q?3.0.0=20=D0=A3=D0=B4=D0=B0=D0=BB=D1=8F?= =?UTF-8?q?=D0=B5=D0=BC=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 9 +- engine/modules/ymaps/language/English.lng | 134 -------------------- engine/modules/ymaps/language/Russian.lng | 48 +------ engine/modules/ymaps/language/Ukrainian.lng | 134 -------------------- 4 files changed, 8 insertions(+), 317 deletions(-) delete mode 100644 engine/modules/ymaps/language/English.lng delete mode 100644 engine/modules/ymaps/language/Ukrainian.lng diff --git a/CHANGELOG.md b/CHANGELOG.md index f942099..4af1296 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ -##v2.0.1 от 16.10.2018 +## 3.0.0 +- Прекращена поддержка DLE ниже, чем версии 13.x +- Убрана Украинская локализация т.к. Яндекс заблокирован на территории Украины. +- Убрана Английская локализация т.к. никто не пользуется этой версией. + +## 2.0.1 от 16.10.2018 - Совместимость с DLE 13.X -##v2.0.0 от 09.05.2017 +## 2.0.0 от 09.05.2017 - Открытие исходников оригинального модуля для бесплатного использования. diff --git a/engine/modules/ymaps/language/English.lng b/engine/modules/ymaps/language/English.lng deleted file mode 100644 index cd85be2..0000000 --- a/engine/modules/ymaps/language/English.lng +++ /dev/null @@ -1,134 +0,0 @@ - 'English', - 'moduleLangName' => 'Language', - 'moduleSettings' => 'Settings', - 'allmapsSettings' => 'Customize the page with labels', - 'mapsHelp' => 'Help (Rus)', - 'mapsSupport' => 'Help and support', - 'moduleOn' => 'To enable the module', - 'moduleTextManagment' => 'Management module', - 'moduleTextAllSections' => 'A list of all partitions', - 'moduleTextCheckUpdates' => 'Check for updates', - 'moduleTextUnderConstructionFunction' => 'This function is still in development. Stay tuned in twitter.', - - 'mapSettings' => 'Map settings', - 'mapsSettings' => 'Customize the page with labels', - - 'moduleTextApiKey' => 'API Key Yandex maps', - 'moduleTextApiKeyWhat' => 'For what need key?', - 'moduleTextMapHeight' => 'The height of the default map (px)', - 'moduleTextMapControls' => 'The map controls', - 'moduleTextMapFullScreen' => 'click the expander card in full screen', - 'moduleTextMapLocation' => 'button location', - 'moduleTextMapRoute' => 'button to enable and disable the behavior editor "route"', - 'moduleTextMapRuler' => 'button to enable and disable the behavior of the "ruler"', - 'moduleTextMapSearchPanel' => 'search bar', - 'moduleTextMapProbki' => 'the panel tubes', - 'moduleTextMapTypeTrigger' => 'panel to switch the card type', - 'moduleTextMapZoom' => 'the zoom slider', - 'moduleTextMapZoomDefault' => 'The center of the map and zoom of default', - 'moduleTextMapLat' => 'Latitude', - 'moduleTextMapLon' => 'Longitude', - 'moduleTextMapZoomPlaceholder' => 'Zoom', - 'moduleTextMapSelectOnMap' => 'select on map', - 'moduleTextMapZoomXf' => 'The xfield name for information about the point', - 'moduleTextMapZoomXfPlaceholder' => 'Coordinates and zoom the map', - 'moduleTextMapZoomXfPlaceholderText' => 'For example coords', - 'moduleTextMapBaloonXf' => 'The xfield name for the content of a balun', - 'moduleTextMapBaloonXfPlaceholder' => 'The contents of a balun card', - 'moduleTextMapBaloonXfPlaceholderText'=> 'For example balloon', - - 'moduleTextEnterPlacemarkText' => 'Enter a description tag', - - - - 'moduleTextMissedTemplateFile' => 'No template file', - 'moduleActionYes' => 'Yes', - 'moduleActionNo' => 'No', - 'moduleActionClose' => 'Close', - 'moduleActionSave' => 'Save', - 'moduleActionCancel' => 'Cancel', - 'moduleActionCreateXf' => 'Create', - 'updateAviable' => 'Update available', - 'ot' => 'from', - 'update' => 'Update', - 'noUpdate' => 'There is no update.', - 'field' => 'Field', - 'successfullyСreated' => 'successfully created!', - 'xfieldsSetup' => 'xfields management', - 'contactsForSupport' => 'Contact information and technical support:', - 'pafnutyName' => 'ПафНутиЙ', - 'pafnutySite' => 'The author\'s website', - 'pafnutyMail' => 'email of the author', - 'pafnutyGPlus' => '+Павел', - - // 1.4 - 'mapsPointSettings' => 'Setting labels', - 'pointersCat' => 'Marks in the categories: ', - 'pointersCatDefault' => 'Default icon: ', - 'catIdWrong' => 'The category does not exist', - 'moduleActionApply' => 'Apply', - 'markerCustomColor' => ' (its color)', - 'moduleActionChange' => 'Change', - 'moduleActionAdd' => 'Add', - 'moduleTextMarkerSettingsHeader' => 'Setting labels for the category: ', - 'moduleTextMarkerWText' => 'Label with text', - 'moduleTextMarkerStrech' => 'Rubber label with text', - 'moduleTextMarkerWDot' => 'Label point', - 'moduleTextMarkerRound' => 'All tags', - 'moduleTextMarkerRoundWDot' => 'Round tag with point', - 'moduleTextMarkerCustom' => 'Own image', - 'moduleTextIconWidth' => 'The width of the icons: ', - 'moduleTextIconHeight' => 'The height of the icons: ', - 'moduleTextIconOffWidth' => 'Offset hoizontal: ', - 'moduleTextIconOffHeight' => 'The vertical offset: ', - 'moduleTextExampleLink' => 'An example of positioning the icons', - 'moduleTextEditPlacemark' => 'Edit tag', - 'moduleTextAddPlacemark' => 'Add tag', - 'moduleTextDelPlacemark' => 'Remove label', - 'moduleTextNoNews' => 'Nothing found', - 'moduleTextLicenceKey' => 'License key module', - 'moduleTextGetlicenceKey' => 'Get the key', - 'moduleTextHelp' => 'Help module', - 'moduleLongText1' => 'Help is on the official support site for address', - 'moduleLongText2' => 'Support module is only for customers support.', - 'moduleLongText3' => 'To get the status of the client support needs', - 'moduleTextBreef' => 'fill form', - 'moduleLongText4' => 'In the comments, be sure to specify the date of purchase and information about the payment module.', - 'moduleLongText5' => 'If You already iavleaetesi customer (bought a template or other modules) — tell me about it, will solve any issues.', - 'moduleTextSupportСond' => 'Technical support', - 'moduleTextOtherSite' => 'Use the module on a few of their own sites', - 'moduleLongText6' => '', - - - 'status_1' => 'Active', - 'status_2' => 'Attention, the license validity period has ended.', - 'status_3' => 'Attention, the license is reissued. Waiting for re-activation.', - 'status_4' => 'Error, the license was suspended.', - 'localhost' => 'Active on localhost, the local computer, the real server will be activated.', - 'pending' => 'Error, license pending.', - 'download_access_expired' => 'Error, the activation key is not suitable for the installed version. Please put an older version of the product.', - 'missing_license_key' => 'Error, the license key is not specified.', - 'could_not_obtain_local_key' => 'Error, it is impossible to obtain a new local key.', - 'maximum_delay_period_expired' => 'Error, the grace period local key has expired.', - 'local_key_tampering' => 'Error, the local license key is corrupted or not valid.', - 'local_key_invalid_for_location' => 'Error, the local key is not suited to this site.', - 'missing_license_file' => 'Error, create the following empty file and folders if they are gone:
', - 'license_file_not_writable' => 'Error, make to record the following ways:
', - 'invalid_local_key_storage' => 'Error, it is not possible to delete the old local key.', - 'could_not_save_local_key' => 'Error, it is not possible to record a new local key.', - 'license_key_string_mismatch' => 'Error, the local key is not valid for the specified license.', - 'license_error' => 'License error, contact the author of the module.', - 'moduleActionReset' => 'Reset', - - // 1.4.3 - 'moduleActionDelete' => 'Delete', - - // 1.4.4 - 'moduleLongText7' => '', - 'moduleTextDocks' => 'Documentation and examples of usage', -); - -?> \ No newline at end of file diff --git a/engine/modules/ymaps/language/Russian.lng b/engine/modules/ymaps/language/Russian.lng index 60b786f..2cd9c7a 100644 --- a/engine/modules/ymaps/language/Russian.lng +++ b/engine/modules/ymaps/language/Russian.lng @@ -11,7 +11,6 @@ $module_lang = array ( 'moduleTextManagment' => 'Управление модулем', 'moduleTextAllSections' => 'Список всех разделов', 'moduleTextCheckUpdates' => 'Проверить обновления', - 'moduleTextUnderConstructionFunction' => 'Данный функционал пока в разработке. Следите за обновлениями в twitter.', 'mapSettings' => 'Настройки карты', 'mapsSettings' => 'Настройки страницы с метками', @@ -39,11 +38,7 @@ $module_lang = array ( 'moduleTextMapBaloonXf' => 'Имя допполя для содержимого балуна', 'moduleTextMapBaloonXfPlaceholder' => 'Содержимое балуна карты', 'moduleTextMapBaloonXfPlaceholderText'=> 'Например balloon', - 'moduleTextEnterPlacemarkText' => 'Введите описание метки', - - - 'moduleTextMissedTemplateFile' => 'Отсутствует файл шаблона', 'moduleActionYes' => 'Да', 'moduleActionNo' => 'Нет', @@ -51,18 +46,11 @@ $module_lang = array ( 'moduleActionSave' => 'Сoхранить', 'moduleActionCancel' => 'Отменить', 'moduleActionCreateXf' => 'Создать поле', - 'updateAviable' => 'Доступно обновление', 'ot' => 'от', - 'update' => 'Обновить', - 'noUpdate' => 'Обновлений нет.', 'field' => 'Поле', 'successfullyСreated' => 'успешно создано!', 'xfieldsSetup' => 'управление допполями', 'contactsForSupport' => 'Контакты для связи и техподдержки:', - 'pafnutyName' => 'ПафНутиЙ', - 'pafnutySite' => 'Сайт автора', - 'pafnutyMail' => 'email автора', - 'pafnutyGPlus' => '+Павел', // 1.4 'mapsPointSettings' => 'Настройка меток', @@ -88,47 +76,13 @@ $module_lang = array ( 'moduleTextEditPlacemark' => 'Редактировать метку', 'moduleTextAddPlacemark' => 'Добавить метку', 'moduleTextDelPlacemark' => 'Удалить метку', - 'moduleTextNoNews' => 'Ничего не найдено', - 'moduleTextLicenceKey' => 'Лицензионный ключ модуля', - 'moduleTextGetlicenceKey' => 'Получить ключ', 'moduleTextHelp' => 'Справка по модулю', 'moduleLongText1' => 'Справка по модулю находится на официальном сайте поддержки по адресу', - 'moduleLongText2' => 'Техническая поддержка по модулю оказывается только клиентам техподдержки.', - 'moduleLongText3' => 'Для получения статуса клиента техподдержки, необходимо', - 'moduleTextBreef' => 'заполнить анкету', - 'moduleLongText4' => 'При этом в комментарии обязательно укажите дату покупки и информацию об оплате модуля.', - 'moduleLongText5' => 'Если Вы уже являеетесь клиентом (покупали шаблон или другие модули) — напомните мне об этом, решим любые вопросы.', 'moduleTextSupportСond' => 'Техническая поддержка', - 'moduleTextOtherSite' => 'Использование модуля на нескольких собственных сайтах', - 'moduleLongText6' => '', - - - 'status_1' => 'Активна', - 'status_2' => 'Внимание, срок действия лицензии закончился.', - 'status_3' => 'Внимание, лицензия переиздана. Ожидает повторной активации.', - 'status_4' => 'Ошибка, лицензия была приостановлена.', - 'localhost' => 'Активна на localhost, используется локальный компьютер, на реальном сервере произойдет активация.', - 'pending' => 'Ошибка, лицензия ожидает рассмотрения.', - 'download_access_expired' => 'Ошибка, ключ активации не подходит для установленной версии. Пожалуйста поставьте более старую версию продукта.', - 'missing_license_key' => 'Ошибка, лицензионный ключ не указан.', - 'could_not_obtain_local_key' => 'Ошибка, невозможно получить новый локальный ключ.', - 'maximum_delay_period_expired' => 'Ошибка, льготный период локального ключа истек.', - 'local_key_tampering' => 'Ошибка, локальный лицензионный ключ поврежден или не действителен.', - 'local_key_invalid_for_location' => 'Ошибка, локальный ключ не подходит к данному сайту.', - 'missing_license_file' => 'Ошибка, создайте следующий пустой файл и папки если их нет:
', - 'license_file_not_writable' => 'Ошибка, сделайте доступными для записи следующие пути:
', - 'invalid_local_key_storage' => 'Ошибка, не возможно удалить старый локальный ключ.', - 'could_not_save_local_key' => 'Ошибка, не возможно записать новый локальный ключ.', - 'license_key_string_mismatch' => 'Ошибка, локальный ключ не действителен для указанной лицензии.', - 'license_error' => 'Ошибка лицензии, обратитесь к автору модуля.', - 'moduleActionReset' => 'Сбросить', // 1.4.3 'moduleActionDelete' => 'Удалить', // 1.4.4 - 'moduleLongText7' => '', 'moduleTextDocks' => 'Документация и примеры использования', -); - -?> \ No newline at end of file +); \ No newline at end of file diff --git a/engine/modules/ymaps/language/Ukrainian.lng b/engine/modules/ymaps/language/Ukrainian.lng deleted file mode 100644 index 8e573a6..0000000 --- a/engine/modules/ymaps/language/Ukrainian.lng +++ /dev/null @@ -1,134 +0,0 @@ - 'Ukrainian', - 'moduleLangName' => 'Мова', - 'moduleSettings' => 'Налаштування', - 'allmapsSettings' => 'Налаштування сторінки з наліпками', - 'mapsHelp' => 'Довідка (Rus)', - 'mapsSupport' => 'Довідка і техпідтримка', - 'moduleOn' => 'Включити модуль', - 'moduleTextManagment' => 'Керування модулем', - 'moduleTextAllSections' => 'Список всіх розділів', - 'moduleTextCheckUpdates' => 'Перевірити оновлення', - 'moduleTextUnderConstructionFunction' => 'Даний функціонал поки в розробці. Слідкуйте за оновленнями twitter.', - - 'mapSettings' => 'Налаштування карти', - 'mapsSettings' => 'Налаштування сторінки з мітками', - - 'moduleTextApiKey' => 'API Key Яндекс карт', - 'moduleTextApiKeyWhat' => 'Для чого потрібен ключ?', - 'moduleTextMapHeight' => 'Висота карти за замовчуванням (px)', - 'moduleTextMapControls' => 'Елементи управління картою', - 'moduleTextMapFullScreen' => 'кнопка розгортання карти на весь екран', - 'moduleTextMapLocation' => 'кнопка визначення місця розташування користувача', - 'moduleTextMapRoute' => 'кнопка включення і відключення поведінки "редактор маршруту"', - 'moduleTextMapRuler' => 'кнопка включення і відключення поведінки "лінійка"', - 'moduleTextMapSearchPanel' => 'панель пошуку', - 'moduleTextMapProbki' => 'панель пробок', - 'moduleTextMapTypeTrigger' => 'панель перемикання типу карти', - 'moduleTextMapZoom' => 'повзунок масштабу', - 'moduleTextMapZoomDefault' => 'Центр карти і зум за замовчуванням', - 'moduleTextMapLat' => 'Ширина', - 'moduleTextMapLon' => 'Довгота', - 'moduleTextMapZoomPlaceholder' => 'Зум', - 'moduleTextMapSelectOnMap' => 'вибрати на карті', - 'moduleTextMapZoomXf' => 'Ім\'я допполя для інформації про точку', - 'moduleTextMapZoomXfPlaceholder' => 'Координати і зум карти', - 'moduleTextMapZoomXfPlaceholderText' => 'Наприклад coords', - 'moduleTextMapBaloonXf' => 'Ім\'я допполя вмісту балуна', - 'moduleTextMapBaloonXfPlaceholder' => 'Вміст балуна карти', - 'moduleTextMapBaloonXfPlaceholderText'=> 'Наприклад balloon', - - 'moduleTextEnterPlacemarkText' => 'Введіть опис мітки', - - - - 'moduleTextMissedTemplateFile' => 'Відсутній файл шаблону', - 'moduleActionYes' => 'Так', - 'moduleActionNo' => 'Немає', - 'moduleActionClose' => 'Закрити', - 'moduleActionSave' => 'Зберегти', - 'moduleActionCancel' => 'Скасувати', - 'moduleActionCreateXf' => 'Створити поле', - 'updateAviable' => 'Оновлення', - 'ot' => 'від', - 'update' => 'Оновити', - 'noUpdate' => 'Оновлень немає.', - 'field' => 'Поле', - 'successfullyСreated' => 'успішно створений!', - 'xfieldsSetup' => 'управління допполями', - 'contactsForSupport' => 'Контакти для зв\'язку і техпідтримки:', - 'pafnutyName' => 'ПафНутиЙ', - 'pafnutySite' => 'Сайт автора', - 'pafnutyMail' => 'email автора', - 'pafnutyGPlus' => '+Павел', - - // 1.4 - 'mapsPointSettings' => 'Налаштування міток', - 'pointersCat' => 'Мітки в категоріях: ', - 'pointersCatDefault' => 'Іконка за замовчуванням: ', - 'catIdWrong' => 'Категорія не існує', - 'moduleActionApply' => 'Застосувати', - 'markerCustomColor' => ' (свій колір)', - 'moduleActionChange' => 'Змінити', - 'moduleActionAdd' => 'Додати', - 'moduleTextMarkerSettingsHeader' => 'Налаштування мітки для категорії: ', - 'moduleTextMarkerWText' => 'Мітки з текстом', - 'moduleTextMarkerStrech' => 'Гумові мітки з текстом', - 'moduleTextMarkerWDot' => 'Мітки з точкою', - 'moduleTextMarkerRound' => 'Круглі мітки', - 'moduleTextMarkerRoundWDot' => 'Круглі мітки з точкою', - 'moduleTextMarkerCustom' => 'Власне зображення', - 'moduleTextIconWidth' => 'Ширина іконки: ', - 'moduleTextIconHeight' => 'Висота іконки: ', - 'moduleTextIconOffWidth' => 'Зсув по гоизонтали: ', - 'moduleTextIconOffHeight' => 'Зсув по вертикалі: ', - 'moduleTextExampleLink' => 'Приклад позиціонування іконки', - 'moduleTextEditPlacemark' => 'Редагувати мітку', - 'moduleTextAddPlacemark' => 'Додати мітку', - 'moduleTextDelPlacemark' => 'Видалити мітку', - 'moduleTextNoNews' => 'Нічого не знайдено', - 'moduleTextLicenceKey' => 'Ліцензійний ключ модуля', - 'moduleTextGetlicenceKey' => 'Отримати ключ', - 'moduleTextHelp' => 'Справка по модулю', - 'moduleLongText1' => 'Довідка по модулю знаходиться на офіційному сайті підтримки за адресою', - 'moduleLongText2' => 'Технічна підтримка по модулю виявляється тільки клієнтам техпідтримки.', - 'moduleLongText3' => 'Для отримання статусу клієнта техпідтримки, необхідно', - 'moduleTextBreef' => 'заповнити анкету', - 'moduleLongText4' => 'При цьому в коментарі обов\'язково вкажіть дату купівлі та інформацію про оплату модуля.', - 'moduleLongText5' => 'Якщо Ви вже являеетесь клієнтом (купували шаблон або інші модулі) — нагадайте мені про це, вирішимо будь-які питання.', - 'moduleTextSupportСond' => 'Технічна підтримка', - 'moduleTextOtherSite' => 'Використання модуля на декількох власних сайтах', - 'moduleLongText6' => '', - - - 'status_1' => 'Активна', - 'status_2' => 'Увагу, термін дії ліцензії закінчився.', - 'status_3' => 'Увагу, ліцензія перевидана. Очікує повторної активації.', - 'status_4' => 'Помилка, ліцензія була припинена.', - 'localhost' => 'Активна на localhost, використовується локальний комп\'ютер, на реальному сервері відбудеться активація.', - 'pending' => 'Помилка, ліцензія очікує розгляду.', - 'download_access_expired' => 'Помилка, ключ активації не підходить для встановленої версії. Будь ласка поставте більш стару версію продукту.', - 'missing_license_key' => 'Помилка, ліцензійний ключ не вказано.', - 'could_not_obtain_local_key' => 'Помилка, неможливо отримати новий локальний ключ.', - 'maximum_delay_period_expired' => 'Помилка, пільговий період локального ключа закінчився.', - 'local_key_tampering' => 'Помилка, локальний ліцензійний ключ пошкоджений або не дійсний.', - 'local_key_invalid_for_location' => 'Помилка, локальний ключ не підходить до даного сайту.', - 'missing_license_file' => 'Помилка, створіть пустий файл і папки якщо їх немає:
', - 'license_file_not_writable' => 'Помилка, зробіть для запису наступні шляхи:
', - 'invalid_local_key_storage' => 'Помилка, не можливо видалити старий локальний ключ.', - 'could_not_save_local_key' => 'Помилка, не можливо записати новий локальний ключ.', - 'license_key_string_mismatch' => 'Помилка, локальний ключ не дійсний для зазначеної ліцензії.', - 'license_error' => 'Помилка ліцензії, зверніться до автора модуля.', - 'moduleActionReset' => 'Сбросить', - - // 1.4.3 - 'moduleActionDelete' => 'Видалити', - - // 1.4.4 - 'moduleLongText7' => '', - 'moduleTextDocks' => 'Документація та приклади використання', -); - -?> \ No newline at end of file From b5cfc0aa124e9b71e88613d4d7c811960cbf3b37 Mon Sep 17 00:00:00 2001 From: pafnutyDate: Sat, 29 Feb 2020 15:06:08 +0400 Subject: [PATCH 06/12] =?UTF-8?q?3.0.0=20=D0=93=D0=BE=D1=82=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - engine/ajax/ymaps/editmarker.php | 228 ----- engine/ajax/ymaps/editnews.php | 89 -- engine/ajax/ymaps/saveconfig.php | 78 -- engine/ajax/ymaps/xfields.php | 91 -- engine/ajax/ymaps_editmarker.php | 191 ++++ engine/ajax/ymaps_editnews.php | 82 ++ engine/ajax/ymaps_saveconfig.php | 54 ++ engine/ajax/ymaps_xfields.php | 55 ++ engine/data/ymaps_config.json | 7 +- engine/inc/ymaps.php | 58 +- engine/modules/ymaps/addnews-inline.php | 14 +- engine/modules/ymaps/addnews.php | 16 +- engine/modules/ymaps/admin/mapsettings.php | 72 +- .../modules/ymaps/admin/pointersettings.php | 4 +- engine/modules/ymaps/detail.php | 14 +- engine/modules/ymaps/js/jquery-3.4.1.min.js | 2 + engine/modules/ymaps/js/main.js | 813 +++++++++--------- engine/modules/ymaps/language/Russian.lng | 162 ++-- 19 files changed, 935 insertions(+), 1096 deletions(-) delete mode 100644 engine/ajax/ymaps/editmarker.php delete mode 100644 engine/ajax/ymaps/editnews.php delete mode 100644 engine/ajax/ymaps/saveconfig.php delete mode 100644 engine/ajax/ymaps/xfields.php create mode 100644 engine/ajax/ymaps_editmarker.php create mode 100644 engine/ajax/ymaps_editnews.php create mode 100644 engine/ajax/ymaps_saveconfig.php create mode 100644 engine/ajax/ymaps_xfields.php create mode 100644 engine/modules/ymaps/js/jquery-3.4.1.min.js diff --git a/.gitignore b/.gitignore index 6d02a9b..ba84827 100644 --- a/.gitignore +++ b/.gitignore @@ -237,7 +237,6 @@ /engine/classes/tinify/ # YandexMaps -!/engine/ajax/ymaps/ !/engine/skins/images/ymaps.png !/CHANGELOG.md !/engine/data/ymaps_icons.json diff --git a/engine/ajax/ymaps/editmarker.php b/engine/ajax/ymaps/editmarker.php deleted file mode 100644 index 6c3b2ac..0000000 --- a/engine/ajax/ymaps/editmarker.php +++ /dev/null @@ -1,228 +0,0 @@ - - * @link https://git.io/v9irg - */ - -// Всякие обязательные штуки для ajax DLE -@error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE); -@ini_set('display_errors', true); -@ini_set('html_errors', false); -@ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE); - -define('DATALIFEENGINE', true); -define('ROOT_DIR', substr(dirname(__FILE__), 0, -18)); - -define('ENGINE_DIR', ROOT_DIR . '/engine'); - -$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json'), true); -$icons = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_icons.json'), true); - -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg['moduleName'] . '/'); - -if (@file_exists(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')) { - include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg['main']['moduleLang'] . '.lng')); -} else { - die("Language file not found"); -} - - -include (DLEPlugins::Check(ENGINE_DIR . '/data/config.php')); - -require_once (DLEPlugins::Check(ENGINE_DIR . '/classes/mysql.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/data/dbconfig.php')); -require_once (DLEPlugins::Check(ENGINE_DIR . '/modules/functions.php')); - -dle_session(); - - - -$user_group = get_vars("usergroup"); -if (!$user_group) { - $user_group = []; - $db->query("SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC"); - while ($row = $db->get_row()) { - $user_group[$row['id']] = []; - foreach ($row as $key => $value) $user_group[$row['id']][$key] = stripslashes($value); - } - set_vars("usergroup", $user_group); - $db->free(); -} - -$cat_info = get_vars("category"); - -if (!is_array($cat_info)) { - $cat_info = []; - - $db->query("SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC"); - while ($row = $db->get_row()) { - - $cat_info[$row['id']] = []; - - foreach ($row as $key => $value) { - $cat_info[$row['id']][$key] = stripslashes($value); - } - - } - set_vars("category", $cat_info); - $db->free(); -} - -function showCustomIconList($id = 0) { - global $config, $cfg; - - $arImages = []; - $tplPiconPath = 'templates/' . $config['skin'] . '/' . $cfg['moduleName'] . '/icons/'; - - $dir = ROOT_DIR . '/' . $tplPiconPath; - $images = scandir($dir); - $arPoint = $cfg['pointSettings']['catPoints'][$id]; - - if ($images !== false) { - $images = preg_grep('/\\.(?:png|gif|jpe?g)$/', $images); - foreach ($images as $image) { - $imgSize = getimagesize($dir . '/' . $image); - $selected = ($arPoint['iconImageHref'] == $config['http_home_url'] . $tplPiconPath . $image) ? 'selected' : false; - $offsetWidth = ($selected) ? $arPoint['iconImageOffset'][0] : false; - $offsetHeight = ($selected) ? $arPoint['iconImageOffset'][1] : false; - $arImages[] = ['name' => $image, 'src' => $config['http_home_url'] . $tplPiconPath . $image, 'width' => $imgSize[0], 'height' => $imgSize[1], 'offsetWidth' => $offsetWidth, 'offsetHeight' => $offsetHeight, 'selected' => $selected,]; - } - } - - // - return $arImages; -} - -function getIconsArray($array = [], $id = 0, $type = '') { - global $cfg, $module_lang; - $arPoint = $cfg['pointSettings']['catPoints'][$id]; - $option = []; - - foreach ($array as $name => $value) { - $pointColor = ($arPoint['iconColor']) ? $arPoint['iconColor'] : '#4a9fc5'; - $customColor = ($name == $type) ? 'data-icon-color = "' . $pointColor . '"' : ''; - $name = str_replace(['islands#', 'StretchyIcon'], ['', 'Str'], $name); - - $customName = ($name == $type) ? $name . $module_lang['markerCustomColor'] : $name; - - $selected = (in_array($value, $arPoint)) ? 'selected' : ''; - $option[] = ''; - - } - - return implode("\n", $option); -} - -require_once ENGINE_DIR . '/modules/sitelogin.php'; -require_once MODULE_DIR . 'admin/classes/xfields.php'; - - -/** - * Основной код файла - */ - -if ($member_id['user_group'] == '1') { - - if ($_REQUEST['id'] == 'default') { - $arCat['id'] = 'default'; - $arCat['name'] = $module_lang['pointersCatDefault']; - $headerTextPrefix = ''; - } else { - $catId = (int)$_REQUEST['id']; - $arCat = $db->super_query("SELECT id, name FROM " . PREFIX . "_category WHERE id=" . $catId); - $headerTextPrefix = $module_lang['moduleTextMarkerSettingsHeader']; - } - - if ($arCat['id'] > 0 || $arCat['id'] == 'default') { - $optionsCustomIcons = []; - - foreach (showCustomIconList($arCat['id']) as $option) { - $optionsCustomIcons[] = ''; - } - $optionsCustomIcons = implode("\n", $optionsCustomIcons); - - $customSelect = ($cfg['pointSettings']['catPoints'][$arCat['id']]['iconLayout']) ? 'selected' : ''; - - $showResult = ' -'; - } else { - $showResult = '--- × ---- -' . $headerTextPrefix . $arCat['name'] . '
--'; - } - - die ($showResult); -} else { - die ('Access denied'); -} - diff --git a/engine/ajax/ymaps/editnews.php b/engine/ajax/ymaps/editnews.php deleted file mode 100644 index 7347e9c..0000000 --- a/engine/ajax/ymaps/editnews.php +++ /dev/null @@ -1,89 +0,0 @@ - - * @link https://git.io/v9irg - */ - -if (!defined('DATALIFEENGINE')) { - header("HTTP/1.1 403 Forbidden"); - header('Location: ../../../'); - die("Hacking attempt!"); -} - -if (!$is_logged) { - die('error'); -} - -define('ENGINE_DIR', ROOT_DIR . '/engine'); - -$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); - -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); - -if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { - include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')); -} else { - die("Language file not found"); -} - -$key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; - -$mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; -$controls = (array)$cfg->main->controls; -$controls = array_keys($controls); -$mapSelector = $cfg->moduleName . '-edit-map-container'; - -$modalHtml = << -- × - --- × - --{$module_lang['moduleActionApply']}-' . $module_lang['field'] . ' ' . $name . ' ' . $module_lang['successfullyСreated'] . ''; - } else { - $content = '' . $module_lang['errTryAgainLater'] . ''; - } - - $showResult = '-'; - - die ($showResult); -} else { - die ('Access denied'); -} \ No newline at end of file diff --git a/engine/ajax/ymaps_editmarker.php b/engine/ajax/ymaps_editmarker.php new file mode 100644 index 0000000..b5072fd --- /dev/null +++ b/engine/ajax/ymaps_editmarker.php @@ -0,0 +1,191 @@ + + * @link https://git.io/v9irg + */ + +if (!defined('DATALIFEENGINE')) { + header("HTTP/1.1 403 Forbidden"); + header('Location: ../../'); + die("Hacking attempt!"); +} + + +/** + * Основной код файла + */ + +if ($member_id['user_group'] == '1') { + + include(DLEPlugins::Check(ENGINE_DIR.'/modules/ymaps/language/Russian.lng')); + + $cfg = json_decode(file_get_contents(ENGINE_DIR.'/data/ymaps_config.json'), true); + $icons = json_decode(file_get_contents(ENGINE_DIR.'/data/ymaps_icons.json'), true); + + function showCustomIconList($id = 0) { + global $config, $cfg; + + $arImages = []; + $tplPiconPath = 'templates/'.$config['skin'].'/ymaps/icons/'; + + $dir = ROOT_DIR.'/'.$tplPiconPath; + $images = scandir($dir); + $arPoint = $cfg['pointSettings']['catPoints'][$id]; + + if ($images !== false) { + $images = preg_grep('/\\.(?:png|gif|jpe?g)$/', $images); + foreach ($images as $image) { + $imgSize = getimagesize($dir.'/'.$image); + $selected = ($arPoint['iconImageHref'] == $config['http_home_url'].$tplPiconPath.$image) + ? 'selected' : false; + $offsetWidth = ($selected) ? $arPoint['iconImageOffset'][0] : false; + $offsetHeight = ($selected) ? $arPoint['iconImageOffset'][1] : false; + $arImages[] = [ + 'name' => $image, + 'src' => $config['http_home_url'].$tplPiconPath.$image, + 'width' => $imgSize[0], + 'height' => $imgSize[1], + 'offsetWidth' => $offsetWidth, + 'offsetHeight' => $offsetHeight, + 'selected' => $selected, + ]; + } + } + + return $arImages; + } + + function getIconsArray($array = [], $id = 0, $type = '') { + global $cfg, $module_lang; + $arPoint = $cfg['pointSettings']['catPoints'][$id]; + $option = []; + + foreach ($array as $name => $value) { + $pointColor = ($arPoint['iconColor']) ? $arPoint['iconColor'] : '#4a9fc5'; + $customColor = ($name == $type) ? 'data-icon-color = "'.$pointColor.'"' : ''; + $name = str_replace(['islands#', 'StretchyIcon'], ['', 'Str'], $name); + + $customName = ($name == $type) ? $name.$module_lang['markerCustomColor'] : $name; + + $selected = (in_array($value, $arPoint)) ? 'selected' : ''; + $option[] = ''; + + } + + return implode("\n", $option); + } + + if ($_REQUEST['id'] == 'default') { + $arCat['id'] = 'default'; + $arCat['name'] = $module_lang['pointersCatDefault']; + $headerTextPrefix = ''; + } else { + $catId = (int)$_REQUEST['id']; + $arCat = $db->super_query("SELECT id, name FROM ".PREFIX."_category WHERE id=".$catId); + $headerTextPrefix = $module_lang['moduleTextMarkerSettingsHeader']; + } + + if ($arCat['id'] > 0 || $arCat['id'] == 'default') { + $optionsCustomIcons = []; + + foreach (showCustomIconList($arCat['id']) as $option) { + $optionsCustomIcons[] = ''; + } + $optionsCustomIcons = implode("\n", $optionsCustomIcons); + + $customSelect = ($cfg['pointSettings']['catPoints'][$arCat['id']]['iconLayout']) ? 'selected' : ''; + + $showResult = '- × - --+'; + } else { + $showResult = '+++ × ++++ +'.$headerTextPrefix.$arCat['name'].'
++'; + } + + die ($showResult); +} else { + die ('Access denied'); +} + diff --git a/engine/ajax/ymaps_editnews.php b/engine/ajax/ymaps_editnews.php new file mode 100644 index 0000000..18c5dfc --- /dev/null +++ b/engine/ajax/ymaps_editnews.php @@ -0,0 +1,82 @@ + + * @link https://git.io/v9irg + */ + +if (!defined('DATALIFEENGINE')) { + header("HTTP/1.1 403 Forbidden"); + header('Location: ../../../'); + die("Hacking attempt!"); +} + +if (!$is_logged) { + die('error'); +} + +define('ENGINE_DIR', ROOT_DIR.'/engine'); + +$cfg = json_decode(file_get_contents(ENGINE_DIR.'/data/ymaps_config.json')); + +include(DLEPlugins::Check(ENGINE_DIR.'/modules/ymaps/language/Russian.lng')); + +$key = ($cfg->main->apiKey) ? '&apikey='.$cfg->main->apiKey : ''; + +$mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; +$controls = (array)$cfg->main->controls; +$controls = array_keys($controls); +$mapSelector = 'ymaps-edit-map-container'; + +$modalHtml = << ++ × + +++ × + ++{$module_lang['moduleActionApply']}+'.$module_lang['field'].' '.$name.' ' + .$module_lang['successfullyСreated'].''; + } else { + $content = ''.$module_lang['errTryAgainLater'].''; + } + + $showResult = '+'; + + die ($showResult); +} else { + die ('Access denied'); +} \ No newline at end of file diff --git a/engine/data/ymaps_config.json b/engine/data/ymaps_config.json index be7fb17..2f434e2 100644 --- a/engine/data/ymaps_config.json +++ b/engine/data/ymaps_config.json @@ -1,10 +1,5 @@ { - "moduleName": "ymaps", - "moduleTitle": "Yandex Maps", - "moduleDescr": "Модуль Яндекс.Карты для DLE", "main": { - "moduleLang": "Russian", - "licenceKey": "", "apiKey": "", "mapHeight": "450", "controls": { @@ -21,6 +16,6 @@ "coordsField": "" }, "pointSettings": { - + } } \ No newline at end of file diff --git a/engine/inc/ymaps.php b/engine/inc/ymaps.php index 53547bd..a7ca5f5 100644 --- a/engine/inc/ymaps.php +++ b/engine/inc/ymaps.php @@ -7,47 +7,43 @@ */ if (!defined('DATALIFEENGINE') OR !defined('LOGGED_IN')) { - die("Hacking attempt!"); + die("Hacking attempt!"); } if ($member_id['user_group'] != '1') { - msg("error", $lang['index_denied'], $lang['index_denied']); + msg("error", $lang['index_denied'], $lang['index_denied']); } /** * Конфиг модуля */ +$cfg = json_decode(file_get_contents(ENGINE_DIR.'/data/ymaps_config.json')); -$cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); +define('MODULE_DIR', ENGINE_DIR.'/modules/ymaps'); -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); +include_once(DLEPlugins::Check(MODULE_DIR.'/language/Russian.lng')); -if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { - include(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng'); -} else { - die("Language file not found"); -} - -include(MODULE_DIR . 'admin/classes/xfields.php'); +$key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; ?> -+ × + ++= $cfg->moduleTitle ?> - = $module_lang['moduleTextManagment'] ?> - += $module_lang['moduleTitle'] ?> - = $module_lang['moduleTextManagment'] ?> - - - - - - - - - - + + + + + + + + + + + +@@ -60,7 +56,8 @@ class="btn btn-small btn-white">= $lang['skin_view'] ?>- = $member_id['name'] . ' (' . $user_group[$member_id['user_group']]['group_name'] . ') ' ?> + = $member_id['name'].' (' + .$user_group[$member_id['user_group']]['group_name'].') ' ?> = $lang['skin_logout'] ?>@@ -69,7 +66,7 @@ class="btn btn-small btn-white">= $lang['skin_view'] ?>@@ -103,9 +100,10 @@ class="btn btn-small btn-white">= $lang['skin_view'] ?>@@ -85,13 +82,13 @@ class="btn btn-small btn-white">= $lang['skin_view'] ?>- = $cfg->moduleTitle ?> + = $module_lang['moduleTitle'] ?>
- include(MODULE_DIR . 'admin/mapsettings.php'); ?> + include(DLEPlugins::Check(MODULE_DIR.'/admin/mapsettings.php')); ?>- include(MODULE_DIR . 'admin/pointersettings.php'); ?> + include(DLEPlugins::Check(MODULE_DIR.'/admin/pointersettings.php')); ?>- include(MODULE_DIR . 'admin/support.php'); ?> + include(DLEPlugins::Check(MODULE_DIR.'/admin/support.php')); ?>diff --git a/engine/modules/ymaps/addnews-inline.php b/engine/modules/ymaps/addnews-inline.php index 43b214d..82c2ebf 100644 --- a/engine/modules/ymaps/addnews-inline.php +++ b/engine/modules/ymaps/addnews-inline.php @@ -14,32 +14,32 @@ $cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); +define('MODULE_DIR', ENGINE_DIR . '/modules/ymaps/'); -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); +define('MODULE_DIR', ENGINE_DIR . '/modules/ymaps/'); -if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { - include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')); +if (@file_exists(MODULE_DIR . '/language/Russian.lng')) { + include(DLEPlugins::Check(MODULE_DIR . '/language/Russian.lng')); } else { die("Language file not found"); } $key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; -$js_array[] = '/templates/' . $config['skin'] . '/' . $cfg->moduleName . '/' . $cfg->moduleName . '.js'; +$js_array[] = '/templates/' . $config['skin'] . '/ymaps/ymaps.js'; $mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; $controls = (array)$cfg->main->controls; $controls = array_keys($controls); $controls = json_encode($controls); $arPlacemarkStyles = ($cfg->pointSettings->catPoints) ? json_encode($cfg->pointSettings->catPoints) : '{}'; -$mapSelector = $cfg->moduleName . '-map-container'; +$mapSelector = 'ymaps-map-container'; $onload_scripts[] = <<main->mapHeight}, coordsFieldText:'', diff --git a/engine/modules/ymaps/addnews.php b/engine/modules/ymaps/addnews.php index d911dfc..cbf81bf 100644 --- a/engine/modules/ymaps/addnews.php +++ b/engine/modules/ymaps/addnews.php @@ -14,33 +14,33 @@ $cfg = json_decode(file_get_contents(ENGINE_DIR . '/data/ymaps_config.json')); -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); +define('MODULE_DIR', ENGINE_DIR . '/modules/ymaps/'); -define('MODULE_DIR', ENGINE_DIR . '/modules/' . $cfg->moduleName . '/'); +define('MODULE_DIR', ENGINE_DIR . '/modules/ymaps/'); -if (@file_exists(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')) { - include(DLEPlugins::Check(MODULE_DIR . '/language/' . $cfg->main->moduleLang . '.lng')); +if (@file_exists(MODULE_DIR . '/language/Russian.lng')) { + include(DLEPlugins::Check(MODULE_DIR . '/language/Russian.lng')); } else { die("Language file not found"); } $key = ($cfg->main->apiKey) ? '&apikey=' . $cfg->main->apiKey : ''; -$js_array[] = '/engine/modules/' . $cfg->moduleName . '/js/jquery.magnificpopup.min.js'; -$js_array[] = '/templates/' . $config['skin'] . '/' . $cfg->moduleName . '/' . $cfg->moduleName . '.js'; +$js_array[] = '/engine/modules/ymaps/js/jquery.magnificpopup.min.js'; +$js_array[] = '/templates/' . $config['skin'] . '/ymaps/ymaps.js'; $mapHeight = ($cfg->main->mapHeight) ? $cfg->main->mapHeight : '400'; $controls = (array)$cfg->main->controls; $controls = array_keys($controls); $controls = json_encode($controls); $arPlacemarkStyles = ($cfg->pointSettings->catPoints) ? json_encode($cfg->pointSettings->catPoints) : '{}'; -$mapSelector = $cfg->moduleName . '-map-container'; +$mapSelector = 'ymaps-map-container'; $onload_scripts[] = <<main->mapHeight}, defaultPos: { diff --git a/engine/modules/ymaps/admin/mapsettings.php b/engine/modules/ymaps/admin/mapsettings.php index 26ecfc6..c3bb3e1 100644 --- a/engine/modules/ymaps/admin/mapsettings.php +++ b/engine/modules/ymaps/admin/mapsettings.php @@ -19,24 +19,6 @@ $trafficControl_checked = ($cfg->main->controls->trafficControl) ? 'checked' : ''; $typeSelector_checked = ($cfg->main->controls->typeSelector) ? 'checked' : ''; $zoomControl_checked = ($cfg->main->controls->zoomControl) ? 'checked' : ''; -/** - * [getLangsList description] - * - * @param string $dir [description] - * - * @return [type] [description] - */ -function getLangsList($dir = '../language') { - $f = scandir($dir); - foreach ($f as $file) { - if (preg_match('/\.(lng)/', $file)) { - $arr[] = str_replace('.lng', '', $file); - } - } - - return $arr; -} - ?>
- = $module_lang['contactsForSupport'] ?>
+ = $module_lang['contactsForSupport'] ?>
DLE-YandexMaps
- = $module_lang['moduleTextSupportСond'] ?>
+ = $module_lang['moduleTextSupportСond'] ?>
@@ -47,46 +29,18 @@ function getLangsList($dir = '../language') {-= $module_lang['mapSettings'] ?>