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

[Поддержка] Карта Украины в админке ocmod


pashast

Recommended Posts

Все прекрасно работает после проставки кода в регионы...

Спасибо огромная вас , выручили очень всех нас!

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

Глянул код модуля, чтобы он работал должно быть

1) Код страны Украина - 220, у L0ky так и есть

2) В регионах Украины (таблицы zone) коды у регионов (поле code) должны быть такие

"vi": "Вінницька область"
"vo": "Волинська область"
"dn": "Дніпропетровська область"
"do": "Донецька область"
"zh": "Житомирська область"
"6": "Закарпатська область"
"za": "Запорізька область"
"iv": "Івано-Франківська область"
"kv": "Київська область"
"kr": "Кіровоградська область"
"lu": "Луганська область"
"lv": "Львівська область"
"my": "Миколаївська область"
"od": "Одеська область"
"po": "Полтавська область"
"ri": "Рівненська область"
"su": "Сумська область"
"te": "Тернопільська область"
"kh": "Харківська область"
"ke": "Херсонська область"
"km": "Хмельницька область"
"ck": "Черкаська область"
"ch": "Чернігівська область"
"cv": "Чернівецька область"
"cr": "Автономна Республіка Крим"

В целом, чтобы проверить, даже не нужно выполнять запросы, можно открыть страницу

 

index.php?route=dashboard/map_ukraine/map&token=ТОКЕН

 

ТОКЕН можно взять с ссылки страницы, когда входишь в админку опенкарта, токен присваивается на текущую сессию

 

Спасибо большое, таки решили вопрос, таки работает :)

 

*немного дополняю

 

"ky" - Киев

(у нас Киев это отдельный регион, насчет кода не уверен, но вроде работает)

 

**для тех кто не знает что с этим всем делать: идем в админку - система - локализация - регионы, идем на 182-183 страницы и в каждом регионе меняем код на буквенный (у меня стоял цифровой) или ждем пока кто-то напишет здесь запрос в БД для замены :)

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


честно говоря, я бы не стал менять геокоды в БД - потом могут быть проблемы с использующими их модулями и сервисами

лучше в самом модуле изменить

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

честно говоря, я бы не стал менять геокоды в БД - потом могут быть проблемы с использующими их модулями и сервисами

лучше в самом модуле изменить

 

В каком модуле?

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


честно говоря, я бы не стал менять геокоды в БД - потом могут быть проблемы с использующими их модулями и сервисами

лучше в самом модуле изменить

Эти коды, что тут привел, изначально такие и были в опенкарте 1.5.х (кроме 6 - это ошибка видимо).

В новых версиях опенкарта коды цифровые, но в них еще меньше логики и непонятно, откуда они всплыли.

Сколько в рамках модуля симпл не сталкивался с модулями доставки (наверное уже за сотню перевалило), ни разу не видел, чтобы они где-то использовались.

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

как вариант, можно сделать проверку по обоим вариантам - и по цифровому коду (согласно стандарту iso из ссылки выше), и по буквенному

а возможно даже лучше будет делать проверку не по zone.code, а по zone.zone_id

 

но это уже мысли вслух, для pashast как автора

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

Эти коды, что тут привел, изначально такие и были в опенкарте 1.5.х (кроме 6 - это ошибка видимо).

В новых версиях опенкарта коды цифровые, но в них еще меньше логики и непонятно, откуда они всплыли.

Сколько в рамках модуля симпл не сталкивался с модулями доставки (наверное уже за сотню перевалило), ни разу не видел, чтобы они где-то использовались.

Почему же, во втором ОС куча буквенных кодов, но именно украинские были цифровые. Поменял на буквенные, заработала карта в этом модуле.
Надіслати
Поділитися на інших сайтах


как вариант, можно сделать проверку по обоим вариантам - и по цифровому коду (согласно стандарту iso из ссылки выше), и по буквенному

а возможно даже лучше будет делать проверку не по zone.code, а по zone.zone_id

 

но это уже мысли вслух, для pashast как автора

А в какой версии они используются эти цифровые коды? В последнем ocstore буквенные.

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

Почему же, во втором ОС куча буквенных кодов, но именно украинские были цифровые. Поменял на буквенные, заработала карта в этом модуле.

 

Как раз на этот вопрос ответить легко, -  в модуле доставки "Новой почтой" есть файл под названием "recovery_zone_and_country_tables.sql" который по словам автора восстанавливает названия и коды и т.п. для Украинских регионов (автор перестраховался на случай если эта инфа в базе изменена или удалена, чтоб его модуль точно работал), так вот, если заглянуть в этот файл, то можно увидеть у украинских регионов цифровые коды, а вот почему так, спросить у автора (Prorab337) модуля "Новая почта" )

 

b3031a60400e.jpg

