Главная Статьи Работа в Интернет Что такое RSS или чужие новости на нашем сайте
Что такое RSS или чужие новости на нашем сайте
10.12.2009 06:24

Наверняка уже многие из вас не раз встречали в Интернете непонятное слово RSS. В нашей статье мы попробуем как можно проще объяснить, что же это такое и как этим пользоваться.
RSS – технология, которая используется для трансляции новостей с одного сайта на другой сайт или множество сайтов. Трансляция идёт в виде заголовков и описаний новостей или статей находящихся на сайте ретранслятора.

{mosloadposition debug}


Сайты, которые используют RSS новостей, называются сайты-участники. К примеру, если на главном сайте добавляется или изменяется информация, то и на сайтах-участниках она так же изменяется.

Сама аббревиатура RSS имеет различные расшифровки, отражающие один и тот же смысл. Вот некоторые из них:

  • Rich Site Summary — обогащённая сводка сайта;
  • RDF Site Summary — сводка сайта с применением инфраструктуры описания ресурсов;
  • Really Simple Syndication — упрощённое приобретение информации.

Разработка данной технологии началась в 1997, компания Netscape использовала ее для наполнения своего ресурса информацией. Именно тогда эта технология и получила широкое признание и применение.

Данная технология позволяет сделать информацию более точной и более коммуникабельной, так как происходит мгновенный обмен новостями между сайтами, с помощью ленты новостей, которая называется RSS-лента или RSS-канал.

RSS-канал будет особенно полезен тем, у кого сайты узконаправленной тематики. Данную технологию новостных лент особенно рекомендуется использовать ресурсам, которые имеют свою чётко выраженную аудиторию.

К примеру, если у вас сайт о мультфильмах, то вы можете найти ресурс, на котором похожая информация обновляется и пополняется каждый день. Допустим им будет сайт: http://mein.at.ua/ Теперь остаётся скопировать у них ссылку на RSS и поставить у себя в виде новостной лентой, тогда и на вашем сайте будут постоянно публиковаться ссылки на новости с вышеупомянутого сайта. Вашим посетителям это понравится. Вот пример одной из таких RSS лент - http://mein.at.ua/load/rss

Существует множество сайтов, где вам предлагается обширный список RSS лент разных тематик. Для того чтобы найти подобную ссылку, заходим в поисковик Google и набираем – RSS каталог. Из предложенных поисковиком ссылок выбираем наиболее популярный каталог, где и ищем подходящую нам тематику. Находим там ссылку и вставляем её на свой сайт по вышеуказанному способу.

Не забывайте, что на данный момент поисковыми системами данный вид потока не индексируется, единственное его предназначение - это информирование посетителей сайта новостями определенной тематики с другого сайта.

RSS можно вставлять практически на любые типы сайтов. В нашем случае мы рассматриваем вариант вставки RSS на сайты использующих скрипт Joomla. Рассмотрим самый простой модуль, который поставляется в комплекте вместе с Joomla 1.5 - "mod_feed".

Прочие варианты модулей вставки RSS-ленты вы можете найти на сайте http://ext.joom.ru/content-rss.html

Шаг 1

Зайдите на сайт как администратор. Выберете в меню вкладку Расширения -> Менеджер модулей.




Шаг 2

Перед вами менеджер модулей. В правом верхнем углу мы видим кнопку – СОЗДАТЬ.

Нажимаем на нее.


 

Шаг 3

Перед нами окно создания модулей, где мы должны выбрать пункт – «Лента новостей (RSS/RDF)». После этого нажимаем на зеленую стрелку в правом верхнем углу.

 


 

Шаг 4

Теперь мы должны выбрать настройки для своей ленты новостей. В принципе тут нам нужно написать только заголовок для RSS, выбрать, где он будет располагаться на сайте (Слева, справа, по центру и т.д.) И в параметрах в пункте URL ленты RSS указать источник, из которого будет поступать информация, вставив туда ссылку RSS с сайта источника новостей. Для сохранения настроек нажмите применить.




Вот и все, новостная лента готова. Заходим на сайт и проверяем что получилось.

 

 




В правом мы можем увидеть нашу RSS ленту.

Теперь посмотрим, как настройки могут влиять на вид ленты. Для этого вернемся в модуль с настройками.




Если мы поменяем их, то наша лента будет выглядеть иначе. В левом верхнем углу мы видим заголовок – Подробности. Тут мы можем задать условия для доступа (все, зарегистрированный, специальный), изменить позицию на сайте (справа, слева, по центру). Следующий заголовок – Назначение меню, в котором мы можем выбрать функции меню, либо все либо из списка. В параметрах мы можем выбрать показывать заголовок, описание, изображение ленты.

Теперь давайте поэкспериментируем и посмотрим, что получится. В пункте подробности поменяем позицию (справа – слева). В параметрах:

1 - URL ленты RSS (адрес RSS – ленты) оставляем тот же.

2 - RTL feed (указывает выравнивание, если установлен, то справа налево) убираем.

3 – Заголовок ленты (указывает, отображать ленту или нет) выбираем, нет.

4 – Описание ленты (указывает отображать описание для ленты или нет) выбираем, так же нет.

5 – Материалы (Количество одновременно отображаемых записей) оставляем без изменения.

6 – Описание материала (краткое описание для каждого элемента) выбираем, нет.

7 – Количество слов (количество отображаемых в описании слов) ставим, 0.

 

 


 

Сохраняем и смотрим, что получилось.

 


 


Теперь лента RSS находится слева, у заголовков нет описаний. Все изменения действуют.

В модуле RSS существует три вида настроек. Поэкспериментируйте ими с ними выберите наиболее подходящий для вашего сайта вариант показа новостей выбранной тематики.

Более подробно ознакомиться с функциями модуля и его кодом вы можете на сайте: "код модуля Feed" - (http://apostilas.fok.com.br/docs/joomla-1.5/nav.php?modules/mod_feed/index.php ).

Теперь рассмотрим, как вставить RSS ленту на обычный HTML сайт. Если в первом случае в Joomle уже стоял скрипт вывода RSS новостей на сайт, то в следующем случае, этот скрипт необходимо будет внедрить в ваш HTML код страницы.

Как это сделать. Один из вариантов – это использовать парсер RSS. Сначала установите его. (Парсер - это технология создания сайтов с помощью простого языка. Он немного сложнее HTML, но не требует особенного умения программировать). Существует много различных парсеров, каждый со своими преимуществами. Вот, например неплохой с использованием URL, который в тоже время легко перенастраивается на использование функций file_get_contents() и fopen(). Преимущество его заключается в возможности парсить сразу несколько RSS - лент.

Копируете код и сохраняете файл parse.php в один каталог с вашей страницей, на которой собираетесь разместить данные из RSS .

class rssReader {
var $rssFeeds;

// Class constructor
function rssReader() {

// Here are the feeds - you can add to them or change them
$this->rssFeeds = array(
0 => "Вставляете сюда ссылку вашего RSS фида",
1 => "Второй фид",
2 => "Третий",
3 => "Четвертый",
4 => "Пятый и.т.д",//По аналогии копируете строчку и вставляете сколько угодно ссылок на фиды
);
}
function checkCache($rss_url) {

$ttl = 60*60;// 60 secs/min for 60 minutes = 1 hour(360 secs)
$cachefilename = md5(md5($rss_url));

if (file_exists($cachefilename) && (time() - $ttl < filemtime($cachefilename)))
{
//$feed = file_get_contents($cachefilename);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $cachefilename);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$feed = curl_exec($ch);
curl_close($ch);
}
else
{

//$feed = file_get_contents($rss_url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $rss_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$feed = curl_exec($ch);
curl_close($ch);

// $fp = fopen($cachefilename, 'w');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $cachefilename);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
curl_close($ch);

//$xmldata = split("\n",$xmldata);

//foreach ($xmldata as $data);
//fwrite($data, $feed);
//fclose($data);
}
return $feed;

}

//
// Creates HTML from a FeedID in the array
// it makes $howmany entries
//
function createHtmlFromFeed($feedid, $howmany) {

// Now we make sure that we have a feed selected to work with
$rss_url = $this->rssFeeds[$feedid];
if (!isset($rss_url)) $rss_url = $this->rssFeeds[$feedid];
$howmany = intval($howmany);

$this->createHtmlFromRSSUrl( $rss_url, $howmany );

}

//
// Create HTML from an RSS URL
// it makes $mowmany entires
//
function createHtmlFromRSSUrl( $rss_url, $howmany )
{
// Now we get the feed and cache it if necessary
$rss_feed = $this->checkCache($rss_url);

// Now we replace a few things that may cause problems later
$rss_feed = str_replace("", "", $rss_feed);
$rss_feed = str_replace("\n", "", $rss_feed);

// If there is an image node remove it, we aren't going to use
// it anyway and it often contains a #', $rss_feed, $title, PREG_SET_ORDER);
preg_match_all('# (.*?)#', $rss_feed, $link, PREG_SET_ORDER);
preg_match_all('#(.*?)#', $rss_feed, $description, PREG_SET_ORDER);

//
// Now that the RSS/XML is parsed.. Lets Make HTML !
//

// If there is not at least one title, then the feed was empty
// it happens sometimes, so lets be prepared and do something
// reasonable
if(count($title) <= 1)
{
echo "No news at present, please check back later.

";
}
else
{
// OK Here we go, this is the fun part

// Well do up the top 3 entries from the feed
for ($counter = 1; $counter <= $howmany; $counter++ )
{
// We do a reality check to make sure there is something we can show
if(!empty($title[$counter][1]))
{
// Then we'll make a good faith effort to make the title
// valid HTML
$title[$counter][1] = str_replace("&", "&", $title[$counter][1]);
$title[$counter][1] = str_replace("'", "'", $title[$counter][1]);
$title[$counter][1] = str_replace("£", "?", $title[$counter][1]);

// The description often has encoded HTML entities in it, and
// we probably don't want these, so we'll decode them
$description[$counter][1] = html_entity_decode( $description[$counter][1]);

// Now we make a pretty page bit from the data we retrieved from
// the RSS feed. Remember the function FormatRow from the
// beginning of the program ? Here we put it to use.
$row = $this->FormatEntry($title[$counter][1],$description[$counter][1],$link[$counter][1]);

// And now we'll output the new page bit!
echo $row;
}
}
}
}

function FormatEntry($title, $description, $link) {
return <<

{$title}

 

{$description}


Read more...

 

 



HTML;
}

 


function GetrssFeeds() {
return $this->rssFeeds;
}

function SetrssFeeds($rssFeeds) {
$this->rssFeeds = $rssFeeds;
}


}// END OF THE CLASS

?>
Теперь на вашей странице в тег head вставляете вызов парсера.
include("parser.php");
$myRSS = new rssReader();
?>

Затем помещаете на нужные вам места на странице несколько тегов div и вставляете в каждый из них код:
$myRSS->createHtmlFromFeed(0,5);
?>
В скобках первая цифра это номер фида (из файла parser.php), вторая - количество новостей из этого фида которые будут отображаться, в данном случае номер фида -0, новостей- 5.

Далее по аналогии вставляете в другой div:
$myRSS->createHtmlFromFeed(1,5);
?>

В этом случае будут отображаться 5 новостей из фида под номером 1.

 

Специально для Ячайник, Инна Милосердова

{mosloadposition cpanel}

{mosloadposition debug}

Комментарии (0)Добавить комментарий

Написать комментарий
Вы должны авторизоваться, чтобы добавлять комментарии. Пожалуйста, зарегистрируйтесь.

busy

Похожие новости:
Новые материалы на эту тему:
Также рекомендуем к прочтению:

Обновлено 13.02.2011 18:28
 
Интересная статья? Поделись ей с другими: