Собственно, получился виджет, при создании кода которого я старался руководствоваться соответствием парадигме MVC Joomla (возможно, не все в курсе, но по доке Joomla - это MVC-фреймворк) и общепринятому в среде разработки code style. В итоге (хотя про итог рано, модуль находится в перманентном развитии) получилось вполне себе симпатичное поделие в духе (надеюсь) идеологии Joomla.
Актуальная на данный момент версия модуля поддерживает интеграцию с пятью погодными станциями: WorldWeatherOnline, OpenWeatherMap, Visual Crossing, Open-Meteo, MeteoSource и двумя сервисами определения геотаргетинга: IPGeolocation и geoPlugin. Ранее был еще и американский Weather Underground, но публичный доступ к его API, к сожалению, некоторое время назад был закрыт.
Attention. Support for the Dark Sky API will be ending on March 31st, 2023. Dark Sky is no longer accepting new members..
С самого начала про условия доступа к API weather stations:
- WWO предоставляет бесплатный триал на 30 дней.
- У OpenWeatherMap один из самых щедрых, вероятно, API: до 60 запросов в минуту бесплатно. Думаю, для начала неплохо? Про качество погодных данных OpenWeatherMap написано немало, если будет интерес - без проблем сможете составить собственное мнение. Имхо, скажем так, на крепкую троечку.
- Visual Crossing: 1000 records/day Free. Изображения погодных условий уже находятся в директории модуля.
- MeteoSource: 400 free calls per day. Модуль также содержит симпатичный набор иконок этой погодной станции.
- Open-Meteo не требует даже регистрации, потому и включен по умолчанию. Пробуйте.
Начиная с v.1.17, jWeatherByIP поддерживает MARINE, SAILING AND SURFING WEATHER API WorldWeatherOnline, который не рекомендую использовать в связке с определением местоположения посетителя сайта по ip: как видите, в топе статьи модуль показывает статичный таргетинг, а в сайдбаре - погоду по ip. Будьте внимательны: когда в настройках выбран этот API, модуль возвращает среднесуточные (day average) показатели погодных кондиций. Если необходимо отображение более актуальных характеристик погоды, имеющей свойство быстро меняться - используйте LOCAL WEATHER API WorldWeatherOnline либо иную погодную станцию.
В качестве альтернативы SypexGeo в модуль добавлена поддержка IP Geolocation API и geoPlugin API (до двух бесплатных запросов в секунду!), два популярных сервиса геолокации. Чуть ранее использовался еще и американский MaxMind, но вследствие некоторых технических проблем пришлось от него отказаться; надеюсь, это временно. В любом случае, геолокация в современном интернете не проблема... в панели администрирования jWeather вам всего лишь понадобится ввести полученный на страничке того или иного сервиса бесплатный ключ доступа, после чего сохранить настройки, опубликовав модуль на любых страничках сайта.
Актуальная версия модуля позволяет не использовать геотаргетинг, привязав отображение погодных кондиций к географическим координатам. Во всех других случаях - пожалуйста, не забывайте, кэширование страниц способно свести на нет определение местонахождения посетителя вашего сайта. Например, кэш для этой страницы сайта отключен; либо же вы можете поэкспериментировать с т.н. "прогрессивным кэшем" Joomla.
Админка модуля позволяет сконфигурировать довольно многое: от стилей шрифтов до выбора ряда отображаемых погодных характеристик, плюс время восхода/заката луны/солнца (это только в контексте WorldWeatherOnline и Visual Crossing. Сконфигурировав часовой пояс сайта - System Dashboard -> Global Configuration -> Server -> Location - вы добьетесь корректного отображения времени восхода и заката). Последние реализованные фичи модуля - возможность, при желании, отображать погоду на картах Google и Yandex: сама карта при этом, естественно, центрируется географическими координатами пользователя сайта. Т.е. в итоге получилось что-то вроде реинкарнации погодного слоя Google Map, deprecated несколько лет назад. Язык карты соответствует выбранному в панели управления Joomla языку сайта: русский или английский, то же самое и относительно отображаемой модулем погодной информации. В довершение вкусностей возможно включение js, выводящего произвольное приветствие в зависимости от локального времени посетителя.
Модуль можно отревьюить, при желании, в Joomla Extension Directory, глянуть код - на гитхабе. Пара демок размещены на этой страничке, также имеет место быть ряд ссылок в левом сайдбаре ("модуль jWeatherByIP. Примеры виджетов в блоге"). И, разумеется, это open source, модуль распространяется на условиях GNU/GPL license, что означает, если уж совсем по-простому - свободен и бесплатен.