Страница 9 из 15

Re: Как погоду настроить

Добавлено: Ср сен 10, 2014 1:59 pm
Palko
это да, хорошо когда есть практически готовый XML,
а когда HTML?

Re: Как погоду настроить

Добавлено: Ср сен 10, 2014 2:47 pm
ErmolenkoM

Re: Как погоду настроить

Добавлено: Ср сен 10, 2014 2:58 pm
adzam
Подскажите пож. как заставить в меню иконку обновляться через 10 минут?
Вариант %Sinoptik.Img|600% не работает

Re: Как погоду настроить

Добавлено: Вт окт 28, 2014 5:28 am
alekszander
Коллеги по нелегкому делу, выручайте. пытаюсь создать сценарий (погода с Яндекса), с ID своего города (Владивосток), не получается страница зависает и долго думает и ни как, только если закрыть и открыть браузер заново. Если вставить другой ID к примеру Москвы, то сценарий успешно сохряняется. В чем может быть проблема.

Re: Как погоду настроить

Добавлено: Чт ноя 06, 2014 4:46 am
sashmen
PAV писал(а):Прикручиваем погоду Yandex: http://computer-service.pro/smf/index.php?topic=30.0
Код для Москвы:
Сценарий

Код: Выделить всё

$city_id=27612;
$data_file="http://export.yandex.ru/weather-ng/forecasts/$city_id.xml?".rand(); // адрес xml файла

$xml = simplexml_load_file($data_file); // раскладываем xml на массив

$temp=$xml->fact->temperature;
// Если значение температуры положительно, для наглядности добавляем "+"
if ($temp>0) {$temp='+'.$temp;}
sg("Moscow.Temp",$temp);
sg("Moscow.City",Москва);
sg("Moscow.Type",$xml->fact->weather_type);
sg("Moscow.Pressure",$xml->fact->pressure);
sg("Moscow.Humidity",$xml->fact->humidity);
sg("Moscow.WindSpeed",$xml->fact->wind_speed);
sg("Moscow.Image",$xml->fact->image);
sg("Moscow.UpTime",$xml->fact->uptime);


$dir = $xml->fact->wind_direction;
switch ($dir){
   case 's':
     $dir="южное";
     break;
   case 'n':
     $dir="северное";
     break;
   case 'w':
     $dir="западное";
     break;
   case 'e':
     $dir="восточное";
     break;
   case 'sw':
     $dir="юго-западное";
     break;
   case 'nw':
     $dir="северо-западное";
     break;
   case 'calm':
     $dir="штиль";
     break;
}
sg("Moscow.WindDir",$dir);
sg("Moscow.SunRise",$xml->day[0]->sunrise);
sg("Moscow.SunSet",$xml->day[0]->sunset);
 
Код Меню управления

Код: Выделить всё

<div align="center"><font size="5" color="brown" face="Arial"><b>Погода Yandex</b></font></div><br><br>
<img src="http://img.yandex.net/i/wiz%Moscow.Image%.png" alt="%Moscow.Type%" title="%Moscow.Type%"> %Moscow.Type% <font size="5" color="brown" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление  <font size="5" color="brown" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="brown" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="brown" face="Arial">%Moscow.WindSpeed%</font>  м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="brown" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="brown" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>
 
Подскажите куда этот код пихать?
Если можно поподробней. Зарание спасибо.

Re: Как погоду настроить

Добавлено: Чт ноя 06, 2014 7:56 am
ErmolenkoM
sashmen писал(а): Подскажите куда этот код пихать?
1. Заходим в панель администрирования. Сценарии. Сознаем новый сценарий с первым куском кода. У меня назван погода на яндексе(можно посмотреть в конекте).
2. Нужно настроить периодический запуск нашего сценария. Например в Объекты/Таймер/Каждый час добавить код вызова

Код: Выделить всё

runscript("погода на яндексе"); 
3. Нужно отобразить полученные данные в меню.
Заходим в меню управления создаем пункт с типом HTML БЛОК, туда второй кусок кода.

Все. Можно смотреть.

Re: Как погоду настроить

