GithubHelp home page GithubHelp logo

dle-modules / dle-yandexmaps Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 3.0 398 KB

Yandex Maps — модуль Яндекс карт для DLE

Home Page: http://maps.pafnuty.name/

License: MIT License

PHP 49.19% CSS 28.39% JavaScript 16.00% Smarty 6.42%
dle pafnuty yandex-maps

dle-yandexmaps's People

Contributors

pafnuty avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dle-yandexmaps's Issues

Не работает "Все метки"

Пациент и данные отправлены в лс на 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.
После чего, я в файле addnews-inline.php изменил строчку
$js_array[] = '/templates/' . $config['skin'] . '/ymaps/ymaps.js';
на
$js_array[] = 'templates/' . $config['skin'] . '/ymaps/ymaps.js';
и всё заработало. Там был лишний / из-за которого не грузил скрипт.

yandex maps13.3

image
Прошу братан очень нужен твой модуль yandex maps для дле 13,3 пишет ошибку прошу помочь решение проблемы

Проблема с выводом всех меток

Приветствую! Проблема такая: точка отображается по центру карты, не в том месте где нужно быть. В чём может быть причина? Возможно что-то я не так делаю, но по инструкции со стандартным шаблоном all_placemarks.tpl Плюс в админке 2 кнопки добавить/редактировать метку. Модуль установлен на Dle 14.1
1
2

Не работают "Все метки" и метка в полной новости.

Бесконечная загрузка, сама карта видна.
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

Обновление до 11.3

Возможно ли обновление до 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 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}"}

Слетают координаты метки при изменении масштаба во время добавления новости

Добавляем метку с сайта либо через админку. Если после клика по карте для создания метки изменить масштаб - координаты метки устанавливаются по умолчанию. Гифка воспроизводящая ошибку:

ezgif com-optimize
Для наглядности вывел поле с координатами куда пишутся данные метки.

Вывод всех меток на карте со ссылками на полные новости

Привет, Паша. К сожалению не удалось найти актуальной инструкции по работе крайне полезной опции твоего плагина.

Вывод всех меток на единой карте есть, но он отображает только метку и ее название (title из краткой новости).
А вот раскрытие подробной информации по метке на общей карте не работает.
Там просто нет своего шаблона для вывода, так и задумано?

Использую данные из твоего примера:

{include file="ymaps/all_placemarks.tpl"}

image

хотелось бы при клике на любую из меток получать аналог карты из полной новости

image

это вообще возможно сделать?
На странице документации https://maps.pafnuty.name/examples/#bbb9cdadc7d29d1aed75 инфа помечена как устаревшая :(

Использую актуальную версию DLE 15.3 и плагин версии 2.0

Не выводит метки DLE 12.1

Приветствую Павел.

Покупал в свое время не одну лицензию модуля, сейчас обнаружил, что стало бесплатно, это одновременно радостно и грустно..

Спасибо Вам за труды и отзывчивость.

Нашел на Вашем сайте сообщение:

Приветствую. Установил ваш модуль на DLE- карта вывелась - вот почему то не подхватываются координаты.Всегда используются координаты по умолчанию. Подскажите где копать?

У меня такая же проблема, вывод карты в полной новости происходит по умолчанию из настроек карты , вот в полной новости, а вот так уже в редактирование новостей.

В чем может быть причина?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.