Блок с погодой (погодный информер) бесплатно

9
Хочется самому разместить блок погоды на своём сайте?
Можно начать с малого.
К примеру вот вариант, который можно допилить под себя. И буквально за несколько минут у вас на сайте будет «Блок с погодой вашего города».
Итак, что понадобится:
1. Создать блок.
1.1. classes/blocks — здесь нужно создать файл с вашим блоком, можно просто скопировать какой-нибудь
имеющийся и поменять его название на BlockWet.class.php и аналогично сменив имя внутри самого файла. В моём случае был скопирован блок теги_города и переименован по указанному имени, внутри блока ничего не менялось.
1.2. templates/skin/new/ — здесь нужно добавить шаблон нашего блока с именем block.wet.tpl
1.3. classes/actions — в нужных вам надо будет добавлить строчку, которая будет выводить новый блок на соответствующих страницах:
1.4. в файле russian.php примерно в 630 строчке или в другом удобном для вас месте добавляем 'block_weather' => 'Погода в Имя_вашего_города',

$this->Viewer_AddBlocks('right',array('wet','tags'));

А для того, чтобы в вашем блоке появилась погода, необходимо в файле вставить следующее содержание:
{if $aCityList && count($aCityList)>0}
	<div class="block">				
		<h2>{$aLang.block_weather}</h2>					
		{php} 
	$file = file_get_contents("http://informer.gismeteo.ru/rss/00000.xml");
	preg_match_all("#<item.*?>(.*?)</item>#is", $file, $items);
	foreach($items[1] as $item) {
		preg_match("#<title>(.*?)</title>#is", $item, $title);
		$title = str_replace("Имя_вашего_города: ", "", $title[1]);
		preg_match("#(\d+)#", $title, $date);
		$date = $date[1];
		preg_match("#<description>(.*?)</description>#is", $item, $descr);
		$descr = preg_replace("#(\d{1,2}\.\.-\d{1,2} С).*#i", "$$1", $descr[1]);
		preg_match("#<enclosure url=(['\"])(.*?)\\1#is", $item, $img);
		$img = $img[2];
		$dat['title'] = $title;
		$dat['descr'] = $descr;
		$dat['date'] = $date;
		$dat['img'] = $img;
		$data[] = $dat;
	}
	
	foreach($data as $rec) {
	
		print "<strong>$rec[title]</strong>
";
		print "<img src='$rec[img]'/>";
		print "<span>$rec[descr]</span><hr/>";
			}
{/php}					
	</div>
{/if}


Где 00000 — код вашего города согласно informer.gismeteo.ru/getcode/xml.php?id=27612
а «Имя_вашего_города: » заменить к примеру на «Москва: „

Если будут дополнения, которыми захотите поделиться, размещайте в комментах или пишите в личку. Будем дополнять. Блок с погодой работает. Всё ок. Но приукрасить его не мешало бы.
Удачи.
  • +1
  • 06 сентября 2010, 01:32
  • DenisN

Комментарии (5)

RSS свернуть / развернуть
Есть уже бесплатный плагин погодный.
0
Только ято специально посмотрел каталог — бесплатного плагина нет. Есть за 100р. (конечно смешная цена и т.д.) Но суть в том, что предлагаемое мною решение — беплатное. Если я не нашёл, то дайте ссылку.
0
Да, но лучше заплатить 100 рублей за плагин, чем ручками вводить ваше решение. Плагин то удобнее будет.
0
лучше когда есть выбор.

автору спасибо
+1
Как реализовать в этом коде вывод НЕ на 4 времени (утро, день, ночь, вечер), а только на ближайшее.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.