Наверняка уже многие из вас не раз встречали в Интернете непонятное слово RSS. В нашей статье мы попробуем как можно проще объяснить, что же это такое и как этим пользоваться.
RSS – технология, которая используется для трансляции новостей с одного сайта на другой сайт или множество сайтов. Трансляция идёт в виде заголовков и описаний новостей или статей находящихся на сайте ретранслятора.
{mosloadposition debug}
Сайты, которые используют RSS новостей, называются сайты-участники. К примеру, если на главном сайте добавляется или изменяется информация, то и на сайтах-участниках она так же изменяется.
Сама аббревиатура RSS имеет различные расшифровки, отражающие один и тот же смысл. Вот некоторые из них:
Rich Site Summary — обогащённая сводка сайта;
RDF Site Summary — сводка сайта с применением инфраструктуры описания ресурсов;
Разработка данной технологии началась в 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 ленту.
Теперь посмотрим, как настройки могут влиять на вид ленты. Для этого вернемся в модуль с настройками.
Если мы поменяем их, то наша лента будет выглядеть иначе. В левом верхнем углу мы видим заголовок – Подробности. Тут мы можем задать условия для доступа (все, зарегистрированный, специальный), изменить позицию на сайте (справа, слева, по центру). Следующий заголовок – Назначение меню, в котором мы можем выбрать функции меню, либо все либо из списка. В параметрах мы можем выбрать показывать заголовок, описание, изображение ленты.
Теперь давайте поэкспериментируем и посмотрим, что получится. В пункте подробности поменяем позицию (справа – слева). В параметрах:
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) {
//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);
//
// 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 <<
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.