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

SFR

Новачок
  
  • Публікації

    21
  • З нами

  • Відвідування

Усі публікації користувача SFR

  1. В 2.0.12 неточность в файле simplegeo.php первый найденный if (!isset($geo)) { заменить на if (!$geo) { тк если $geo false, то getGeoIpByMaxMind() не отрабатывает.Отдельное спасибо за changelog!
  2. deeman, А можно где-то вести changelog версий? Модуль хороший, обновляться надо. Но перед каждым обновлением вынуждены смотреть diff, перед заливкой на production. По поводу версии 2.0.11: то что добавлено: class ModelToolSimpleGeo extends Model { static $checked = false; и изменения в методе getGeoIpBySimpleOpenCart() сильно отличаются от предложенного способа по эффективнсоти.Пример первого запроса (когда страна еще не выбрана) В вашем случае: QUERY1!QUERY2!GEOIP!QUERY2!GEOIP! В предложенном случае: QUERY1!QUERY2!GEOIP! (запросы выполняются не более 1 раза и попадают в кэш статической переменной функции)Можете расставить флаги и проверить. Нам вообщем-то не трудно добавлять свой кусок при каждом обновлении модуля, но когда можно сделать "легче" для всех - почему бы не попробовать этого добиться. lewys, Скачайте файл в приложении, залейте на сервер и запустите его напрямую в бразуере (domain.com/test.php). test.php
  3. Спасибо за интересное решение. Правда подходит разве что как временный костыль.Используются модули автоматического рассчета разных способов доставки в страны, и править все модули добавляя trim() не дело, к тому же неизвестно как этот костыль вспоследствии внезапно всплывет)
  4. lewys, замените файл catalog/model/tool/simplegeo.php тем что в приложении. далее как уже выше сказано, в админке модуля 3 вкладка, настройки полей страна - поставить галочку "использовать определение по IP". и у вас на сервере/хостинге должен быть включен mod_geoip. Это уже к админам/хостерам. simplegeo.php
  5. А, вот оно что, чекбоксы эти пропустил ;) У нас международные доставки. Выкладываю определение страны по GeoIP, думаю еще кому-то пригодится. Вообщем-то если включить в официальный код, модуль так будет более универсальным. Как видно может работать автовыбором с двумя гео ф-циями: - apache_note - через apache mod_geoip, если он установлен. - geoip_record_by_name - это php расширение geoip, если включено. файл catalog/model/tool/simplegeo.php: public function getGeoIp() { static $geo=false; // false, чтобы не null; if (is_array($geo) || is_null($geo)) return $geo; // null отдает $this->cache->get(); если кэша нет; if (!$geo = $this->getGeoIpBySimpleOpenCart()) { $ip = isset($this->request->server['HTTP_X_FORWARDED_FOR']) && $this->request->server['HTTP_X_FORWARDED_FOR'] ? $this->request->server['HTTP_X_FORWARDED_FOR'] : 0; $ip = $ip ? $ip : $this->request->server['REMOTE_ADDR']; if (function_exists('apache_note') && $code = apache_note('GEOIP_COUNTRY_CODE')) { if ($country_id = $this->getCountryIdbyISO($code)) { $geo = array( 'country_id' => $country_id, 'zone_id' => '', 'city' => '', 'postcode' => '', ); } } else if (function_exists('geoip_record_by_name') && $code = geoip_record_by_name($ip)) { if ($country_id = $this->getCountryIdbyISO($code['country_code'])) { $geo = array( 'country_id' => $country_id, 'zone_id' => '', 'city' => '', 'postcode' => '', ); } } } return $geo; } private function getCountryIdbyISO ($iso) { if (!is_string($iso) && strlen($iso) != 2) return false; // RU $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "country WHERE iso_code_2 = '" . $iso . "' AND status = '1'"); if ($query->row) { return $query->row['country_id']; } else return false; } P.S. Из пожеланий для будущих версий, раз модуль такой "user-friendly", возможно ли сделать сортировку стран, чтобы была возможность задать в списке стран самыми первыми страны СНГ, вроде: <option value="176" style="famous">Россия</option> <option value="220" style="famous">Украина</option> <option value="20" style="famous">Белоруссия</option> <option value="13">Австралия</option> <option value="14">Австрия</option> <option value="15">Азербайджан</option Кроме как лезть править движок - не знаю каким образом реализовать, а модуль я так понимаю как раз все фильтрует и по-своему выводит, задавая свои правила.
  6. Отличный модуль, очень сильный функционал. Проблема. Сейчас мучаюсь с Гео, подключаю определение стран на основе mixmind geoip. Проблема в файле simplecheckout_customer.php. Строка: if (!empty($fields_settings['init_geoip']) && $geo = $this->model_tool_simplegeo->getGeoIp()) { возвращает false, конкретно первое условие не выполняется.То есть $fields_settings['init_geoip'] не существует. Хотя $this->model_tool_simplegeo->getGeoIp() отдает нужный массив. Пока заменил на: if ($geo = $this->model_tool_simplegeo->getGeoIp()) { Вопрос откуда берется $fields_settings['init_geoip'] и при каких условиях оно может не существовать? (у меня не существует этой записи в массиве $fields_settings)И в копилку хорошего модуля небольшая оптимизация. Вот эта строчка: if (!empty($fields_settings['init_geoip']) && $geo = $this->model_tool_simplegeo->getGeoIp()) { выполняется за одно "дергание" скрипта много раз. Там первыми строчками в getGeoIpBySimpleOpenCart() - запросы к БД есть.Поэтому в simplegeo.php (метод getGeoIp()) есть смысл добавить статическую переменную. Всего 2 строчки вначале ф-ции избавляют от лишних запросов к БД: public function getGeoIp() { static $geo=false; // изначально false, чтобы не null; if (is_array($geo) || is_null($geo)) return $geo; // null отдает $this->cache->get(); если кэша нет; [...]
  7. Поскольку модуль "Почта России" - единственный на данный момент, а по EMS есть другие модули, можете Почту России отделить в отдельный проект? И кстати если используете github - то можно дополнительно и туда выложить его, тогда желающие могли бы дополнять и исправлять модуль, постоянно его улучшая.
  8. Обновлен: Сегодня, 22:38 simple 2.0.10 Changelog в чем? Пора бы завести файл CHANGELOG.txt
  9. Этот модуль (кстати бесплатный) может такое делать (речь идет о создании скидки для оптовиков). Customer Group Discounts Можно задать discount/наценку как для группы, так и для определенной категории товаров. У меня работает как торговая наценка для Обычных покупателей и скидка для Оптовиков(группа пользователей) Правда установка непростая (редактирование файлов движка), но из всех подобных поделок с редактированием файлов - думаю эта штука самая доведенная.

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

Important Information

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