Добавка к информеру погоды для ДЛЕ

Решил дописать немного(попросили :) ) чтобы картинки информера не тащились каждый раз с майл.ру а сохранялись на сервере и грузились с вашего сайта. Ну вот вообщем дописал немного парсер :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}
 
if (!$meteo) {
 
$city = "1460"; //город для  которого будет погода в данном случае Москва, берем на http://pogoda.mail.ru/informer/index.html
//******************************* установка *****************
//подключение в файле index.php после строчки
//require_once ROOT_DIR . '/engine/init.php';
//вставляем
//require_once ENGINE_DIR.'/modules/meteo.php';
//
//ниже $tpl->set ( '{speedbar}', $tpl->result['speedbar'] );
//добавляем $tpl->set ( '{meteo}', $meteo);
//в main.tpl вашего шаблона вставляем в нужное место {meteo}
//ВСЕ!!!!
//***********************************************************
$cache_file=$_SERVER['DOCUMENT_ROOT']."/engine/cache/meteo.txt";
if (file_exists( $cache_file ) && date('H',filemtime($cache_file))== date("H", mktime(date("H"), 0, 0, 0, 0, 0))){
  $f=fopen($cache_file,"rb");
  $meteo=fread($f,filesize($cache_file));
  }
else{
$url = "http://pogoda.mail.ru/informer/weather.js?city=".$city."&view=2&encoding=win";
$html = file_get_contents($url);
$html = str_replace("document.writeln('",'',$html);
$html = str_replace("');",'',$html);
$html = preg_replace('/<h2>.*?<\/h2>/i','',$html);
$html = preg_replace('/<a.*?[>^]/i','',$html);
$html = str_replace('</a>','',$html);
$html = str_replace('<br>подробный прогноз','',$html);
$html = preg_replace('/<div class=\"top\">.*<\/div>/i','',$html);
$html = str_replace(':1px solid #ced0d9;border-top','',$html);
$meteo = str_replace('h1 a','h1',$html);
############################## тянем картинки на сервер ##############################
preg_match_all('/src="(.*?)\"/',$meteo,$img);
//print_r($img);
$count_img=count($img[0]);
for ($i=0;$i<$count_img;$i++){
$url_image=$img[1][$i];
 
$url_img = $_SERVER['DOCUMENT_ROOT'].'/uploads/'.basename($url_image);
if (!file_exists($url_img)) {
   $image=file_get_contents($url_image);
   $fp=fopen($url_img,"w+");
   fwrite($fp,$image);
   fclose($fp); }
}
$imageurl = "http://".$_SERVER['HTTP_HOST']."/uploads/";
$meteo=str_replace('http://pogoda.mail.ru/img/',$imageurl,$meteo);
$meteo=str_replace('http://img.mail.ru/r/weather_new/',$imageurl,$meteo);
######################################################################################
@file_put_contents($cache_file,$meteo);
}}

пробуем отписываемся если какие проблемы обноружаться.

ЗЫ. а картинка сделана с помошью нового модуля «Демативаторы для ДЛЕ»

4 Responses
  1. Подскажите любезнейший, когда вставляю данную опцию: //require_once ENGINE_DIR.’/modules/meteo.php’;
    то шаблон сползает вниз(сверху появляется однотонная, цветом бг, полоса шириной ~38-40px) где искать это смещение даже не представляю.

  2. надо не //require_once ENGINE_DIR.’/modules/meteo.php’; вставлять а require_once ENGINE_DIR.’/modules/meteo.php’;

  3. я естественно вставлял require_once ENGINE_DIR.’/modules/meteo.php’;
    Когда у вас запостил – просто неудачно скопировал в буфер с тела поста.
    И все же проблема не устранена, я даже не примерно не могу вообразить из-за чего данный сдвиг появляется.

  4. я даже не примерно не могу вообразить из-за чего данный сдвиг появляется

    ну мне тем более сложно сказать в чем косяк не видя сайта. Данный информер установлен уже не однократно и на множестве сайтов проблем не было замечено.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">