Страница 6 из 19

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 2:44 pm
utia38
1) после того как сработан скрипт ВЕЗЕР ФРОМ ЯНДЕКС. в объекте с городом свойства заполнятся значениями.
2) так вот. эти ВСЕ значения или ИХ ЧАСТЬ можно использовать - например в МЕНЮ (а так в любой части с использованием типа данных HTML блок
3) создаем пункт в МЕНЮ УПРАВЛЕНИЯ - HTML и в код вставляем напрмер вот это (меняя на свои переменные %Moscow.Temp% на ваши значения)

<div align="center"><font size="5" color="orange" face="Arial"><b>Погода Москва</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="orange" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление <font size="5" color="orange" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="orange" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="orange" face="Arial">%Moscow.WindSpeed%</font> м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="orange" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="orange" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>orange

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 3:31 pm
Мазур
Там ничего нет. (((
А в обьекте, в свойствах города существуют всего три графы city_id, city и temp которые я сам и заполнил.
1.jpg
1.jpg (76.68 КБ) 12813 просмотров
2.jpg
2.jpg (89.78 КБ) 12813 просмотров

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 3:49 pm
utia38
попробуй в сценариях вручную вызвать скрипт погоды
и посмотри потом в свойства объекта твоего города

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 3:59 pm
Мазур
Белый экран. :(

Поменял скрипт на:
СпойлерПоказать
// Писать логи ( 0-нет, 1-только критические, 2-все )
$reclog = 1;

// Открываем лог, если нужно.
if ($reclog) { $log = getLogger('script.WeatherFromYandex'); }

// Адрес xml файла
$data_file = "http://export.yandex.ru/weather-ng/fore ... xml?".rand(1, 1000);

// Отключение ошибок libxml и передача полномочий по выборке и обработке информации об ошибках пользователю
libxml_use_internal_errors(true);

// Установим контекст потока
$ta = 30; //Таймаут ожидания страницы от Яндекса (секунд)
$ctx = stream_context_create(array('http' => array('timeout' => $ta)));
libxml_set_streams_context($ctx);

$retries = 5; // Число попыток запроса xml у Яндекса
$count = 0; // Счетчик попыток
$xml = false;

while ( ($count !== $retries) && ($xml === false) ) {
if ( $reclog == 2 ) $log->trace('Запрос данных погоды от сервиса Яндекс.Погода. Попытка = ' . $count);
// Получаем xml от Яндекса и раскладываем на массив
$xml = @simplexml_load_file($data_file);
if ( $reclog == 2 ) {
if ( $xml === false ) $log->trace('Запрос данных погоды от сервиса Яндекс.Погода. Неуспешная попытка.');
else $log->trace('Запрос данных погода от Яндекса. Успешная попытка.');
}
// Пауза между попытками
sleep(1);
$count++;
}

if($xml === false) {
if ($reclog) $log->error('Не удалось получить данные от сервиса Яндекс.Погода.');
foreach(libxml_get_errors() as $error) {
if ($reclog) $log->error($error->message);
}
libxml_clear_errors();
}
else {

if( $fact = $xml->fact ) {

// получаем нужные свойства, как раньше

}

if( $day0 = $xml->day[0] ) {

// получаем нужные свойства, как раньше

}

if ( libxml_get_last_error() !== false ) {

if ($reclog) $log->error('Данные от сервиса Яндекс.Погода получены, но возникли ошибки: ');

foreach(libxml_get_errors() as $error) {
if ($reclog) $log->error($error->message);
}
}

libxml_clear_errors();
}
Температура в свойствах обьекта появилась

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 5:01 pm
Мазур
3) создаем пункт в МЕНЮ УПРАВЛЕНИЯ - HTML и в код вставляем напрмер вот это (меняя на свои переменные %Moscow.Temp% на ваши значения)

<div align="center"><font size="5" color="orange" face="Arial"><b>Погода Москва</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="orange" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление <font size="5" color="orange" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="orange" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="orange" face="Arial">%Moscow.WindSpeed%</font> м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="orange" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="orange" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>orange[/quote]

Мистика! Этот код работает, но везде показывает 0. Так как прописан скрипт %Moscow.Temp%
Когда меняю на свой %Saint-Petersburg.Temp%
в меню так и пишет :


Температура %Saint-Petersburg.Temp%oC
Давление %Saint-Petersburg.Pressure% мм.рт.ст
Влажность %Saint-Petersburg.Humidity% %
Скорость ветра %Saint-Petersburg.WindSpeed% м/с 0
Восход солнца %Saint-Petersburg.SunRise%
Заход солнца %Saint-Petersburg.SunSet%
Последнее обновление %Saint-Petersburg.UpTime%

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 6:43 pm
utia38
попробуй объект погоды Санкт-Пет. по английски назвать как ты в своем коде написал.

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 6:52 pm
Мазур
Не работает. :?
1.jpg
1.jpg (62.34 КБ) 12750 просмотров

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 9:10 pm
utia38
ща погоди, видео урок сниму. ты пока все удали по погоде. объекты. сценарий и меню

Re: Погода (Яндекс)

Добавлено: Ср дек 02, 2015 10:48 pm
utia38
Походу МД не нравятся ТИРЭ в названиях объекта, попробуй назвать объект Petersburg
и вставь в меню код

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

должно заработать

Re: Погода (Яндекс)

Добавлено: Чт дек 03, 2015 9:37 am
Мазур
Заработало! Большое спасибо! :D

Подскажите как сделать обновление погоды раз в час?
В onNewMinute стоит 30 минут, но обновления не происходят. При запуске WeatherFromYandex в ручную, тоже ничего не происходит.