Интеграция БД SxGeoIP (геолокация по IP)

Интеграция в CMF Cotonti данных базы SxGeoIP, содержащих данные географической привязки IP-адресов к странам и городам мира. База разработана, поддерживается и распространяется (под лицензией BSD) сайтом http://sypexgeo.net/

#1. SxGeo IP base

Расширение для CMF Cotonti. Интеграция данных базы SxGeoIP.

Authors: Андрей Мацовкинn, Алексей Кальнов

Github: https://github.com/Cotonti-Extensions/sxgeo

 

#1.1. Описание

Интеграция в CMF Cotonti данных базы SxGeoIP, содержащих данные географической привязки IP-адресов к странам и городам мира. База разработана, поддерживается и распространяется (под лицензией BSD) сайтом https://sypexgeo.net/

 

#1.2. Возможности и особенности

  • Высокая скорость работы
  • Определение по IP-адресу страны и города
  • Хорошая точность определения по странам СНГ
  • База содержит названия населенных пунктов в русской транскрипции

 

#1.3. Актуальность данных

 

#1.4. Демонстрация

Пример работы базы вы можете найти на странице разработчика базы по адресу: https://sypexgeo.net/

 

#1.5. Требования

Cotonti Siena v0.9.23 и более новые.

 

#1.6. Комментарии

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

 

#1.7. Устройство

Используются данные о гео-привязке IP адресов, упакованные в файл формата SxGeoIP. Подробнее про формат смотри на сайте автора https://sypexgeo.net/. Данные о стране и городе хранятся и извлекаются отдельно (из разных файлов).

 

#1.8. Установка

  • Распаковать, скопировать файлы в корень сайта.
  • Установить через панель Администрирования → Расширения (Управление сайтом → Расширения)
  • Проверьте настройки в меню настройки плагина (Управление сайтом → Расширения → sxgeo → Конфигурация).

 

#1.9. Использование

Использовать данные можно двумя способами

1) Через вызовы функций sx_getCity($ip) и sx_getCountry($ip). Эти функции возвращают строки с именем города и страны соответственно. Если IP адрес не указан - система использует IP адрес текущего пользователя.

Примеры:
{PHP|sx_getCity('8.8.8.8')}
{PHP.usr.ip|sx_getCountry($this)}

Обратите внимание, что название страны возвращается в текущей локали Cotonti (выбранной пользователем), исходя из определенного языкового файла countries.*.lang.php. Название города возвращается в английском или русском варианте, в том виде, как извлечено из файла SxGeoIP.

 

2) Если в настройках расширения включен режим Автоматическая инициализация, то в шаблонах можно использовать прямые обращения к сгенерированным для текущего пользователя данным.

 

Формат данных:


    /**
  * Contains data for country code and id from last sx_getCountry*() call.
  */
    $sx_country = [
   'iso' => '', // ISO 3166-1 code in appear case
   'name' => '', // Country name with Cotonti locale as defined in countries.*.lang.php file
   'id'  => 0, // Country ID used in SxGeoIP base
    ];

    /**
  * Contains info about city from last sx_getCity*() call.
  */
    $sx_city = [
   'info' => [],  // basic info, see sx_getCity() function for details
   'ext_info' => [], //extended info, see sx_getCityExt() function for details
    ];

Вызов из шаблона:
город - {PHP.sx_city.info.city}
страна - {PHP.sx_country.name}

 

#1.10. Условия распространения (лицензия)

Distributed under BSD license.

 

#1.11. Авторство

Андрей Мацовкин - автор плагина для Cotonti База IP адресов разработана, поддерживается и распространяется (под лицензией BSD) сайтом https://sypexgeo.net/

#1.12. Ссылки


1. Uch  11.11.2013 10:39

Спасибо!
Добавил файл для comments.loop и стало просто замечательно :)

Добавление комментариев доступно только зарегистрированным пользователям