Добавка к информеру погоды для ДЛЕ
Решил дописать немного(попросили :)) чтобы картинки информера не тащились каждый раз с майл.ру а сохранялись на сервере и грузились с вашего сайта. Ну вот вообщем дописал немного парсер
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); }} |
пробуем отписываемся если какие проблемы обноружаться.
ЗЫ. а картинка сделана с помошью нового модуля «Демативаторы для ДЛЕ»
Подскажите любезнейший, когда вставляю данную опцию: //require_once ENGINE_DIR.’/modules/meteo.php’;
то шаблон сползает вниз(сверху появляется однотонная, цветом бг, полоса шириной ~38-40px) где искать это смещение даже не представляю.
надо не
//require_once ENGINE_DIR.’/modules/meteo.php’;
вставлять аrequire_once ENGINE_DIR.’/modules/meteo.php’;
я естественно вставлял require_once ENGINE_DIR.’/modules/meteo.php’;
Когда у вас запостил — просто неудачно скопировал в буфер с тела поста.
И все же проблема не устранена, я даже не примерно не могу вообразить из-за чего данный сдвиг появляется.
ну мне тем более сложно сказать в чем косяк не видя сайта. Данный информер установлен уже не однократно и на множестве сайтов проблем не было замечено.