Например при переходе в категорию "Категория1" отображался "Город1", при переходе в "Категория2" отображался "Город2".
А в связи с тем, что сейчас в настройках InstantMaps стоит город по умолчанию "Город1", то, при выборе Категории2 отображается Город1, если использовать настройку "Использовать фильтр по городам", тогда при переходе в Категорию2 человек видит пустую страницу с просьбой выбрать свой город, что я считаю не совсем приятно пользователям.
В файле \www\templates\TEMPLATE\content\places_list.tpl.php
Поменять этот код
<script> icms.mapsList.init('map-canvas', { zoom: <?php echo $options['zoom'] + 1; ?>, min_zoom: <?php echo $options['min_zoom'] + 1; ?>, max_zoom: <?php echo $options['max_zoom'] + 1; ?>, center: [<?php echo nf($center[0], 4); ?>, <?php echo nf($center[1], 4); ?>], city_id: <?php echo $city ? $city['id'] : 'false'; ?>, map_type: '<?php echo $options['map_type']; ?>', map_type_select: <?php echo $options['map_type_select'] ? 'true' : 'false'; ?>, scroll_zoom: <?php echo $options['scroll_zoom'] ? 'true' : 'false'; ?>, bounds: <?php echo $options['mk_bounds'] ? 'true' : 'false'; ?>, filter: '<?php echo $map_filter; ?>', load_url: '<?php echo href_to('places', 'markers'); ?>', icons_url: '<?php echo cmsConfig::get('upload_host') . '/markers'; ?>', balloon_url: '<?php echo href_to('places', 'balloon'); ?>', city_save_url: '<?php echo href_to('places', 'city_save'); ?>', delay: '<?php echo $options['mk_delay']; ?>' }); </script>
<script> var mapOptions = { zoom: <?php echo $options['zoom'] + 1; ?>, min_zoom: <?php echo $options['min_zoom'] + 1; ?>, max_zoom: <?php echo $options['max_zoom'] + 1; ?>, center: [<?php echo nf($center[0], 4); ?>, <?php echo nf($center[1], 4); ?>], city_id: <?php echo $city ? $city['id'] : 'false'; ?>, map_type: '<?php echo $options['map_type']; ?>', map_type_select: <?php echo $options['map_type_select'] ? 'true' : 'false'; ?>, scroll_zoom: <?php echo $options['scroll_zoom'] ? 'true' : 'false'; ?>, bounds: <?php echo $options['mk_bounds'] ? 'true' : 'false'; ?>, filter: '<?php echo $map_filter; ?>', load_url: '<?php echo href_to('places', 'markers'); ?>', icons_url: '<?php echo cmsConfig::get('upload_host') . '/markers'; ?>', balloon_url: '<?php echo href_to('places', 'balloon'); ?>', city_save_url: '<?php echo href_to('places', 'city_save'); ?>', delay: '<?php echo $options['mk_delay']; ?>' }; (function(){ icms.mapsList.onMapReadyOriginal = icms.mapsList.onMapReady; icms.mapsList.onMapReady = function(){ icms.mapsList.onMapReadyOriginal(); if (typeof(setCoordinate) == 'function') { setCoordinate(); } } })(); var sMap = icms.mapsList.init('map-canvas', mapOptions); </script>
Создать виджет HTML убрать тайтл и добавить такой код:
<script> function setCoordinate() { icms.map.setCenter([XX.XXXXX, YY.YYYY]); } </script>
Виджет расположить на ту страницу, где нужна смена центра карты. Я использовал Создание страницы для привязки виджетовс маской вида places/city1 Таких страниц придется создать для каждой страницы где нужно указать свой центр
На странице настройки компонента по желанию снять галочку "Использовать фильтр по городам", лично мне она не к чему. Если хотите оставить, тогда придется играться с выбором города. Но думаю если у вас своя категория для каждого города, эта галочка вообще ненужна.
Два недостатка:
1. На странице категории сначала грузит центр карты с настройки компонента, а потом сразу же меняет на центр карты указанный в виджете, т.е. присутствует небольшое "мигание", думаю особого дискомфорта не должно вызвать. Конечно же, можно было бы сделать более изящно, но пришлось бы ковырять \www\templates\TEMPLATE\js\maps\list.js и другие скрипты карты, а хотелось всё таки минимум правок.
2. На странице категории видна белая полоска виджета. Поэтому я её убрал в футер. И опять же, в виджет после </script> можно добавить любой текст, например SEO текст или ещё как-то обыграть, что бы "по чем зря" не валялся :)
Добрый день, скажите пожалуйста, как сделать, что бы в каждой категории в InstantMaps 2, был собственный центр карты.
Например при переходе в категорию "Категория1" отображался "Город1", при переходе в "Категория2" отображался "Город2".
А в связи с тем, что сейчас в настройках InstantMaps стоит город по умолчанию "Город1", то, при выборе Категории2 отображается Город1, если использовать настройку "Использовать фильтр по городам", тогда при переходе в Категорию2 человек видит пустую страницу с просьбой выбрать свой город, что я считаю не совсем приятно пользователям.
Если еще актуально, то можно использовать хук instantcms.ru/forum/thread22006.html#210416