Добавлено: Чт ноя 06, 2014 3:46 pm
sashmen
msh555 писал(а):
sashmen писал(а): Подскажите куда этот код пихать?
1. Заходим в панель администрирования. Сценарии. Сознаем новый сценарий с первым куском кода. У меня назван погода на яндексе(можно посмотреть в конекте).
2. Нужно настроить периодический запуск нашего сценария. Например в Объекты/Таймер/Каждый час добавить код вызова

Код: Выделить всё

runscript("погода на яндексе");
3. Нужно отобразить полученные данные в меню.
Заходим в меню управления создаем пункт с типом HTML БЛОК, туда второй кусок кода.

Все. Можно смотреть.

Все сделал как ты написал показывает нолики=(
Выложил скрины посмотри пожалуйста, может что не так сделал?

Re: Как погоду настроить

Добавлено: Чт ноя 06, 2014 3:50 pm
ErmolenkoM
зайди в ОБЪЕКТЫ создай КЛАСС Погода в нем создай объект Moscow
через минуту проверь что в свойствах объекта Moscow появились значения

Re: Как погоду настроить

Добавлено: Чт ноя 06, 2014 4:03 pm
sashmen
msh555 писал(а):зайди в ОБЪЕКТЫ создай КЛАСС Погода в нем создай объект Moscow
через минуту проверь что в свойствах объекта Moscow появились значения
Огромное спасибо получилось.

Re: Как погоду настроить

Добавлено: Чт ноя 06, 2014 4:06 pm
sashmen
PAV писал(а):Дополнение для проговаривания погоды:

Код: Выделить всё

$status="";
    $status.="Сегодня ".gg("Moscow.Type").".";
    say($status,1);
    
    $status="";
    $w=round(gg("Moscow.Temp"));
    $tempw=$w;
    if($tempw >= 11 and $tempw <= 14){
    $tempcels=" градусов ";
    }
    else{

    while ($tempw > 9){
    $tempw=$tempw-10;
    }
    
    if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
    $tempcels= градусов ; }
    if($tempw == 1){
    $tempcels= градус ; }
    if($tempw >= 2 and $tempw <= 4){
    $tempcels= градуса ; }
    }
        //$tNew = abs((float)getGlobal('Moscow.Temp'));
    $status.=' Температура '.getGlobal('Moscow.Temp')." ".$tempcels." цельсия";
    say($status,1);
    $tempw="";
    $tempcels="";
    
    $status="";  
    $h=round(gg("Moscow.Humidity"));
    $tempw=$h;
    if($tempw >= 11 and $tempw <= 14){
    $tempcels=" процентов ";
    }
    else{

    while ($tempw > 9){
    $tempw=$tempw-10;
    }
    
    if($tempw == 0 or $tempw >= 5 and $tempw <= 9){
    $tempcels= процентов ; }
    if($tempw == 1){
    $tempcels= процент ; }
    if($tempw >= 2 and $tempw <= 4){
    $tempcels= процента ; }
    }
    $status.="Относительная влажность ".gg("Moscow.Humidity")." ".$tempcels. ".";
    say($status,1);
    $tempw="";
    $tempcels="";
    
    $status="";
    $pressure=(float)gg("Moscow.Pressure");
    if ($pressure<728) {
     $status.=' Атмосферное давление пониженное';
    } elseif ($pressure>768) {
     $status.=' Атмосферное давление повышенное.';
    } else {
     $status.=' Атмосферное давление нормальное.';
    }
    say($status,1);
    
    $status="";
    // ветер
    $WindSpeed=(float)gg("Moscow.WindSpeed");
    if ($WindSpeed<1) {
     $status.=' Ветра нет.';
    } elseif ($WindSpeed<3) {
     $status.=' Ветер слабый.';
    } elseif ($WindSpeed<6) {
     $status.=' Ветер сильный.';
    } elseif ($WindSpeed<9) {
     $status.=' Ветер очень сильный.';
    } else {
     $status.=' Ветер очень! Очень сильный.';
    }
    $status.=' Направление '.getGlobal('Moscow.WindDir').'.';
    say($status,1);
Можете еще пояснить для чего данный скрипт? Где он погоду проговаривает(через вебморду или на серваке)? Куда втыкать?