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

Граббер погоды с 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 »
Другие новости по теме:

Категория: Модули ----- Просмотров: 4029 ----- Комментариев: 7

Вернуться

  • alexben

  • 12 февраля 2008 05:35
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
неработает recourse
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
waiting for data пишет, все сделал как было написано в описании статьи, укажите на ошибку
  • DImkA

  • 12 февраля 2008 19:39
  • Группа: r00t Admin
  • ICQ: 5160909
  • Регистрация: 12.12.2007
  • Комментариев: 137
  • Публикаций: 74
^
Цитата: LesliNilson
waiting for data пишет, все сделал как было написано в описании статьи, укажите на ошибку

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

--------------------
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
как подключить исходящии соиденения???
  • DImkA

  • 15 марта 2008 10:28
  • Группа: r00t Admin
  • ICQ: 5160909
  • Регистрация: 12.12.2007
  • Комментариев: 137
  • Публикаций: 74
^
As_alex,
ТОлько попросив хостера.. если ето бесплатный хостер то можеш забыть))

--------------------
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
спасибо
  • PHANTOM

  • 3 августа 2008 10:07
  • Группа: Гости
  • ICQ: --
  • Регистрация: --
  • Комментариев: 0
  • Публикаций: 0
^
на своём серваке как включить?