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

Хочется самому разместить блок погоды на своём сайте?
Можно начать с малого.
К примеру вот вариант, который можно допилить под себя. И буквально за несколько минут у вас на сайте будет «Блок с погодой вашего города».
Итак, что понадобится:
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
а «Имя_вашего_города: » заменить к примеру на «Москва: „

Если будут дополнения, которыми захотите поделиться, размещайте в комментах или пишите в личку. Будем дополнять. Блок с погодой работает. Всё ок. Но приукрасить его не мешало бы.
Удачи.

8 комментариев

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

автору спасибо
avatar
неблагодарные вы люди, человек старался, расписал… Автор, респект тебе, не обращай внимания на тролей
avatar
Как реализовать в этом коде вывод НЕ на 4 времени (утро, день, ночь, вечер), а только на ближайшее.
avatar
А говоришь, что не разработчик :/
  • mixan
  • 0
avatar
О я некрофил.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.