YandexMaps не выводит все ресурсы на карту


Из документации:
Компонент позволяет создавать Яндекс Карту и размещать на ней список объектов (1 объект = 1 ресурс).
В системе несколько контекстов.
В одном из них используется YandexMaps

код шаблона:
<div class="grids">
            [[!yandexMaps?
	            &tvCoords=`coords`
	            &fieldForBalloonContent=`introtext`
	            &fieldForHint=`pagetitle`
	            &markerPreset=`islands#nightStretchyIcon`
	            &markerPresetFieldText=`pagetitle`
	            &styleMapBlock=`width:100%;height:400px;`
	            &showMoreLink=`1`
	            
	            &styleFiltersBlock=`display:none`
	            &objectsTypesJSON=`[
		                {
			                "blabla": {
				                "parent":"132",
				                "preset":"islands#nightStretchyIcon",
				                "presetFieldText":"pagetitle",
				                "title":"Отметить"
			                }
		            }]`
            ]]
          </div><!--end of div grids-->
Почему то выводятся только первые 10 ресурсов на карту, хотя их в контейнере id=132 ровно 16 штук.
Так же замечено что если поместить в корзину или отменить публикацию одного из ресурсов он все равно будет показываться на карте. Что не совсем верно как мне кажется.

Что сделать чтобы YandexMaps выводил все точки на карте, а не только первые 10?
Konstantin
10 апреля 2015, 14:01
modx.pro
1 943
0

Комментарии: 8

Konstantin
11 апреля 2015, 15:50
0
Если разместить ресурсы с координатами в разных контейнерах где в одном контейнере не больше 10 ресурсов будет, тогда все нормально на карте

пример:
[[!yandexMaps?
	            &tvCoords=`coords`
	            &fieldForBalloonContent=`introtext`
	            &fieldForHint=`pagetitle`
	            &styleMapBlock=`width:100%;height:400px;`
	            &showMoreLink=`1`
	            &styleFiltersBlock=`display:none`
	            &objectsTypesJSON=`[{
	                            		"blabla": {
				                    "parent":"132",
				                    "preset":"islands#nightStretchyIcon",
				                    "presetFieldText":"pagetitle"},
				                "bloblo": {
				                    "parent":"186",
				                    "preset":"islands#nightStretchyIcon",
				                    "presetFieldText":"pagetitle"}
				                    
				                
				                }]`
            ]]
Но это бред, зачем создавать контейнер на каждые 10 ресурсов, ппц.
В общем не знаю в чем причина такой работы дополнения.
    Василий Наумкин
    11 апреля 2015, 16:18
    0
    Сниппет же через pdoTools работает, да? Попробуй просто указать ему &limit=`0`.
      Konstantin
      11 апреля 2015, 16:28
      0
      Пробовал. Не помогает.
      Скажу даже больше — я пробовал менять настройки по умолчанию в сниппетах pdoTools и лимиты ставил 99 и глубину 99. Толку нет.

      Тут где то ограничение стоит в классе, но я не программист, не знаю где это ограничение. А может и в модели где запрос в базу. Не знаю ((

      Дополнение отличное, мне нравится, но вот эта фигня весь мозг съела
        Василий Наумкин
        11 апреля 2015, 16:33
        0
        Исходника на GitHub нету, а качать и разбираться мне некогда, извини.
          Konstantin
          11 апреля 2015, 16:36
          +1
          Я не гоню никого. Как будет время посмотрите пожалуйста. Очень прошу
        Konstantin
        14 апреля 2015, 01:12
        0
        Я не программист но понял в чем дело.
        Как я считаю этот сниппет использует pdoTools но использует выборочно

        то есть он не использует вот таким образом — &limit=`0`

        а использует вот таким

        $setConfigArray['parents'] = $objectsTypesDataArray['parent']; // id родителя
        			$setConfigArray['includeTVs'] = $includeTVs; // tv поля
        			$setConfigArray['where'] = $setConfigWhere; // условия выборки
        			$setConfigArray['return'] = 'data';
        			
        			$pdoFetch->setConfig($setConfigArray); // передаём параметры в pdoFetch
        			
        			$geoObjectsArray[$i][ $objectsTypesKeyId ] = $pdoFetch->run(); // получаем массив с ресурсами для отображения на карте
        как видно из кода тут отсутствует передача лимита в $pdoFetch
        поэтому вылечил тем что добавил в код
        $setConfigArray['limit'] = '100000000000000000';

        Я вот только не пойму, почему &limit=`0` не прокатывает, чтобы не править код сниппета.
          Василий Наумкин
          14 апреля 2015, 06:00
          0
          Видимо потому, что limit вообще не передаётся в $setConfigArray.

          Я обычно добавляю свои переменные в $scriptProperties, а его уже пихаю в вызов pdoFetch и тогда туда попадает всё, что указал при вызове юзер. А здесь более выборочный подход и автор просто забыл о limit.

          Можно поправить так:
          $setConfigArray['limit'] = !empty($limit) ? (int)$limit : 0;
          Должно работать.
      Пашок
      Пашок
      15 апреля 2015, 10:22
      0
      Спасибо, что разобрались, друзья. Завал по работе, времени не хватает даже интересные сайты почитать. На днях планируется новая версия YandexMaps, в которой будет реализована одна очень удобная и нужная штука. Нет, даже не одна… :)
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8