Змінено користувачем L0ky
Надіслати
Поділитися на інших сайтах


А в какой версии они используются эти цифровые коды? В последнем ocstore буквенные.

 

это правки конкретно модуля "Новой почты" :) хотя возможно и у других модулей доставки есть аналогичные фокусы.

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


в оригинальном opencart цифровые коды для регионов Украины появились с версии 2011, до этого были буквенные

в ocStore они по-прежнему буквенные - вероятно потому что просто использовали скопировали данные от предыдущей БД

 

а автор "Новой почты" восстанавливает цифровые коды скорей всего потому, что эти самые коды используются при обмене данными в API

 

по поводу "почему цифры а не буквы":

по стандарту ISO 3166-2:UA у регионов Украины используется цифровой код

до версии 2011 в opencart для регионов Украины использовался буквенный код по HASC

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

Вы сейчас ищите причины, хотя проще поправить следствие, причем кому как удобнее, кому-то в базе, кому-то в скриптах модуля

Делать админку под задание соответствий - пустая трата времени, эта информация можно сказать статическая

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

как вариант, можно сделать проверку по обоим вариантам - и по цифровому коду (согласно стандарту iso из ссылки выше), и по буквенному

но это уже мысли вслух, для pashast как автора

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

  • 2 weeks later...

Как раз на этот вопрос ответить легко, -  в модуле доставки "Новой почтой" есть файл под названием "recovery_zone_and_country_tables.sql" который по словам автора восстанавливает названия и коды и т.п. для Украинских регионов (автор перестраховался на случай если эта инфа в базе изменена или удалена, чтоб его модуль точно работал), так вот, если заглянуть в этот файл, то можно увидеть у украинских регионов цифровые коды, а вот почему так, спросить у автора (Prorab337) модуля "Новая почта" )

 

b3031a60400e.jpg

 

Этот дамп я вырезал из ocstore версию уж не помню. Этот дамп на случай того что, некоторые магазины используют стандартные названия областей из чистого опенкарт или какой-то сборки, которые не всегда правильны, а некоторых областей иногда вообще нет. Также есть другой модуль новой почты который вообще затирает таблицы стран и регионов как таковые и пишет туда свою инфу, вот когда люди переходят с того модуля на мой - предлагаю им быстрое решение проблемы.

Змінено користувачем Prorab337
Надіслати
Поділитися на інших сайтах

в оригинальном opencart цифровые коды для регионов Украины появились с версии 2011, до этого были буквенные

в ocStore они по-прежнему буквенные - вероятно потому что просто использовали скопировали данные от предыдущей БД

 

а автор "Новой почты" восстанавливает цифровые коды скорей всего потому, что эти самые коды используются при обмене данными в API

 

по поводу "почему цифры а не буквы":

по стандарту ISO 3166-2:UA у регионов Украины используется цифровой код

до версии 2011 в opencart для регионов Украины использовался буквенный код по HASC

 

Кодами в своем модуле не пользуюсь так как их вариантов тьма. Модуль определяет область по названию, а далее сопоставляет уже со своей базой

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

  • 9 months later...

Установилось нормально. Регионы проверил, всё соответствует. Однако выдает ошибку вот такую 

Скрытый текст

<b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>25</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>26</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>27</b><b>Notice</b>: Undefined index:  in <b>/var/www/lsg/data/www/lsg.org.ua/system/library/cart/currency.php</b> on line <b>30</b>{"kr":{"total":"1","amount":"1556"},"ky":{"total":"2","amount":"19560"},"od":{"total":"1","amount":"3260"},"6":{"total":"1","amount":"3862"}}

Подскажите пожалуйста, как это лечится?

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


Добрый день! Под ОС2.3 не планируете обновить модуль? Я поставил этот (установка прошла без ошибок), коды поменял на буквенные, но все равно не работает. На 2.1, работало отлично.

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


  • 1 month later...

да уж, было бы неплохо под OpenCart 2.3  поправить. потому что в admin/controller/common/dashboard.php теперь нет строки [$data['map'] = $this->load->controller('dashboard/map');]

 

а подмена в admin/controller/common/extension/dashboard/map.php приводит к ошибке

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


