Добавил виджет с погодой от YoWindow

Добавил виджет с погодой от компании YoWindow, который вы можете наблюдать справа.

Установка особых затруднений не вызывает: идем на сайт с виджетом, выбираем нужные пункты и добавляем полученный код в текстовый виджет WordPress. Единственный момент — у меня почему-то не заработал код, который предназначен для WordPress (вместо картинки выводился текст), поэтому пришлось взять код, который подходит для любого сайта.

Не будь я программистом, если бы оставил погодный виджет как есть. Поэтому я добавил выбор по рандому пейзажа. Каждый раз виджет показывает разный пейзаж (аэропорт, восточный, деревня, море). Как это сделано сейчас расскажу — добавляем перед «div style» вот такой код:

<?php
    function yo_get_landscape() {
        $items = array("seaside", "oriental", "airport", "village");
        return $items[array_rand($items, 1)];
    }
?>

Затем меняем в коде виджета параметр «landscape=что-то-там» на

landscape=<?php echo yo_get_landscape(); ?>

С ходу это не заработает, потому что PHP запрещено исполнять в текстовых виджетах. Поэтому идем и ставим плагин Executable PHP widget. Он добавляет тип виджета под названием «PHP Code». И уже в этот виджет вносим все данные.

В итоге у меня получился вот такой код:

<?php
    function yo_get_landscape() {
        $items = array("seaside", "oriental", "airport", "village");
        return $items[array_rand($items, 1)];
    }
?>
 
<div style="width:240px; height:170px;">
    <object type="application/x-shockwave-flash" data="http://swf.yowindow.com/yowidget3.swf" width="240" height="170">
        <param name="movie" value="http://swf.yowindow.com/yowidget3.swf"/>
        <param name="allowfullscreen" value="true"/>
        <param name="wmode" value="opaque"/>
        <param name="bgcolor" value="#FFFFFF"/>
        <param name="flashvars" value="landscape=<?php echo yo_get_landscape(); ?>&amp;location_id=gn:498817&amp;location_name=%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3&amp;time_format=24&amp;unit_system=custom&amp;u_temperature=c&amp;u_wind_speed=mps&amp;u_pressure=mm&amp;u_distance=km&amp;u_rain_rate=mm&amp;lang=ru&amp;background=#FFFFFF&amp;mini_locationBar=true&amp;mini_momentBar=false&amp;copyright_bar=false"/>
        <a href="http://yowindow.com/weatherwidget.php" style="width:240px;height:170px;display: block;text-indent: -50000px;font-size: 0px;background:#DDF url(http://yowindow.com/img/logo.png) no-repeat scroll 50% 50%;">Погодный информер</a>
    </object>
</div>
 
<div style="width: 240px; height: 10px; font-size: 12px; font-family: Arial,Helvetica,sans-serif;">
    <span style="float:left;"><a target="_top" href="http://yowindow.com?client=widget&amp;link=copyright" style="color: #2fa900; font-weight:bold; text-decoration:none;" title="Погодный информер" rel="noopener">YoWindow.com</a></span>
    <span style="float:right; color:#888888;"><a href="http://www.yr.no" style="color: #2fa900; text-decoration:none;">yr.no</a></span>
</div>

UPD: Обновил функцию yo_get_landscape(). Теперь выбор ландшафта зависит от текущего дня (ресурсы виджета не загружаются заново на каждой странице — этим экономится трафик посетителей сайта).

<?php
    function yo_get_landscape() {
        $items = array("seaside", "oriental", "airport", "village");
        return $items[date('z') % count($items)];
    }
?>

P.S. Да простят меня разработчики из YoWindow, но ссылки я сделал поменьше.
P.P.S. Теперь виджет от YoWindow вставить ещё проще. Плагин для этих целей по ссылке: YoWindow Widget Plugin.

Блог Евгения Жирнова