Доброго времени суток, форумчане!
Такой вопрос, как можно реализовать гугл.карты в редактировании товара с последующей записью координат в базу (например доп.свойства). Идея такова, во вкладке доп.свойств есть поле, в которое мы можем ввести как координаты, так и адрес объекта, под данным полем располагается div в котором инициализируется гугл.карта. Впоследствии, при выводе посетителю каталога будут хвататься сохранённые координаты (js будет подменять адрес после геолокации в input на координаты в редактировании товара) и выводится список объектов на карте.
Самое простое решение:
Добавляем условие в /modules/admin/form/entity/input.php
.............
?><div <?php echo implode(' ', $aDivAttr)?>><?php
?><span class="caption" style="color:#009900;"><?php echo
$this->caption?></span><?php
?><input <?php echo implode(' ', $aAttr) ?>/><?php
//пробуем впихнуть свой div
if (preg_match('/^name=\"property_103/',$aAttr[0])) {
echo '<input type="hidden" data-gmapping="{"id":"m_1","latlng":{"lat":39.7391536,"lng":-104.9847034},"tags":"drupal"}"
/>
<!-- скрытый input для тестирования работы карты, в дальнейшем значение
будет браться из необходимого инпута -->
<div id="map_canvas" style="width: 450px;
height: 300px; margin-left: 0; position: relative; background-color:
rgb(229, 227, 223);"></div>';
}
// Могут быть дочерние элементы элементы
parent::execute();
.............
А в modules/skin/default.php добавляем JS:
<?php $this->showHead()?>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&language=ru"></script>
<script type="text/javascript" src="http://jquery-ui-map.googlecode.com/svn/tags/3.0-alpha/ui/jquery.ui.map.js"></script>
<script type="text/javascript"
src="/modules/skin/google-map-code.js"></script>
</head>
div добавляется, правда гугл.карты не работают. Техподдержка сказала, что данное решение неправильное.
Сам код рабочий,в фронтенде карты работают отлично.
Есть какие-нибудь более удобные/правильные/т.д. решения данной задачи?