Для OpenCart 2.3.x нужно сделать следующее:

  1. Записать в /admin/view/javascript/jquery/jqvmap/maps/  файл с картой страны, например Украины - ukraine.js(можно взять из этого модуля или сделать самому).
  2. Привести в соответствие коды регионов, а именно: открыть таблицу БД под названием "(ваш префикс_)zone" или просто "zone", если без префикса(префикс по умолчанию OC_) и выполнить запрос SELECT * FROM `oc_zone` WHERE `country_id`=220 (220 это код Украины), далее нужно посмотреть какому региону(из колонки Name) какой код соответствует (из колонки Code), точно такие же соответствия должны быть и в файле ukraine.js. Откройте его для редактирования и в коде найдите все участки типа

    "pathes" : {

    "05" : {
        "path" : "M517.4,446.91c-0.273-0.71-0.666-1.749-0.883-2.313-0.292-0.784-1.021-2.306-1.158-3.125-0.127-0.756,0.082-2.287,0.082-3...куча векторных координат.....и т.д.",
        "name" : "Вінницька область"
    },      Это значит что "Вінницька область" под кодом "05". Исправте так чтобы коды регионов были как в БД.

  3. Открыть для редактирования файл admin/view/template/extension/dashboard/map_info.tpl и исправить <script type="text/javascript" src="view/javascript/jquery/jqvmap/maps/jquery.vmap.world.js"></script>  на   <script type="text/javascript" src="view/javascript/jquery/jqvmap/maps/ukraine.js"></script> и ниже по коду  "$('#vmap').vectorMap({map: 'world_en', "    на    "$('#vmap').vectorMap({map: 'ukraine'," (вместо 'ukraine' может быть другое имя, посмотреть его нужно в файле векторной карты ukraine.js в коде 

    jQuery.fn.vectorMap(

    'addMap',
    'ukraine',)

  4. Далее в файле admin/model/report/sale.php нужно добавить функцию :

    public function getTotalOrdersByZone() {
            $query = $this->db->query("SELECT COUNT(*) AS total, SUM(o.total) AS amount, c.code FROM `" . DB_PREFIX . "order` o LEFT JOIN `" . DB_PREFIX . "zone` c ON (o.payment_zone_id = c.zone_id) WHERE o.order_status_id > '0' GROUP BY o.payment_zone_id");

            return $query->rows;
        }

Далее в файле admin/controller/extension/dashboard/map.php  меняем код в функции map() - 

public function map() {
        $json = array();

        $this->load->model('report/sale');

        $results = $this->model_report_sale->getTotalOrdersByCountry();

        foreach ($results as $result) {
            $json[strtolower($result['iso_code_2'])] = array(
                'total'  => $result['total'],
                'amount' => $this->currency->format($result['amount'], $this->config->get('config_currency'))
            );
        }

        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($json));
    }

на 

public function map() {
        $json = array();

        $this->load->model('report/sale');

        $results = $this->model_report_sale->getTotalOrdersByZone();

        foreach ($results as $result) {
            $json[strtolower($result['code'])] = array(
                'total'  => $result['total'],
                'amount' => $this->currency->format($result['amount'], $this->config->get('config_currency'))
            );
        }

        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($json));
    }

На этом все.

  • +1 3
Надіслати
Поділитися на інших сайтах


  • 1 month later...
10 минут назад, buslikdrev сказал:

Разве это не очевидно?

Пока что нет))) 

ЗЫ я недавно нашел тему, где один автор модулей (НЕ ЭТОТ), в своих дополнениях через доступ ФТП оставлял для себя "дыру", причем это было в каждом его дополнение. А дополнений у него есть МНОГО, вот я и спрашиваю.

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


3 часа назад, binzin сказал:

Здравствуйте. Подскажите пожалуйста, почему ФТП должен быть включен?

При установке пишет

FTP доступ должен быть включен в настройках

 

потому что это основы при работе с архивами ocmod.zip

подробнее здесь

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

  • 2 months later...

Opencart 2.3.0.2.3 - чистая установка с нуля и демо товарами,
1. перед установкой: все регионы кроме Украина - удалены, все страны кроме Украина - удалены

2. установил через Установщик дополнений OCMOD - без ошибок
3. в списке дополнений появилось "дополнение Карта Украины" - без проблем
4. изменил в кодах регионов все на буквенное обозначение
5. очистил системный кеш

карта не появилась. По ссылке о замене кода Украины на 220 не понял что и где искать.
Подскажите чуть детальнее ,плиз

 

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


  • 3 weeks later...

Добрый день, ocstore 2.3 - сделал всё как написали выше для этой версии, подправил все файлы добавил функции ..... в общем заработало но не подсвечивает карту с заказами, куда теперь копать? скрин приложил, сделал два заказа из харьковской и киевской областей ..... помогите пож и спасибо за ваш труд - очень классно придумали

image.thumb.png.ff67e46569f6a3cdbde986eb17926ecb.png

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


  • 2 weeks later...

взял из этой темы файл и перенастроил как сделано тут

 

карты впринципе отображается.  особо не тестил но должно работать

 

map_ua-oc2.3.0.x.ocmod.zip

 

а ну и прикол в тему. хотел соеденить карты сделать снг. я сделал монстра)))

image.png.2c1fedbb6eb2ddb9f5797b0ad14249d3.png

 

 

Змінено користувачем mvarts
  • +1 1
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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