Блок с погодой (погодный информер) бесплатно
Хочется самому разместить блок погоды на своём сайте?
Можно начать с малого.
К примеру вот вариант, который можно допилить под себя. И буквально за несколько минут у вас на сайте будет «Блок с погодой вашего города».
Итак, что понадобится:
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'));
А для того, чтобы в вашем блоке появилась погода, необходимо в файле вставить следующее содержание:
Где 00000 — код вашего города согласно informer.gismeteo.ru/getcode/xml.php?id=27612
а «Имя_вашего_города: » заменить к примеру на «Москва: „
Если будут дополнения, которыми захотите поделиться, размещайте в комментах или пишите в личку. Будем дополнять. Блок с погодой работает. Всё ок. Но приукрасить его не мешало бы.
Удачи.
Можно начать с малого.
К примеру вот вариант, который можно допилить под себя. И буквально за несколько минут у вас на сайте будет «Блок с погодой вашего города».
Итак, что понадобится:
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 комментариев
автору спасибо