Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Модуль для вывода карты яндекс в табах VQMOD


Recommended Posts

Приветствую уважаемые участники форума.

По необходимости начал проектировать модуль.За основу взят модуль от участника форума "efremovxp".

Основная задача - добавление объектов на карту яндекс через админку при добавлении товара.

Итак, сразу обозначу что до этого модули не создавал, поэтому прошу помощи, чтобы разобраться.

 

На данный момент xml файл имеет такой вид:

<modification>
    <id>Yandex Maps</id>
    <version>1.0.0</version>
    <vqmver>2.1.5</vqmver>
    <author><![CDATA[<a href="https://opencartforum.com/user/17879-efremovxp/">efremovxp</a>]]></author>
    
    <decription>Модуль предназначен для создания схемы проезда</decription>

    <file name="catalog/controller/product/product.php">
        <operation>
            <search position="after" error="log"><![CDATA[$this->data['tab_attribute'] = $this->language->get('tab_attribute');]]></search>
            <add><![CDATA[
        $this->data['adress_ymaps'] = $this->config->get('adress_ymaps');
        $this->data['preset_type'] = $this->config->get('preset_type');
        $this->data['balloon_content'] = $this->config->get('balloon_content');
        $this->data['zoom_lvl'] = $this->config->get('zoom_lvl');
        $this->data['width_ymaps'] = $this->config->get('width_ymaps');
        $this->data['height_ymaps'] = $this->config->get('height_ymaps');
        ]]></add>
        </operation>
    </file>

       <file name="admin/view/template/catalog/product_form.tpl">
        <operation>
            <search position="after" error="log"><![CDATA[<a href="#tab-links"><?php echo $tab_links; ?></a>]]></search>
          <add><![CDATA[
          <a href="#tab-ymaps"><?php echo $tab_ymaps; ?></a>
        ]]></add>
        </operation>
    </file>


    <file name="admin/view/template/catalog/product_form.tpl">
        <operation>
            <search position="before" error="log"><![CDATA[<div id="tab-attribute">]]></search>
            <add><![CDATA[ <div id="tab-data">
          <table class="form">
            <h2>Яндекс карты Lite 1.0</h2>
            <p>Yandex Maps API 2.1 beta</p>
            <tr>
              <td>Адрес: </td><td><input type="text" name="adress_ymaps" value="<?php echo $adress_ymaps; ?>" /><i> Пример: Россия, Москва, улица Тверская, 1</i></td>
            </tr>
            <tr>
              <td>Ширина карты: </td><td><input type="text" name="width_ymaps" value="<?php echo $width_ymaps; ?>" /> px</td><td></td>
            </tr>
            <tr>
              <td>Высота карты: </td><td><input type="text" name="height_ymaps" value="<?php echo $height_ymaps; ?>" /> px</td><td></td>
            </tr>
            <tr>
              <td>Уровень приближения: </td><td>
                  <select name="zoom_lvl" size="1">
                <option <?php if ($zoom_lvl == '1') { ?>selected="selected"<?php } ?> value="1">1</option>
                <option <?php if ($zoom_lvl == '2') { ?>selected="selected"<?php } ?> value="2">2-мир</option>
                <option <?php if ($zoom_lvl == '3') { ?>selected="selected"<?php } ?> value="3">3</option>
                <option <?php if ($zoom_lvl == '4') { ?>selected="selected"<?php } ?> value="4">4</option>
                <option <?php if ($zoom_lvl == '5') { ?>selected="selected"<?php } ?> value="5">5-страна</option>
                <option <?php if ($zoom_lvl == '6') { ?>selected="selected"<?php } ?> value="6">6</option>
                <option <?php if ($zoom_lvl == '7') { ?>selected="selected"<?php } ?> value="7">7</option>
                <option <?php if ($zoom_lvl == '8') { ?>selected="selected"<?php } ?> value="8">8</option>
                <option <?php if ($zoom_lvl == '9') { ?>selected="selected"<?php } ?> value="9">9-город</option>
                <option <?php if ($zoom_lvl == '10') { ?>selected="selected"<?php } ?> value="10">10</option>
                <option <?php if ($zoom_lvl == '11') { ?>selected="selected"<?php } ?> value="11">11</option>
                <option <?php if ($zoom_lvl == '12') { ?>selected="selected"<?php } ?> value="12">12</option>
                <option <?php if ($zoom_lvl == '13') { ?>selected="selected"<?php } ?> value="13">13</option>
                <option <?php if ($zoom_lvl == '14') { ?>selected="selected"<?php } ?> value="14">14-улица</option>
                <option <?php if ($zoom_lvl == '15') { ?>selected="selected"<?php } ?> value="15">15</option>
                <option <?php if ($zoom_lvl == '16') { ?>selected="selected"<?php } ?> value="16">16</option>
                <option <?php if ($zoom_lvl == '17') { ?>selected="selected"<?php } ?> value="17">17-дом</option>
                <option <?php if ($zoom_lvl == '18') { ?>selected="selected"<?php } ?> value="18">18</option>
                </select>
            </td>
            </tr>
            <tr>
              <td>Текст балуна: </td><td><input type="text" name="balloon_content" value="<?php echo $balloon_content; ?>" /></td>
            </tr>
            <tr>
              <td>Тип метки: </td><td>
                <select name="preset_type" size="1">
                <option <?php if ($preset_type == 'dotIcon') { ?>selected="selected"<?php } ?> value="dotIcon">Метка с точкой</option>
                <option <?php if ($preset_type == 'icon') { ?>selected="selected"<?php } ?>value="icon">Метка без точки</option>
                <option <?php if ($preset_type == 'circleDotIcon') { ?>selected="selected"<?php } ?>value="circleDotIcon">Круг с точкой</option>
                <option <?php if ($preset_type == 'circleIcon') { ?>selected="selected"<?php } ?>value="circleIcon">Круг без точки</option>
                </select></td>
            </tr>
          </table></div>]]></add>
        </operation>
    </file>
    <file name="admin/controller/catalog/product.php">
        <operation>
            <search position="before" error="log"><![CDATA[if (isset($this->request->post['product_description'])) {]]></search>
            <add><![CDATA[        
        if (isset($this->request->post['adress_ymaps'])) {
            $this->data['adress_ymaps'] = $this->request->post['adress_ymaps'];
        } else {
            $this->data['adress_ymaps'] = $this->config->get('adress_ymaps');
        }
        
        if (isset($this->request->post['preset_type'])) {
            $this->data['preset_type'] = $this->request->post['preset_type'];
        } else {
            $this->data['preset_type'] = $this->config->get('preset_type');
        }
        
        if (isset($this->request->post['balloon_content'])) {
            $this->data['balloon_content'] = $this->request->post['balloon_content'];
        } else {
            $this->data['balloon_content'] = $this->config->get('balloon_content');
        }
        
        if (isset($this->request->post['zoom_lvl'])) {
            $this->data['zoom_lvl'] = $this->request->post['zoom_lvl'];
        } else {
            $this->data['zoom_lvl'] = $this->config->get('zoom_lvl');
        }
        
        if (isset($this->request->post['height_ymaps'])) {
            $this->data['height_ymaps'] = $this->request->post['height_ymaps'];
        } else {
            $this->data['height_ymaps'] = $this->config->get('height_ymaps');
        }
        if (isset($this->request->post['width_ymaps'])) {
            $this->data['width_ymaps'] = $this->request->post['width_ymaps'];
        } else {
            $this->data['width_ymaps'] = $this->config->get('width_ymaps');
        }
        ]]></add>
        </operation>
    </file>

        <file name="catalog/view/theme/*/template/product/product.tpl">
        <operation>
            <search position="after" error="log"><![CDATA[<?php if ($review_status) { ?><a href="#tab-review"><?php echo $tab_review; ?></a><?php } ?>]]></search>
          <add><![CDATA[
   <?php if ($tab_ymaps) { ?>
    <a href="#tab-ymaps"><?php echo $tab_ymaps; ?></a>
    <?php } ?>
        ]]></add>
        </operation>
    </file>

        <file name="catalog/view/theme/*/template/product/product.tpl">
        <operation>
            <search position="before" error="log"><![CDATA[<?php if ($review_status) { ?><div id="tab-review" class="tab-content">]]></search>
            <add><![CDATA[<?php if ($adress_ymaps) { ?>  <div id="tab-ymaps" class="tab-content">
<script src="//api-maps.yandex.ru/2.1-dev/?lang=ru-RU&load=package.full" type="text/javascript"></script>
<script type="text/javascript">
ymaps.ready(function () {
{
var myGeocoder = ymaps.geocode("<?php echo $adress_ymaps; ?>");
myGeocoder.then(
    function (res) {
        var firstGeoObject = res.geoObjects.get(0),        
                myMap = new ymaps.Map
                ("YMapsID",
                    {
                        center: firstGeoObject.geometry.getCoordinates(),
                        controls: ['smallMapDefaultSet'],
                        zoom: <?php if ($zoom_lvl) { ?><?php echo $zoom_lvl; ?><?php } else { ?>15<?php } ?>
                    }
                );
            var myPlacemark = new ymaps.Placemark
            (
                firstGeoObject.geometry.getCoordinates(),
                {
                   <?php if ($balloon_content) { ?> balloonContent: '<?php echo $balloon_content; ?>',<?php } ?>
                },
                {
                    preset: 'islands#<?php if ($preset_type) { ?><?php echo $preset_type; ?><?php } else { ?>dotIcon<?php } ?>'
                }
            );
            myMap.geoObjects
            .add(myPlacemark);
    },
    function (err) {
        alert(err.message);
    }
);
}
});
</script>
<div id="YMapsID" style="width:<?php echo $width_ymaps; ?>px; height:<?php echo $height_ymaps; ?>px"></div>
    </div><?php } ?>]]></add>
        </operation>
    </file>
</modification>

.. но выдаются ошибки и естественно он нигде не появляется

2015-02-25 22:26:43 - PHP Warning:  Invalid argument supplied for foreach() in /home/httpd/vhosts/sitename.ru/httpdocs/catalog/controller/module/product_tab.php on line 32
2015-02-26 14:20:56 - PHP Notice:  Undefined variable: tab_ymaps in /home/httpd/vhosts/sitename.ru/httpdocs/vqmod/vqcache/vq2-admin_view_template_catalog_product_form.tpl on line 19

Буду рад, если кто нибудь поможет разобраться что куда итд....

Спасибо.

Надіслати
Поділитися на інших сайтах


Изучать html, css, javascript, php, mysql + читать про MVC opencart, vqmod opencart

Изучать модули и код, для начала дефолтные

 

Все вопросы отпадут сами собой

Надіслати
Поділитися на інших сайтах

Если кому интересно, решилось всё установкой и редактированием модуля Product Maps 1.2

Для работы на 1.5.6.4 несколько изменений в xml и языковых файлах. Спрашивайте, файлы кину.

Вот сам модуль:

http://www.opencart.com/index.php?route=extension/extension/info&extension_id=3203&filter_search=product%20maps

 

На ближайший период его хватит, однако со временем постараюсь всё же осилить яндекс карты.

Надіслати
Поділитися на інших сайтах


Блин, жалко что поздно этот модуль увидел, спасибо за наводку :-)

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.