dle-modules / dle-yandexmaps Goto Github PK
View Code? Open in Web Editor NEWYandex Maps — модуль Яндекс карт для DLE
Home Page: http://maps.pafnuty.name/
License: MIT License
Yandex Maps — модуль Яндекс карт для DLE
Home Page: http://maps.pafnuty.name/
License: MIT License
Пациент и данные отправлены в лс на dle-faq
В самой шапке поставил для теста карту, все как в документации. Но он банально не прогружает, тупо прелоад идет и все.
`<script>
ymaps.ready(allPlacemarks);
function allPlacemarks() {
var myMap = new ymaps.Map('allPlacemarks', { // ID блока с картой
center: [55.76, 37.64], // Москва
zoom: 12,
controls: ['zoomControl', 'fullscreenControl']
},{
suppressMapOpenBlock: true,
yandexMapDisablePoiInteractivity: true
}),
objectManager = new ymaps.ObjectManager({
// Чтобы метки начали кластеризоваться, выставляем опцию.
clusterize: true,
// ObjectManager принимает те же опции, что и кластеризатор.
gridSize: 32
});
//отключаем зум колёсиком мышки
myMap.behaviors.disable('scrollZoom');
//на мобильных устройствах... (проверяем по userAgent браузера)
//if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)){
//... отключаем перетаскивание карты
//myMap.behaviors.disable('drag');
//}
// Задаём опции кластеров
objectManager.clusters.options.set({
// Установим дизайн метки по умолчанию:
preset: 'islands#blueClusterIcons',
// Установим балун кластера в виде карусели для удобства
balloonContentLayout: 'cluster#balloonCarousel',
// Устанавливаем максимальное количество элементов в нижней панели на одной странице
clusterBalloonPagerSize: 5,
// Устанавливаем режим открытия балуна.
// В данном примере балун никогда не будет открываться в режиме панели.
clusterBalloonPanelMaxMapArea: 0,
// Устанавливаем ширину макета контента балуна.
balloonContentLayoutWidth: 400,
// Устанавливаем высоту макета контента балуна.
balloonContentLayoutHeight: 300
});
// Подрубаем монитор,
// будем отслеживать изменения в кластерах
var activeObjectMonitor = new ymaps.Monitor(objectManager.clusters.state);
// При клике на некластеризованные объекты получаем содержимое балуна
objectManager.objects.events.add('click', function (e) {
var objectId = e.get('objectId');
setBalloonData(objectId);
});
// В кластеризованных объектах отслеживаем изменение выбранного объекта
activeObjectMonitor.add('activeObject', function () {
var objectId = activeObjectMonitor.get('activeObject').id;
setBalloonData(objectId);
});
// Проверяем, есть ли у выбранного объекта содержимое балуна
function hasBalloonData(objectId) {
return objectManager.objects.getById(objectId).properties.balloonContent;
}
// Получаем данные и устанавливаем содержимое балуна
function setBalloonData(objectId) {
if (!hasBalloonData(objectId)) {
getBalloonData(objectId).done(function (data) {
var object = objectManager.objects.getById(objectId);
object.properties.balloonContent = data;
// Открываем балун на этом элементе
var objectState = objectManager.getObjectState(objectId);
if (objectState.isClustered) {
// Если это кластер
objectManager.clusters.balloon.open(objectState.cluster.id);
}
else {
// Если обычный объект
objectManager.objects.balloon.open(objectId);
}
});
}
}
// Добавляем objectManager на карту
myMap.geoObjects.add(objectManager);
// Выполняем ajax-запрос к мини-модулю для вывода всех меток
$.ajax({
url: dle_root + 'engine/ajax/controller.php',
//url: dle_root + 'engine/ajax/ymaps/all.php',
dataType: 'json',
data: {
mod: 'ymaps_all',
// вместо allplacemarks можно прописать имя другого шаблона, содержащего в себе конфигурацию для вывода меток
// сам шаблон с конфигом находится в папке ymaps/all
preset: 'ajaxmap'
},
})
.done(function (data) {
// Если всё ок - добавим метки на карту
objectManager.add(data);
// "Отключим" прелодер.
$('#allPlacemarks').removeClass('loader');
// Выплюнем в консольку данные, пришедшие от модуля:
// console.log(data);
// Эти переменные нужны для дальнейшего показа количества видимых на карте меток.
var singleCounter = 0,
singleCounterHidden = 0,
clusterCounter = 0;
// Пример организации обхода массива видимых меток
objectManager.objects.each(function (object) {
// В данный момент нас интересует конкретный геообъект
var objectState = objectManager.getObjectState(object.id);
if (objectState.isClustered) {
// Если метка геообъекта находится в составе кластера - прибавим счётчик.
clusterCounter++;
}
else {
// Если метка не в кластере прибавим другой счётчик.
singleCounterHidden++;
if (objectState.isShown) {
// Если метка не в кластере и показана в области
// видимости карты - прибавим другой счётчик и
// убавим счётчик всех объектов. Таким образом счётчик будет
// показывать только скрытые объекты
singleCounter++;
singleCounterHidden--;
}
}
}, myMap);
// Ну и теперь можно выплюнуть собранные счётчики в консоль:
console.log('Количество показаных единичных меток: ' + singleCounter);
console.log('Количество невидимых единичных меток: ' + singleCounterHidden);
console.log('Количество показаных меток, составе кластера: ' + clusterCounter);
})
.fail(function () {
console.log("error");
});
// Функция, осуществляющая запрос за данными балуна на сервер.
function getBalloonData(objectId) {
var dataDeferred = ymaps.vow.defer();
// Для получения новости используется модуль {AJAX FULL-STORY}:
// http://pafnuty.name/modules/156-ajax-full-story.html
$.ajax({
url: dle_root + 'engine/ajax/full-story.php',
type: 'GET',
dataType: 'html',
data: {
newsId: objectId, // Обязательная переменная
template: 'ajax/baloon'
},
})
.done(function (data) {
dataDeferred.resolve(data);
})
.fail(function () {
console.log("full-story error");
dataDeferred.resolve('error');
});
return dataDeferred.promise();
}
}
</script>`
Подскажите, пожалуйста. Как автоматически масштабировать при наличии меток, так чтобы они все отображались в области видимости ? Код который использую приложил (это взято из примера "вывод всех меток с балунами").
Не грузилась карта в addnews.
После чего, я в файле addnews-inline.php изменил строчку
$js_array[] = '/templates/' . $config['skin'] . '/ymaps/ymaps.js';
на
$js_array[] = 'templates/' . $config['skin'] . '/ymaps/ymaps.js';
и всё заработало. Там был лишний / из-за которого не грузил скрипт.
Бесконечная загрузка, сама карта видна.
DLE 13.3 пробую на чистом шаблоне. В консоли только error и все. Пробовал php 7.1 и 7.3
В полной новости
Uncaught ReferenceError: $ is not defined
at 7-stroitelstvo-novogo-korpusa-polikliniki-gbuz-rkb-im-gg-kuvatova.html:175
Возможно ли обновление до DLE 11.3?
После установки и переходе в админку выдает это:
Parse error: syntax error, unexpected '[' in Z:\home\test1.ru\www\engine\modules\ymaps\admin\classes\xfields.php on line 141
Привет. Установил модуль Яндекс карт для DLE 13.3. Все настроил, но не работает функция поиска объекта, ни в настройках ни при добавлении/редактировании новости. Пишет: Сервер не смог обработать запрос
Здравствуйте. Возможно ли интегрировать DLE Filter, чтобы на карте отображались метки отфильтрованных новостей?
Версия движка DLE 11.0
Установил модуль как по инструкции, добавил возможность выбора места на карте в модальном окне в шаблоне addnews.tpl, далее выбираю место нажимаю применить, окно не сворачивается. Нажимаю сбросить, ничего не сбрасывается, нажимаю на крестик в модальном окне, оно не закрывается. проверил на вашем сайте в демо доступе, абсолютно такие же ошибки. Модальное окно не закрывается, кнопки сбросить и применить тоже не работают.
P.S
Браузер Chrome
залил все необходимое в корень.
сделал все по инструкции. Не добавляется метка, а в случае модального окна -не работают кнопки в принципе.
здесь вызов добавления метки по кнопке https://vk.cc/6SLCDZ
здесь непосредственно в самой новости https://vk.cc/6SLCNP
dle 11.3 , php5.4 , utf-8, ionCube Loader: да
доступ к админке - test test
После установки, загружается карта а на иконке локация надпись {short_story limit="100"}, подскажите пожалуйста как исправить.
Для вывода карты используется вот такой код {include file="engine/modules/ymaps/detail.php?template=ymaps/simple&id={news-id}"}
Установил модуль, все выводится на сайте, но вот координаты не подхватываются, подскажите в чем может быть причина?.
Добрый день, все время показывает только точку поумолчанию.
Привет, Паша. К сожалению не удалось найти актуальной инструкции по работе крайне полезной опции твоего плагина.
Вывод всех меток на единой карте есть, но он отображает только метку и ее название (title из краткой новости).
А вот раскрытие подробной информации по метке на общей карте не работает.
Там просто нет своего шаблона для вывода, так и задумано?
Использую данные из твоего примера:
{include file="ymaps/all_placemarks.tpl"}
хотелось бы при клике на любую из меток получать аналог карты из полной новости
это вообще возможно сделать?
На странице документации https://maps.pafnuty.name/examples/#bbb9cdadc7d29d1aed75 инфа помечена как устаревшая :(
Использую актуальную версию DLE 15.3 и плагин версии 2.0
Покупал в свое время не одну лицензию модуля, сейчас обнаружил, что стало бесплатно, это одновременно радостно и грустно..
Спасибо Вам за труды и отзывчивость.
Нашел на Вашем сайте сообщение:
Приветствую. Установил ваш модуль на DLE- карта вывелась - вот почему то не подхватываются координаты.Всегда используются координаты по умолчанию. Подскажите где копать?
У меня такая же проблема, вывод карты в полной новости происходит по умолчанию из настроек карты , вот в полной новости, а вот так уже в редактирование новостей.
В чем может быть причина?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.