GauraStyle
SeoPlus.com.ua
- Регистрация
- 13 Фев 2007
- Сообщения
- 1.512
- Реакции
- 939
- Автор темы
- #1
Граббер погоды с gismeteo.ru
Текущие возможности данного модуля погоды:
--- прост в установке и настройке...
--- из настроек:
--- выбор города
--- выбор параметров вывода информации (температура, осадки, ветер и т.д.)
--- выбор времени обновления информации
--- данные кэшируются, дабы не нагружать внешний канал и для быстрого исполнения скрипта
--- не использует БД.
итак приступим:
создаем файл weather.php и грузим в папку /engine/modules/
далее открываем файл index.php,
находим
и добавляем после
здесь же находим
и добавляем после
теперь открываем файл шаблона main.tpl и добавляем в нужное для Вас место следующую строчку:
Прикольно так, просто и без всяких запросов к базе, ну и прибимбасов.
Текущие возможности данного модуля погоды:
--- прост в установке и настройке...
--- из настроек:
--- выбор города
--- выбор параметров вывода информации (температура, осадки, ветер и т.д.)
--- выбор времени обновления информации
--- данные кэшируются, дабы не нагружать внешний канал и для быстрого исполнения скрипта
--- не использует БД.
итак приступим:
создаем файл weather.php и грузим в папку /engine/modules/
PHP:
<?
/*
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: weather.php
-----------------------------------------------------
Назначение: Модуль погоды by М.М.Егоров (с) 2008
=====================================================
*/
if(!defined('DATALIFEENGINE'))
{
die("Hacking attempt!");
}
$weather = weather(12345); //здесь цыфры показывают на город, их можно выяснить на gismeteo.ru
function weather($city) {
$loc_file = ENGINE_DIR.'/cache/system/weather.php';
$life_time = time() - @filemtime($loc_file);
if ((file_exists($loc_file)) && ($life_time<10400)){ // 10400 - это время обновления иформации в секундах (в данном случае - 3 часа)
$fp = fopen($loc_file, 'r');
if (filesize($loc_file) >0){
$text = fread($fp, filesize($loc_file));
}else{
$text = '<span class="localfilesizeisnull">Waiting for data</span>';
}
fclose($fp);
if (strlen($text) > 20) return $text;
}
$sContent = file_get_contents('http://informer.gismeteo.ru/text/'.$city.'-1.JS');
if (strlen($sContent) < 20) {
// не сохраняем файл
@touch($loc_file);
return $sContent;
}
$tags = explode('<', $sContent);
// далее формируются данные о погоде. те, которые Вам не нужны, необходимо закомментировать...
$sContent =strip_tags('<' . $tags[11]); //город
$sContent.=" на ".strip_tags('<' . $tags[18]); //дата, день
$sContent.=" : температура воздуха ".strip_tags('<' . $tags[32]); //темпереатура воздуха
$sContent.=", ".strip_tags('<' . $tags[24]); //ясно-пасмурно
$sContent.=" ".strip_tags('<' . $tags[25]); //осадки
$sContent.=", ветер ".strip_tags('<' . $tags[40]); //ветер
$fp = @fopen($loc_file, 'w');
if ($fp){
fwrite($fp, $sContent);
fclose($fp);
}
return $sContent;
}
?>
находим
PHP:
require_once ROOT_DIR.'/engine/init.php';
PHP:
require_once ROOT_DIR.'/engine/modules/weather.php';
PHP:
$tpl->set('{archives}', $tpl->result['archive']);
PHP:
$tpl->set('{weather}',$weather);
PHP:
Погода в {weather}
Прикольно так, просто и без всяких запросов к базе, ну и прибимбасов.