Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

(SIV41) Author Post GeoLocation

Опубликовано:

index.php?app=downloads&module=display&section=screenshot&id=320

Имя файла: (SIV41) Author Post GeoLocation

Владелец файла: siv1987

Файл размещен: 20 Окт 2016

Файл обновлен: 15 Ноя 2016

Категория файла: Плагины и Приложения

 

Местоположение автора сообщения в теме.

 

Нажмите сюда, чтобы скачать этот файл

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

Опубликовано:
  • Автор

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

Опубликовано:
  • Автор

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

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

Опубликовано:

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

 

У внешних бесплатных сервисов есть два серьезных минуса: 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-сервисов тоже есть свои преимущества - не нужно устанавливать дополнительное ПО, актуальность и размер базы данных.

Опубликовано:

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

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

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

Опубликовано:
  • Автор
2. Под аватаром

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Опубликовано:

Вставляю в этот шаблон {{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}}

  • 2 недели спустя...
Опубликовано:
  • Автор

Обновлен до 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. А тут нажал на ссылку - и сразу увидел. Если делать переход просто в поиск, то гугл еще и краткую справку по месту предлагает, фото, историю из Википедии.

 

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

Опубликовано:
  • Автор

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

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

 

 

ebd9645e4091t.jpg

  • 4 месяца спустя...
Опубликовано:

Есть ли возможность получить этот плагин полностю на англиском?

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.