Виджет погоды для сайта (xml Яндекс погоды)

01.12.2015

1) Если сервак под виндой, качаем wget. например от сюда http://gnuwin32.sourceforge.net/packages/wget.htm и устанавливаем

2) Путь к xml Яндекса: http://export.yandex.ru/weather-ng/forecasts/23330.xml 23330 меняем на свой город

Содаем батник copyYandexPogodaXml.bat следующего содержания:

"C:\Program Files (x86)\GnuWin32\bin\wget.exe" -O e:\www\23330.xml http://export.yandex.ru/weather-ng/forecasts/23330.xml

 

3) В YII проекте \protected\components\ создаем WeatherWidget.php следующего содержания:

 

 

 

<?php

class WeatherWidget extends CWidget

{

    public $filePath = '23330.xml';

    public function init()

    {

    // этот метод будет вызван внутри CBaseController::beginWidget()

    }

    public function run()

    {      

       

        if (is_file($this->filePath) && filesize($this->filePath)>0){

            $newfile = simplexml_load_file($this->filePath);

            $temp = $newfile->fact->temperature;

                if ($temp>0) {

                    $temp='+'.$temp;                

                }

            echo $temp;

             

        }else{

            echo '-'; 

        }

       

    }

}

?>

 

 

 

 

4)  вставляем виджет  <span class="report"><?php $this->widget('application.components.WeatherWidget'); ?>°C</span>