Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

jWeather by ip. Погода по ip для Joomla!

Возможно, любителей и профессионалов Joomla заинтересует краткая аннотация очередного релиза jWeather by ip: Joomla-модуль, предоставляющий веб-администратору сайта гибкие возможности управления показом текущего состояния погоды, актуальной для геотаргетинга посетителя сайта.

 

 

Собственно, получился виджет, при создании кода которого я старался руководствоваться соответствием парадигме MVC Joomla (возможно, не все в курсе, но по доке Joomla - это MVC-фреймворк) и общепринятому в среде разработки code style. В итоге (хотя про итог рано, модуль находится в перманентном развитии) получилось вполне себе симпатичное поделие, вполне в духе (надеюсь) идеологии Joomla.

 

На данный момент модуль поддерживает интеграцию с тремя погодными станциями: WorldWeatherOnline, OpenWeatherMap, Dark Sky. Ранее был еще и американский Weather Underground, но публичный доступ к его API, к сожалению, некоторое время назад был закрыт.

 

С самого начала про условия доступа к API weather stations:

  • WWO предоставляет бесплатный триал на 60 дней.
  • У OpenWeatherMap один из самых щедрых, вероятно, API: до 60 запросов в минуту бесплатно. Думаю, для начала неплохо? Про качество погодных данных OpenWeatherMap написано немало, если будет интерес - без проблем сможете составить собственное мнение. Имхо, скажем так, на крепкую троечку.
  • Только что дописал клиента API Dark Sky, тестирую его погодный forecast у себя в блоге. Впечатления хорошие. Dark Sky считается весьма неплохой погодной станцией: 1000 бесплатных запросов в день, конечно, не торт, но для блога сойдет. Интересная деталь: в отличие от двух других погодных станций, Dark Sky не предоставляет собственных изображений, иллюстрирующих состояние погоды, поэтому в модуль добавлены иконки, которые совсем несложно заменить на свои собственные, соответствующие индивидуальному дизайну сайта. Еще один плюс в пользу Dark Sky: по умолчанию модуль отображает единицы измерения погодных условий (Celsius, Fahrenheit, ряд других) исходя из географического месторасположения посетителя сайта.

 

Теперь о геолокации. По старинке и невзирая ни на какие псевдополитические реалии, jWeather продолжает поддерживать работу с украинским SypexGeo: админ сайта способен выбрать между REST API SypexGeo и загрузкой локального файла db, содержащего актуальную информацию о диапазонах IP. Все работает даже без регистрации, но с регистрацией - бесплатностей, понятное дело, больше. К сожалению, большого значения все сказанное на данный момент не имеет: все больше и больше нареканий на работу SypexGeo, форум поддержки давно перестал отвечать на реплики пользователей. Если ничто не изменится, SypexGeo проживет недолго, и это будет жаль.

В качестве альтернативы SypexGeo в модуль добавлена поддержка IP Geolocation API и geoPlugin API (до двух бесплатных запросов в секунду!), два популярных сервиса геолокации. Чуть ранее использовался еще и американский MaxMind, но вследствие некоторых технических проблем пришлось от него отказаться; надеюсь, это временно. В любом случае, геолокация в современном интернете не проблема... в панели администрирования jWeather вам всего лишь понадобится ввести полученный на страничке того или иного сервиса бесплатный ключ доступа, после чего сохранить настройки, опубликовав модуль на любых страничках сайта.

 

Актуальная версия модуля позволяет не использовать геотаргетинг, привязав отображение погодных кондиций к географическим координатам. Во всех других случаях - пожалуйста, не забывайте, кэширование страниц способно свести на нет определение местонахождения посетителя вашего сайта. Например, кэш для этой страницы сайта отключен; либо же вы можете поэкспериментировать с т.н. "прогрессивным кэшем" Joomla.

 

Админка модуля позволяет сконфигурировать довольно многое: от стилей шрифтов до выбора ряда отображаемых погодных характеристик, плюс время восхода/заката луны/солнца (это пока только в контексте WorldWeatherOnline). Последние реализованные фичи модуля - возможность, при желании, отображать погоду на картах Google и Yandex: сама карта при этом, естественно, центрируется географическими координатами пользователя сайта. Т.е. в итоге получилось что-то вроде реинкарнацию погодного слоя Google Map, deprecated несколько лет назад. Язык карты соответствует выбранному в панели управления Joomla языку сайта: русский или английский, то же самое и об отображаемой модулем погодной информации. В довершение вкусностей возможно включение js, выводящего произвольное приветствие в зависимости от локального времени посетителя.

 

Увидеть на гитхабе.

 

Модуль можно отревьюить, при желании, в Joomla Extension Directory, глянуть код - на гитхабе. Пара демок размещены на этой страничке, также здесь и здесь. И, разумеется, это open source, модуль распространяется на условиях GNU/GPL license, что означает, если уж совсем по-простому - свободен и бесплатен.

4 комментарии

  • Aleksej

    написал Aleksej

    Вторник, 23 апреля 2019 14:03

    Модуль полностью переписан заново, Maxmind на данный момент удален, добавлена поддержка IPGeolocation, значительные изменения претерпел пользовательский интерфейс модуля. Добавлена возможность отображения состояния погоды на Google Map.

  • Aleksej

    написал Aleksej

    Понедельник, 30 января 2017 23:18

    Добавлена поддержка MaxMind GeoLite2-City.mmdb.

  • Aleksej

    написал Aleksej

    Вторник, 06 декабря 2016 19:00

    На sypexgeo.net отзывчивый саппорт и вполне дружелюбный форум, не стесняйтесь обращаться туда с такого рода проблемами. Не существует в природе свободного от ошибок ПО.

  • ugor

    написал ugor

    Вторник, 06 декабря 2016 18:38

    Одна беда, SypexGeo промахивается - буквально вчера был очень удивлен, определился город на другом континенте... не фиговый промах.

Оставить комментарий

Добавьте ваш комментарий

Температура (°C)12
Скорость ветра 20
Давление 1012
Влажность 56
Облачность 75
Видимость на дорогах 16
Общее состояние погодыPartly cloudy
Восход солнца 07:00 AM
Закат солнца 04:51 PM
Восход луны 02:07 AM
Закат луны 02:49 PM