averlab 8 Жалоба Опубликовано: December 1, 2013 Доброе время суток, и это снова я со своими маленькими вопросами. Заранее прошу не ругать, поскольку самоучка и пытаюсь разобраться. Подскажите где теперь можно изменить комментарии к объектам, которые выводятся на карте при наведении на объекты мышки? Ранее это делалалось вроде в realty_on_map.tpl, а теперь что-то у меня не получается изменить состав информации. Если конкретней, то я хочу перед городом выводить категорию объявления, например 2-комн, 1-комнт, и т.д. Спасибо. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: December 1, 2013 Если нужен доступ к тому, что выводится при наведении на маркер в карте по урлу /map, тогда это не realty_on_map.tpl (это вывод по клику на маркере)Это нужен файл map.tplТам есть такой кусок кодаfor(var o=0; o<objects.length; o++){}Это перебор объектов и нанесение маркеров.В нем, внутри есть инициализация маркераvar marker = new google.maps.Marker({ icon: {url: estate_folder + '/template/frontend/agency/img/home_small.png'}, position: latlng, map: map, title: objects[o].title});Вот то, что указывается в title - это и есть подписка маркера, которая показывается при наведении. А в objects содержится некоторая информация об объектах (не вся). Можете перед циклом перебора объектов дописать console.log(objects); и в хроме, через панель яваскрипта посмотреть, что там доступно. Например имя категории доступно в поле type_sh: "Жилая" Тогда вам надо сменить title в конструкторе маркера наtitle: objects[o].type_sh+' '+objects[o].title Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
andrew_houp 0 Жалоба Опубликовано: April 2, 2014 title: objects[o].type_sh+' '+objects[o].title Не подскажете, как добавить свое поле в массив?На пример: в таблицу data есть колонка village. Это строковое значение. Как мне вывести его во всплывающем окне карты? http://prntscr.com/36byz5 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: April 2, 2014 Не подскажете, как добавить свое поле в массив?На пример: в таблицу data есть колонка village. Это строковое значение. Как мне вывести его во всплывающем окне карты? http://prntscr.com/36byz5objects[o].переменная (вместо переменная - village) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
andrew_houp 0 Жалоба Опубликовано: April 2, 2014 objects[o].переменная (вместо переменная - village)Спасибо большое! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oliver 0 Жалоба Опубликовано: December 26, 2014 А как сделать, чтобы для одного раздела - Квартиры - был маркер синего цвета, адля другого раздела - Магазины - был маркер красного цвета ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: December 28, 2014 Повторять только если очень нужно. Сложно! 1. Создаем локальный обработчик сеток./apps/system/lib/frontend/grid/grid_constructor.php копируем в /template/frontend/шаблон/main/grid/local_grid_constructor.php2. Удаляем из него весь функционал, кроме function get_sitebill_adv_core()3. В начале файла делаем заменуclass Grid_Constructor extends SiteBill_Krascap { на class Local_Grid_Constructor extends Grid_Constructor {4. В файле /template/frontend/realia_complex/main/main.php в фнкции main() после строк global $__site_title, $folder, $smarty; добавляемrequire SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/grid/local_grid_constructor.php';$this->_setGridConstructor(new Local_Grid_Constructor());5. Создаем файл/template/frontend/agency/js/realtymap_markers_config.js 6. Заполняем его var RM_Custom_Markers = {icon_mark_1: {icon: estate_folder+'/template/frontend/agency/img/icon1.png',size: [32, 37],offset: [-16, -37]},icon_mark_2: {icon: estate_folder+'/template/frontend/agency/img/icon2.png',size: [32, 37],offset: [-16, -37]},}icon_mark_1, icon_mark_2 произвольные метки маркеров. могут содержать буквы-цифры и подчеркивание. Само название могут иметь произвольное.icon: estate_folder+'/template/frontend/agency/img/icon2.png', - путь к картинке иконкиsize: [32, 37], - размер иконки (физический) в пикселях. Иконки должны быть в размер вывода маркера. Этот параметр указывать явно - то ли гугль, то ли яндекс без него начинают халтуритьoffset: [-16, -37] - смещение "нулевой" точки иконки (верхнего левого угла картинки иконки) от места, на которое на карте должна указывать иконка. Зависит от того, что нарисовано на иконке. Содаете набор вот таких вот параметров под свои категории. Что бы не путаться можете называть их согласно ид пунктов структуры = icon_mark_3465, icon_mark_13 7. Подключаем этот файл в /template/frontend/agency/header.tpl как обычный скрипт<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/realtymap_markers_config.js"></script>8. Возвращаемся к /template/frontend/шаблон/main/grid/local_grid_constructor.php9. Находим в оставшемся в нем контенте блокif($geodata && count($ra)>0){...}Внутри него идет формирование данных для георисования....if(isset($d['number']) && $d['number']!='' && $d['number']!=0){$address[]=$d['number'];}if(isset($d['price'])){$address[]=$d['price'];}После этого добавляем $gdata[$k]['topic_id']=$d['topic_id'];Опускаемся еще ниже, до непосредственного формирования данных для карты $geoobjects_collection=array(); if(count($gdata)>0){ foreach ($gdata as $gd){ $gc=$gd['geo_lat'].'_'.$gd['geo_lng']; if(isset($geoobjects_collection[$gc])){ $geoobjects_collection[$gc]['html'].=$gd['html']; $geoobjects_collection[$gc]['count']++; }else{ if($gd['topic_id']==44){ $geoobjects_collection[$gc]['icon']='icon_mark_44'; } $geoobjects_collection[$gc]['lat']=$gd['geo_lat']; $geoobjects_collection[$gc]['lng']=$gd['geo_lng']; $geoobjects_collection[$gc]['html']=$gd['html']; $geoobjects_collection[$gc]['count']=1; } } }тут я красным показал, что добавить. Вот вроде бы и все. Если попробуете, но не получится, пишите. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oliver 0 Жалоба Опубликовано: December 29, 2014 Не нашел в файле grid_constructor.php (local_grid_constructor.php) function get_sitebill_adv_core() Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: December 29, 2014 Не нашел в файле grid_constructor.php (local_grid_constructor.php) function get_sitebill_adv_core()Посмотрите обновления, у вас все обновлено? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Oliver 0 Жалоба Опубликовано: December 29, 2014 Посмотрите обновления, у вас все обновлено? Обновил, все получилось, большое спасибо Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: December 29, 2014 все получилось А можно ссылку? Интересно взглянуть. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: December 30, 2014 Обновил, все получилось, большое спасибо 1. Размеры маркеров в size: [N, M], лучше указывать явно во избежании неожиданностей. Т.е. если вы используете маркеры из набора реалии, тоsize: [42, 57]2. Оффсеты от точки указания offset: [-16, -37] аналогично. Для маркера реалия(как и для подавляющего большинства общеупотребительных маркеров) это половина ширины по горизонтали и высота, так как "точка указания" маркера расположена внизу по центру иконки маркера offset: [-21, -57]3. Красный маркер вы делали перекрашивая синий? В наборе реалии есть готовый красный маркер в папке \template\frontend\realia\img\markers\Может лучше использовать его или маркеры из коллекций http://mapicons.nicolasmollet.com/ что бы соблюсти единство стилей? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 3, 2015 Здравствуйте, не помогает просто дописать "realty_geo_data[o].price". В консоле есть только 3 параметра по умолчанию, как туда добавить свои http://gyazo.com/8005ef3156ad70beda6d8fbb41510101? Мой код: http://gyazo.com/d53476312fd79f3de17a1d093ef8f326, карта Яндекс, шаблон agency, система была месяц назад скачана. Редактирую тот код, что вставлен в шаблон realty_grid.tpl . Также еще 2 вопроса возникают: 1. Как сделать 2 разные карты, на которые объекты наносятся автоматически? Одна - для аренды, вторая - для продажи. На одной - объекты только в категории аренды, на другой - объекты только в категории продажа. 2. Как сделать раскрывающуюся карту? Методы, описанные здесь - https://tech.yandex.ru/maps/doc/jsapi/1.x/articles/tasks/map-docpage/- не работают. Если делать по стандартной схеме "Скрытого div", то приходим к такому результату - http://gyazo.com/b5e1409c1a8d52cd67356aab1d535076. Спасибо! Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 3, 2015 2. Как сделать раскрывающуюся карту? Я делаю следующим образом.1. внедряю в шаблон контейнер с абсолютным позиционированием и left: -100000px и размерами в размер места, в котором она должна бы быть2. ставлю на него однозначный id3. далее отслеживаю момент открытия скрытого дива, либо методами апи, если это искаропочные табы, либо в своем методе, если открывашку пишу сам.4. по событию проверяю есть ли внутри раскрываемого блока элемент с идешкой блока карты. если есть, то открываю его и все. если нет, то ловлю этот блок из-за края экрана, меняю позиционирование на relative и перемещаю его в мой открываемый блок. и после этого разрешаю открыть блок. 1. Как сделать 2 разные карты В целом нужно сформировать два набора данных под них. а дальше просто два раза вызвать рисовальщик на двух разных контейнерах. Либо скриптом сначала разобрать общие данные на предмет принадлежности к аренде-продачже и потом опять нарисовать две карты. Но тут нужно иметь этот признак в данных. В консоле есть только 3 параметра по умолчанию Напомните, что это за карта? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 3, 2015 Я делаю следующим образом.1. внедряю в шаблон контейнер с абсолютным позиционированием и left: -100000px и размерами в размер места, в котором она должна бы быть2. ставлю на него однозначный id3. далее отслеживаю момент открытия скрытого дива, либо методами апи, если это искаропочные табы, либо в своем методе, если открывашку пишу сам.4. по событию проверяю есть ли внутри раскрываемого блока элемент с идешкой блока карты. если есть, то открываю его и все. если нет, то ловлю этот блок из-за края экрана, меняю позиционирование на relative и перемещаю его в мой открываемый блок. и после этого разрешаю открыть блок. В целом нужно сформировать два набора данных под них. а дальше просто два раза вызвать рисовальщик на двух разных контейнерах. Либо скриптом сначала разобрать общие данные на предмет принадлежности к аренде-продачже и потом опять нарисовать две карты. Но тут нужно иметь этот признак в данных. Напомните, что это за карта?Карта Яндекс используется Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 3, 2015 Карта Яндекс используется Не) в смысле карта на главной, карта с сеткой или что-то другое. по функционалу, а не по провайдеру. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 6, 2015 Просто скрипт был вставлен на страницу realty_grid, по умолчанию там находится. Как узнать, что за карта? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 6, 2015 Наверное, сетка, переменная $grid_geodata присутсвует Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 7, 2015 Вообще желательно вывести карту на отдельную страницу, не в рамках этого файла. И уже там со всем работать. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 21, 2015 Здравствуйте, вы подскажите, как решить вопрос 1? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 21, 2015 В принципе есть у меня уже вариант, но он состоит в том, что вместе о списком объявлений на странице выводится карта (или две - одна на аренду, одна на продажу) на которой размещены объявления, попавшие в данный момент в список и у которых указаны координаты.Подходит? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Afelua 0 Жалоба Опубликовано: April 22, 2015 В принципе есть у меня уже вариант, но он состоит в том, что вместе о списком объявлений на странице выводится карта (или две - одна на аренду, одна на продажу) на которой размещены объявления, попавшие в данный момент в список и у которых указаны координаты.Подходит?Да, идеально, если в этот список будут попадать все объекты из раздела "аренда"/"продажа", а не только с первой страницы (т.е. если у нас 12 страниц, которые надо перелистывать, нужно, чтобы отображались всегда все объекты, а не только со страницы 1, когда мы на ней находимся, не только со страницы 2, и т.д.) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: April 22, 2015 В том то и дело, что именно только с текущей страницы. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах