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

[Поддержка] CityManager (Определение города по IP, Geo IP)


Recommended Posts

Нет

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

 

А переход на поддомены этот модуль поддерживает?

 

да

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

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

Сайт: http://test.mona-liza.org/

Проблема:fff5d7ea155053106dc86a8783253d30.png

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


Скорее всего, регистр файлов изменился при копировании через фтп. Посмотрите в prinstall/library все файлы должны быть так же написаны как в архиве.

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

Скорее всего, регистр файлов изменился при копировании через фтп. Посмотрите в prinstall/library все файлы должны быть так же написаны как в архиве.

 

Да, действительно регистр имен изменялся при копировании. Спасибо за помощь!

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


1.Будет ли работать данный модуль с версией 1.5.6.1?

2. Не могу купить модуль: выбираю яндекс кошелек, в кошельке есть больше чем 350 руб. мне система выдает сообщение, что у меня не хватает денег.

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


Да, работает.

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

Нет

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

Нет

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

Добрый день!

Скажите пожалуйста, возможно ли как-то оптимизировать запросы к БД в этом модуле? Сейчас первый запрос после перезагрузки сервера занимает почти 6 секунд, последующие - в районе 0,5 секунды, что тоже очень много. Запросы тестировал непосредственно в phpmyadmin.

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


Добрый вечер!

А определение города по Беларуси на текущий момент не работает? Не планируете ли в последующих обновлениях сделать, а то база городов есть, а определяет только Минск? Было бы здорово.

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


Добрый день!

Скажите пожалуйста, возможно ли как-то оптимизировать запросы к БД в этом модуле? Сейчас первый запрос после перезагрузки сервера занимает почти 6 секунд, последующие - в районе 0,5 секунды, что тоже очень много. Запросы тестировал непосредственно в phpmyadmin.

 

Я попробую что-нибудь сделать.

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

Добрый вечер!

А определение города по Беларуси на текущий момент не работает? Не планируете ли в последующих обновлениях сделать, а то база городов есть, а определяет только Минск? Было бы здорово.

 

Если Минск определяется - значит, работает) А можете дать IP-адреса, зарегистрированные в других городах для теста?

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

Иногда случается такое, что выскакивает окно или угадали город, выбираешь свой, окно все равно опять появляется. И пишет бывает бред, то Калифорния, то Питер, хотя базу для России не ставил.

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


Если Минск определяется - значит, работает) А можете дать IP-адреса, зарегистрированные в других городах для теста?

Сбросил ip адреса областных городов РБ в личку. Посмотрите пожалуйста.

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


Я попробую что-нибудь сделать.

По оптимизации запроса к БД: нужно убрать первый % из запросов SELECT LIKE в поиске города. В этом случае при вводе в поисковую строку "омс" в выпадающем списке отражаются только те города и области, название которых начинается с "омс", а не все 100500 названий, содержащих это слово в середине. Запрос при этом происходит раз в 400-500 быстрее (0,0016 сек против 0,71 сек). Юзабилити также существенно повышается - юзер видит в выпадающем списке самые релевантные названия городов. Пример: если мы живем в Омске и вводим "омс", то нам совсем не нужно, чтобы выпадал Томск и какой-нибудь Закотомск))

 

Файл:

/catalog/model/module/geoip.php

Строки для замены: с 9 по 14

 

            if (isset($parts[1])) {
                $where .= "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%' OR f3.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%')) OR ";//убрал % в начале LIKE
            }
 
            $where .= "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($term)) . "%')";//убрал % в начале LIKE
Надіслати
Поділитися на інших сайтах


 

По оптимизации запроса к БД: нужно убрать первый % из запросов SELECT LIKE в поиске города. В этом случае при вводе в поисковую строку "омс" в выпадающем списке отражаются только те города и области, название которых начинается с "омс", а не все 100500 названий, содержащих это слово в середине. Запрос при этом происходит раз в 400-500 быстрее (0,0016 сек против 0,71 сек). Юзабилити также существенно повышается - юзер видит в выпадающем списке самые релевантные названия городов. Пример: если мы живем в Омске и вводим "омс", то нам совсем не нужно, чтобы выпадал Томск и какой-нибудь Закотомск))

 

Файл:

/catalog/model/module/geoip.php

Строки для замены: с 9 по 14

 

            if (isset($parts[1])) {
                $where .= "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%' OR f3.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%')) OR ";//убрал % в начале LIKE
            }
 
            $where .= "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($term)) . "%')";//убрал % в начале LIKE

 

Если Я Вас правильно понял, то Вы уже дали исправленный вариант для вставки?

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


Если Я Вас правильно понял, то Вы уже дали исправленный вариант для вставки?

Да, надо просто заменить строки с 9 по 14 на эти. Вы их увидите в файле, они почти такие же, отличаются только отсутствием первого знака % в запросах LIKE. Можете просто сами руками их удалить и проверить в phpmyadmin, как сработают вариант с первым % и без него.

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


Да, надо просто заменить строки с 9 по 14 на эти. Вы их увидите в файле, они почти такие же, отличаются только отсутствием первого знака % в запросах LIKE. Можете просто сами руками их удалить и проверить в phpmyadmin, как сработают вариант с первым % и без него.

Я Вас понял, спасибо

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


 

По оптимизации запроса к БД: нужно убрать первый % из запросов SELECT LIKE в поиске города. В этом случае при вводе в поисковую строку "омс" в выпадающем списке отражаются только те города и области, название которых начинается с "омс", а не все 100500 названий, содержащих это слово в середине. Запрос при этом происходит раз в 400-500 быстрее (0,0016 сек против 0,71 сек). Юзабилити также существенно повышается - юзер видит в выпадающем списке самые релевантные названия городов. Пример: если мы живем в Омске и вводим "омс", то нам совсем не нужно, чтобы выпадал Томск и какой-нибудь Закотомск))

 

Файл:

/catalog/model/module/geoip.php

Строки для замены: с 9 по 14

 

            if (isset($parts[1])) {
                $where .= "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%' OR f3.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%')) OR ";//убрал % в начале LIKE
            }
 
            $where .= "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($term)) . "%')";//убрал % в начале LIKE

 

этот код заменить? то то, что выше?


            if (isset($parts[1])) {
 
                $where = "(f1.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[1]))
                        . "%' OR f3.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[1])) . "%'))
                        OR (f1.offname LIKE '%" . $escaped_term . "%')";
 
                return $this->db->query(str_replace('%WHERE%', $where, $sql))->rows;
            }
Надіслати
Поділитися на інших сайтах


у вас немного другой код - возможно, другая версия модуля. Вот это

 

 $where = "(f1.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[1]))
                        . "%' OR f3.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[1])) . "%'))
                        OR (f1.offname LIKE '%" . $escaped_term . "%')";
замените на вот это
 $where = "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1]))
                        . "%' OR f3.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%'))
                        OR (f1.offname LIKE '" . $escaped_term . "%')";
Надіслати
Поділитися на інших сайтах


 

у вас немного другой код - возможно, другая версия модуля. Вот это

 

 $where = "(f1.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[1]))
                        . "%' OR f3.offname LIKE '%" . $this->db->escape(utf8_strtolower($parts[1])) . "%'))
                        OR (f1.offname LIKE '%" . $escaped_term . "%')";
замените на вот это
 $where = "(f1.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[0])) . "%'
                        AND (f2.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1]))
                        . "%' OR f3.offname LIKE '" . $this->db->escape(utf8_strtolower($parts[1])) . "%'))
                        OR (f1.offname LIKE '" . $escaped_term . "%')";

 

Спасибо большое! Стало заметно лучше!

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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