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

Модуль погода для 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 файл в корне сайта:

После:

# вывод избранных статей
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

Вставить:

# SDV Weather
RewriteRule ^weather(/?)+$ index.php?do=weather [L]
  1. Отредактировать файл engine.php

После строк:

	case "pm" :
		include ENGINE_DIR . '/modules/pm.php';
		break;

Вставить:

        case "weather" :
                include ENGINE_DIR . '/modules/sdv_weather.php';
                break;

После строк:

	elseif ($do == 'tags') {

		if ($config['allow_alt_url'] == "yes") $s_navigation .= " &raquo; <a href=\"" . $config['http_home_url'] . "tags/\">" . $lang['tag_cloud'] . "</a> &raquo; " . $tag;
		else $s_navigation .= " &raquo; <a href=\"?do=tags\">" . $lang['tag_cloud'] . "</a> &raquo; " . $tag;

	}

Вставить:

        elseif ($do == 'weather')       {
                        $s_navigation .= " &raquo; " . $lng['title'];
        }

Обновления

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 11/12/2012

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

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 14/12/2012

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

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 04/02/2013

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

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 20/10/2013

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

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 22/10/2013

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

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 23/10/2013

  • Дистрибутив обновлён
  • Изменен размер поля одной из таблиц, для обновления используйте запрос:
ALTER TABLE `dle_sdv_weather` CHANGE `comment` `comment` VARCHAR( 400 ) CHARACTER SET cp1251 COLLATE cp1251_general_ci NOT NULL DEFAULT '';

Обновление модуля погода для DataLife Engine 9.7-10.1 от RP5.RU от 05/11/2013

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

Скачать файл можно по ссылке, пароль для скачивания IHTMmxFolO