Модуль погода для 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 строки.
- Выводит последнюю сводку с метеостанции.
- При сильном морозе\жаре выделяет температуру нужным цветом и ставит иконку соответствующего изображение.
- При сильном ветре выставляет иконку сильного ветра.
- При наведении на иконку облачности выводит полную информацию о облачности и осадках.
Установка модуля:
- Скопировать все файлы из папки в корень сайта
- Отредактировать .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]
- Отредактировать файл 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 .= " » <a href=\"" . $config['http_home_url'] . "tags/\">" . $lang['tag_cloud'] . "</a> » " . $tag;
else $s_navigation .= " » <a href=\"?do=tags\">" . $lang['tag_cloud'] . "</a> » " . $tag;
}
Вставить:
elseif ($do == 'weather') {
$s_navigation .= " » " . $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