Модуль погода для DataLife Engine 9.7-10.1 от RP5.RU

Предистория: Так как тематика сайта — городской портал, соответственно необходимы стандартные городские модули. Одним из них стала Погода. Просмотрел весь РуНет — но меня не устроило ни одно решение из представленных, т.к. то оно представлено виджетом на сайте — то использовались многие источники, которые не совсем радуют своей точностью прогноза. Хотелось более-менее частого обновления точного прогноза и оперативных данных. Пришла идея написать модуль погоды на основе БЕСПЛАТНО предоставляемых данных сайтом rp5.ru. Так как модули я раньше не писал для DLE — первая версия вышла сыровата. Итак:

Исходные данные:

Да, в данном модуле используются оба источника, так как RSS обновляется в среднем каждый 3,5 часа. А предоставленных XML примерно раз в 12 часов.

Основная информация:

  • Название: SDV_Weather 1
  • Разработчик: Я (Daniil V. Savenkoff)
  • Версии PHP: PHP 5.3.x и PHP 5.4.x
  • Версии CMS DLE: 9.7, 9.8, 10.0, 10.1
  • Кодировка: только windows-1251

Основные функции модуля:

  • ПарситXML поток погоды rp5.ru
  • Парсит RSS поток погоды rp5.ru
  • Время прогноза определяется с учётом смещения в настройках DataLifeEngine, а так же времени сервера.
  • Обновляет информацию, только при отсутствии её в БД.
  • Выводит погоду на ближайшие 48 часов в 4 строки.
  • Выводит последнюю сводку с метеостанции.
  • При сильном морозе\жаре выделяет температуру нужным цветом и ставит иконку соответствующего изображение.
  • При сильном ветре выставляет иконку сильного ветра.
  • При наведении на иконку облачности выводит полную информацию о облачности и осадках.

Установка модуля:

1. Скопировать все файлы из папки в корень сайта

2. Отредактировать .htaccess файл в корне сайта:

После:

Вставить:

3. Отредактировать файл engine.php

После строк:

вставить:

После строк:

вставить:

[spoiler show=»Показать апдейты» hide=»Скрыть апдейты»]

UPD 11/12/2012

  • Изменен пак иконок для отображения прогноза погоды
  • Добавлено отображение критических погодных данных (температура меньше -35 и больше +35)
  • Исправлена совместимость работы скрипта на линейках PHP 5.4.x и PHP 5.3.x
  • Исправлено корректное определение времени прогноза с учетом сдвига в настройках DLE, а так же сдвига от Гринвича в настройках сервера

UPD 14/12/2012:

  • При задержке выдачи данных по каналу RSS вставлялась лишняя запись в БД, исправлено.

UPD 04/02/2013:

  • Версия протестирована на DLE 9.8 — совместимость полная.

UPD 20/10/2013:

  • Обновлён файл для скачивания.
  • rp5.ru изменил формат выдачи и перестал передавать данные о влажности в числовом виде.
  • Протестирована совместимость с DLE 10, все работает.

UPD 22/10/2013:

  • Обновлён дистрибутив, исправлена проблема, при которой сообщение от RSS с прогнозом 0 градусов — вылетало в ошибку при записи в БД.

UPD 23/10/2013:

  • Дистрибутив обновлён
  • Изменен размер поля одной из таблиц, для обновления используйте запрос:

UPD 05/11/2013:

  • Протестирована совместимость с DLE 10.1 — работает.

[/spoiler]

Скачать текущую версию:

bluebox

Demo отсутствует. Версия устарела.

VN:F [1.9.22_1171]
Рейтинг: 4.8/5 (6 голос (-ов) всего)
Модуль погода для DataLife Engine 9.7-10.1 от RP5.RU, 4.8 out of 5 based on 6 ratings

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

    Error thrown

    Call to undefined function ereg()