Перейти к публикации

Помогите доработать модуль погоды


Рекомендованные сообщения

Всем привет.

 

Нашел на просторах интернета модуль погоды, погода берётся с Яндекса. Главное в модуле то, что он кэширует погоду.

 

Код модуля

<?php
$city_id = 26714; //id города, вписать свой, можно узнать тут https://pogoda.yandex.ru/static/cities.xml - параметр city id=
$cache_lifetime = 7200; //время кэша файла в секундах, 3600=1 час
$cache_file = 'weather_'.$city_id.'.xml'; // временный файл-кэш

function loadxmlyansex($city_id)
 {
$url = 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml';
$userAgent = 'Googlebot/2.1 (+http://www.google.com/bot.html)';
$xml = 'weather_'.$city_id.'.xml';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
$output = curl_exec($ch);
$fh = fopen($xml, 'w');
fwrite($fh, $output);
fclose($fh);
 }

if ( file_exists($cache_file) ) {
 $cache_modified = time() - @filemtime($cache_file);
 if ( $cache_modified > $cache_lifetime )

{
//обновляем файл погоды, если время файла кэша устарело
loadxmlyansex($city_id);
}
}
else {
//если нет файла погоды вообще, закачиваем его
loadxmlyansex($city_id);
}
?>
<?php
if(file_exists($cache_file)):
$data = simplexml_load_file($cache_file); ?>
<style type="text/css">
html, body {margin:0px;padding:0px;border:none;font-family:Tahoma, "Trebuchet MS", Helvetica, sans-serif;line-height}
.vsepog {width:1000px; height:63px;background:#FFFFFF url(/images/icons.png) 0 -455px}
.pogpere{float:left;width:206px;text-align:center;color:#FFFFFF;font-size:11px}
.pogpere p{height:22px;font-weight:bold;padding-bottom:8px;margin:5px 0 7px;color:#000000;font-size:13px;}
.pogpere p img{margin:0 5px -12px 9px}
.poggl{width:150px;float:left;margin:0 0 0 25px;font-size:11px;color:#FFFFFF}
.poggl p{font-weight:bold;font-size:15px;color:#000000;margin:10px 0 0;height:32px}
.poggl span{font-size:12px}
.poggl a{color:#000;text-decoration:none;-webkit-transition-duration:0.5s;-o-transition-duration:0.5s;-moz-transition-duration:0.5s;transition-duration:0.5s}
.poggl a:hover{color:#008ED6}
</style>

<div class="vsepog">
<?php $counter = 0 ; foreach($data->day as $day): if($counter == 1) break;?>
<div class="poggl"><p><a target="_top" href="/pogoda/3995-gusev.html">Погода в Гусеве »</a></p>
<?php echo getDayDate($day['date']);?></div>
<?php for($i = 0;$i < 4;$i++):
$img = $day->day_part[$i]->{'image-v3'};?>
<div class="pogpere"><p>утро<img src="img/<?php echo $img;?>.png" width="30" height="30" /><?php echo getTempSign($day->day_part[$i]->{'temperature-data'}->avg);?> °C</p>
<?php echo getWindDirection($day->day_part[$i]->wind_direction).' '.$day->day_part[$i]->wind_speed;?> м/с, <?php echo $day->day_part[$i]->pressure;?> мм рт. ст.</div>
<?php endfor;?>
<?php $counter++ ; endforeach;?>
</div>

<?php
endif;
// получаем локализованную дату
function getDayDate($date)
{
$date = strtotime($date);
$months = array('','01','02','03','04','05','06','07','08','09','10','11','12');
$days = array('<span>в воскресенье</span>','<span>в понедельник</span>', '<span>во вторник</span>', '<span>в среду</span>', '<span>в четверг</span>', '<span>в пятницу</span>', '<span>в субботу</span>');
return (int)date('d',$date).'.'.$months[date('n', $date)].' '.$days[date('w', $date)];
}
// получаем знак температуры
function getTempSign($temp)
{
$temp = (int)$temp;
return $temp > 0 ? '+'.$temp : $temp;
}
// получаем направления ветра
function getWindDirection($wind)
{
$wind = (string)$wind;
$wind_direction = array('s'=>'южн','n'=>'сев','w'=>'зап','e'=>'вос','sw'=>'ю-з','se'=>'ю-в','nw'=>'с-з','ne'=>'с-в');
return $wind_direction[$wind];
}
?>

 

А это его результат

http://гусев.рф/engine/modules/pogoda/cesh/pog_cesh_utf.php

 

 

Как можете наблюдать в каждом блоке показывает утро.

 

Подскажите как сделать чтоб в блоках показывало поочерёдно: утро, день, вечер и ночь

 

Заранее признателен всем за ответ.

Изменено пользователем radrigo
Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, radrigo сказал:

Подскажите как сделать чтоб в блоках показывало поочерёдно: утро, день, вечер и ночь

b584714a5241.png

 

что не так-то?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...