dle.in.ua » Модули » Модуль погоды для DLE 5.x и 6.x

Модуль погоды для DLE 5.x и 6.x

Автор: Baggio от 10-02-2008, 05:18
Граббер погоды с gismeteo.ru

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

создаем файл weather.php и грузим в папку /engine/modules/
<?
/*
=====================================================
Данный код защищен авторскими правами
=====================================================
Файл: weather.php
-----------------------------------------------------
Назначение: Модуль погоды by М.М.Егоров (с) 2008
=====================================================
*/
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

$weather = weather(12345); //здесь цыфры показывают на город, их можно выяснить на gismeteo.ru

function weather($city) {
  
  $loc_file = ENGINE_DIR.'/cache/system/weather.php';
  
  $life_time = time() - @filemtime($loc_file);
  if ((file_exists($loc_file)) && ($life_time<10400)){ // 10400 - это время обновления иформации в секундах (в данном случае - 3 часа)
    $fp = fopen($loc_file, 'r');
    if (filesize($loc_file) >0){
        $text = fread($fp, filesize($loc_file));
    }else{
        $text = '<span class="localfilesizeisnull">Waiting for data</span>';
    }
    fclose($fp);
    if (strlen($text) > 20) return $text;
  }

    $sContent = file_get_contents('http://informer.gismeteo.ru/text/'.$city.'-1.JS');
    
    if (strlen($sContent) < 20) {
        // не сохраняем файл
        @touch($loc_file);
        return $sContent;
    }

  $tags = explode('<', $sContent);

// далее формируются данные о погоде. те, которые Вам не нужны, необходимо закомментировать...
$sContent =strip_tags('<' . $tags[11]); //город
$sContent.=" на ".strip_tags('<' . $tags[18]); //дата, день
$sContent.=" : температура воздуха ".strip_tags('<' . $tags[32]); //темпереатура воздуха
$sContent.=", ".strip_tags('<' . $tags[24]); //ясно-пасмурно
$sContent.=" ".strip_tags('<' . $tags[25]); //осадки
$sContent.=", ветер ".strip_tags('<' . $tags[40]); //ветер

    $fp = @fopen($loc_file, 'w');
    if ($fp){
        fwrite($fp, $sContent);
        fclose($fp);
    }
    return $sContent;
}
?>


далее открываем файл index.php,
находим
require_once ROOT_DIR.'/engine/init.php';


и добавляем после
require_once ROOT_DIR.'/engine/modules/weather.php';


здесь же находим
$tpl->set('{archives}', $tpl->result['archive']);


и добавляем после
$tpl->set('{weather}',$weather);


теперь открываем файл шаблона main.tpl и добавляем в нужное для Вас место следующую строчку:
Погода в {weather}



теперь все готово...

« Модуль погоды для DLE 5.x и 6.x »
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • неработает recourse
    • alexben
    • Регистрация: --
    • Репутация: (||)
    • 12 февраля 2008 05:35
    • 1
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • waiting for data пишет, все сделал как было написано в описании статьи, укажите на ошибку
    • LesliNilson
    • Регистрация: --
    • Репутация: (||)
    • 12 февраля 2008 18:21
    • 2
    ^
  • Группа: r00t Admin
  • Icq: 5160909
  • Комментариев: 137
  • Публикаций: 74
  • Цитата: LesliNilson
    waiting for data пишет, все сделал как было написано в описании статьи, укажите на ошибку

    Возможно отключены исходящии соиденения

    --------------------
    • DImkA
    • Регистрация: 11.12.2007
    • Репутация: (2|2|0)
    • 12 февраля 2008 19:39
    • 3
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • как подключить исходящии соиденения???
    • As_alex
    • Регистрация: --
    • Репутация: (||)
    • 15 марта 2008 10:10
    • 4
    ^
  • Группа: r00t Admin
  • Icq: 5160909
  • Комментариев: 137
  • Публикаций: 74
  • As_alex,
    ТОлько попросив хостера.. если ето бесплатный хостер то можеш забыть))

    --------------------
    • DImkA
    • Регистрация: 11.12.2007
    • Репутация: (2|2|0)
    • 15 марта 2008 10:28
    • 5
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • спасибо
    • As_alex
    • Регистрация: --
    • Репутация: (||)
    • 15 марта 2008 10:43
    • 6
    ^
  • Группа: Гости
  • Icq: --
  • Комментариев: 0
  • Публикаций: 0
  • на своём серваке как включить?
    • PHANTOM
    • Регистрация: --
    • Репутация: (||)
    • 3 августа 2008 10:07
    • 7
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.