Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
siv1987

(SIV41) Author Post GeoLocation

Рекомендованные сообщения

Под php5-geoip http://php.net/manual/ru/ref.geoip.php она только старую версию баз данных использует. И у всех устанавливается без проблем.

Поделиться сообщением


Ссылка на сообщение

У всех конечно устанавливается без проблем, но не у всех есть возможность устанавливать расширения на сервере. В принципе внедрить метод для работы с php расширением не сложно, там всего одна функция для вызова, а вот в качестве альтернативы в виде php библиотеки сделаю интеграцию с Maxmind GeoIP2. Установка библиотеки немного сложнее (относительно конечно), но за то база данных там имеет мулти-язычность. Хотя и говорил что новые сервисы больше добавлять не буду, а буду расширять функционал из шаблоного плагина в полноценный класс для геолокации на форуме, с поддержкой гугл мэпс и пр.

Поделиться сообщением


Ссылка на сообщение

Обновлен до 1.0.4.

По многочисленным просьбам участников добавлены новые и, скорее всего последние, geo сервисы - php-geoip и maxmind geoip2. Существующие сервисы должны уже удовлетворить всех, даже самых взыскательных пользователей.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Спасибо огромное!

 

У внешних бесплатных сервисов есть два серьезных минуса: 1) медленная обработка запроса, 2) быстро достигается предел бесплатных запросов, в результате, сервис перестает отдавать результат.

Поделиться сообщением


Ссылка на сообщение

Отпишитесь потом о работе, ибо с модулем php негде было протестировать.

Поделиться сообщением


Ссылка на сообщение

У внешних бесплатных сервисов есть два серьезных минуса: 1) медленная обработка запроса, 2) быстро достигается предел бесплатных запросов, в результате, сервис перестает отдавать результат.

1) Да, время генерации страницы немного увеличивается, но для этого есть кеширование и настройка доступа по группам

2) Второе вытекает из первого - кеширование. Возьмем к примеру средний форум по количеству активных пользователей в месяц 1000 и сервис с лимитом в 10000 запросов. Установим кеширование ip на 15 дней. На 1 ip приходится два запроса в месяц, умножим на 1000 активных и получаем 2000 запросов в месяц, плюс 10000 в запас для старых сообщений и 3000 для динамичных ип. Итого имеем ~6000 запросов - чуть больше половины. Остается еще половина для тех пользователей, у кого каждое сообщение с нового ip адреса. Более точно спрогнозировать количество запросов можно посчитав число уникальных ip сообщений за один месяц: SELECT COUNT(*) FROM ( SELECT ip_address FROM forums_posts WHERE post_date > UNIX_TIMESTAMP( NOW() - INTERVAL 1 MONTH ) GROUP BY ip_address ) z. Если не кешировать и для каждого сообщения с тем же ип делать отдельный запрос то да, так вы и за неделю упретесь в лимит и на куда меньшем форуме.

У сторонних geo-сервисов тоже есть свои преимущества - не нужно устанавливать дополнительное ПО, актуальность и размер базы данных.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Отличный плагин, а можешь добавить опцию место расположения города:

1. Рядом с IP как сейчас

2. Под аватаром

Поделиться сообщением


Ссылка на сообщение
2. Под аватаром

Где именно под аватаром?

Поделиться сообщением


Ссылка на сообщение

после количества публикаций

Поделиться сообщением


Ссылка на сообщение

В шаблоне postContainer доступна переменная $comment с массивом geoLocation - {{if $comment->geoLocation['city']}}$comment->geoLocation['city']{{endif}}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Вставляю в этот шаблон {{if $comment->geoLocation['city']}}$comment->geoLocation['city']{{endif}}

либо ничего либо ошибка с просьбой восстановить шаблон по умолчанию

:(

Поделиться сообщением


Ссылка на сообщение

Так ничего или ошибка с просьбой восстановить шаблон?

Вот дефолтное условие которое используется в плагине:

 

{{if !empty( $comment->geoLocation['city'] )}}<span class="geolocation" data-ipsTooltip title="{$comment->geoLocation['countryName']}">{$comment->geoLocation['city']}</span>{{endif}}

Поделиться сообщением


Ссылка на сообщение

Обновлен до 1.0.5

Обнаружился один неприятный баг. Некоторые пользователи стали жаловаться на ошибку при поиске IP в панели модератора.

IPS сервис геолокации хранит в массиве country не название страны а ее код, тогда как плагин наоборот записывал полное имя. При совместном использование, объект \IPS\GeoLocation выбрасывал исключение на попутку загрузить языковую строку с именем страны. Из-за того, что IPS не добавили перехват этого исключения, оно приводило к фатальной ошибке.

Спасибо viru за багрепорт.

 

Fatal error:  Method IPS\\GeoLocation::__toString() must not throw an exception, caught UnderflowException: lang_not_exists__country-\xd0\xa0\xd0\xbe\xd1\x81\xd1\x81\xd0\xb8\xd1\x8f in /system/Theme/Theme.php(744) : eval()'d code on line 0, referer: http://forum.ru/modcp/ip-tools/
Stack trace:, referer: http://forum.ru/modcp/ip-tools/
1. {main}() /index.php:0, referer: http://forum.ru/modcp/ip-tools/
2. IPS\\_Dispatcher->run() /index.php:13, referer: http://forum.ru/modcp/ip-tools/
3. IPS\\Dispatcher\\_Controller->execute() /system/Dispatcher/Dispatcher.php:129, referer: http://forum.ru/modcp/ip-tools/
4. IPS\\core\\modules\\front\\modcp\\_modcp->manage() /system/Dispatcher/Controller.php:96, referer: http://forum.ru/modcp/ip-tools/
5. call_user_func:{/applications/core/modules/front/modcp/modcp.php:67}() /applications/core/modules/front/modcp/modcp.php:67, referer: http://forum.ru/modcp/ip-tools/
6. IPS\\core\\extensions\\core\\ModCp\\_IPTools->manage() /applications/core/modules/front/modcp/modcp.php:67, referer: http://forum.ru/modcp/ip-tools/
7. IPS\\Theme\\_SandboxedTemplate->ipLookup() /applications/core/extensions/core/ModCp/IPTools.php:123, referer: http://forum.ru/modcp/ip-tools/
8. IPS\\Theme\\_SandboxedTemplate->__call() /applications/core/extensions/core/ModCp/IPTools.php:123, referer: http://forum.ru/modcp/ip-tools/
9. call_user_func_array:{/system/Theme/SandboxedTemplate.php:57}() /system/Theme/SandboxedTemplate.php:57, referer: http://forum.ru/modcp/ip-tools/
10. IPS\\Theme\\class_core_global_members->ipLookup() /system/Theme/SandboxedTemplate.php:57, referer: http://forum.ru/modcp/ip-tools/

Поделиться сообщением


Ссылка на сообщение

У меня небольшое предложение по плагину. Можно добавить, чтобы клик по определившемуся месту перекидывал а Google Maps (или просто в гугл-поиск). У нас например на форуме очень широкая география пользователей. Всегда интересно, где такой город Whitby, Canada. А тут нажал на ссылку - и сразу увидел. Если делать переход просто в поиск, то гугл еще и краткую справку по месту предлагает, фото, историю из Википедии.

 

Еще раз спасибо за ваш плагин.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Можно добавить, чтобы клик по определившемуся месту перекидывал а Google Maps (или просто в гугл-поиск).

В следующем обновление как раз планировал добавить всплывающие окно с местоположением на карте. Просто нет времени пока разбираться с попап-окнами.

 

 

ebd9645e4091t.jpg

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...