Меню сайта
Block title
Форма входа


До Нового Года осталось:


счетчик посещений Слушать онлайн радио
Категории раздела
Новичёк
Гости
02:18
Календарь
«  Октябрь 2011  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
24252627282930
31
Смысл жизни человека
Архив записей
Наш опрос
Оцените мой сайт
Всего ответов: 8
Мини-чат
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Коллекции геймера IZOTOP


    Скрипты для uCoz, шаблоны для uCoz, Все для uCoz
    Суббота, 04/Май/2024, 02:18
    Приветствую Вас Гость | RSS
    Главная | Регистрация | Вход
    ВСЕ ОБО ВСЕМ
    2019 Фотографии на космическую тематику за сентябрь 2011
    Главная » 2011 » Октябрь » 1 » Как сделать RSS канал на своём сайте
    00:01
    Как сделать RSS канал на своём сайте

    Совсем недавно меня заинтересовало как можно на своем собственном сайте сделать RSS канал. Поковырявшись по великим просторам интернеров я нашел пару мануалов и стандартов, которые помогли мне в этом.

    Движок сайта у меня самописный, поэтому и RSS пришлось писать ручками. В большинстве готовых CMS, RSS канал уже встроен или встраивается как дополнение.

    Но мы не ищем легких путей. Поэтому поехали.

     

    Для начала я создал файл rss.php, который будет генерировать ленту новостей. Поскольку RSS является подмножеством XML, то и PHP файлом отдавать ленту как-тоне солидно, поэтому в файле .htaccess мы дали понять серверу, что наш файл должен работать как rss.xml. То есть, реально файл работает под именем rss.php, а вызывается под дополнительным псевдонимом rss.xml.

    RewriteEngine on
    RewriteRule ^rss.xml$ rss.php

    Для того, чтобы у нас не только имя файла было XML, но и сервер отдавал его клиенту как XML файл, мы напишем в наш файл rss.php строчку волшебную.

    header ('Content-type: application/xml');

    Теперь наш RSS поток будет выглядеть точно, как XML файл.

    Далее по пунктам опишем наш код.

    echo ("\r\n\r\n");

    echo ("<rss version=\"2.0\"
    xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"
    xmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"
    xmlns:dc=\"http://purl.org/dc/elements/1.1/\"
    xmlns:atom=\"http://www.w3.org/2005/Atom\"
    xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\"
    xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\">
    \r\n\r\n");

    Объявляем и описываем стандарты XML. Нам это не интересно.

    echo ("<channel>\r\n");
    echo ("<title>www.freee.su - Коллекция бесплатного софта.</title>\r\n");
    echo ("<link>" . _ADD_URL_ . "rss.xml</link>\r\n");
    echo ("<description>Бесплатный софт - Коллекция бесплатного софта. Freee.Su. Свежие версии бесплатных программам. Freeware.</description>\r\n");
    echo ("<copyright>© Freee.Su," . date ("Y") . "</copyright>\r\n");
    echo ("<language>ru</language>\r\n\r\n");
    echo ("<url>" ._ADD_URL_ . "img/logo.gif</url>\r\n");
    echo ("<title>www.freee.su - Коллекция бесплатного софта.</title>\r\n");
    echo ("<link>" ._ADD_URL_ . "rss.xml</link>\r\n");
    echo ("</image>\r\n\r\n");

    Всё что между тегами <channel> и <image> относится к названию Вашего будущего канала,

    Тег <title> содержит заголовок Вашей RSS-рассылки. Он может повторять название сайта; <link> — ссылка на главную страницу Вашего сайта; <description> — краткое описание рассылки; <language> — язык; <copyright> — соответственно Ваши копирайты (»все права защищены» и тому подобное); <author> — автор, то есть Вы.

    От <image> до </image> сведения о логотипе Вашего сайта: <url> — ссылка на логотип; <title> — альтернативный текст у логотипа; <link> — адрес страницы, на которую перейдёт получатель рассылки, щёлкнув по логотипу.

    Предпочтительный размер логотипа 88*31 точку — как у стандартного счётчика, максимальный — 144*400. Тип файла картинки — GIF, JPEG или PNG. Этот логотип будет отображаться в читалке у получателей Вашей рассылки и им будет легче вспомнить, кому же она принадлежит.

    Если у Вас пока нет логотипа такого размера — можете просто смело выкинуть весь блок от <image> до </image>, и добавить его потом, когда нарисуете такой логотип.


    $news_query = mysql_query ("select news_id, subject, text, translit, added_by, date from news where `on` = 1 order by date desc limit "._NEWS_ON_PAGE_);
    while (list ($news_id, $subject, $text, $news_translit, $added_by, $date)=mysql_fetch_row ($news_query))
    {
    $text = str_replace ("\n", "<br>", $text);
    $date_link = date ("Y/m/d/", $date);
    $date_string = date ('r', $date);


    echo ("<item>\r\n");
    echo ("<title>".$subject."</title>\r\n");
    echo ("<link>"._ADD_URL_ . $date_link . $news_translit .".html</link>\r\n");
    echo ("<description><![CDATA[".$text."]]></description>\r\n");
    echo ("<pubDate>".$date_string."</pubDate>\r\n");
    echo ("<guid isPermaLink=\"true\">"._ADD_URL_ . $date_link . $news_translit .".html</guid>\r\n");
    echo ("<dc:creator>".$added_by."</dc:creator>\r\n");
    echo ("</item>\r\n\r\n");
    }

    Далее, информация между тегами <item> и </item> — это и есть новости. Большинство тегов идентичны разобранным выше, с той разницей, что они относятся уже не ко всему каналу, а к конкретной новости: <title> — заголовок новости. Чем сочнее он будет, тем больше вероятность, что новость прочитают и по заголовку кликнут; <link> — ссылка на страницу, которую описывает новость; <description> — собственно, сама новость. Она должна убеждать, что её не зря прочитали, и ещё больше стимулировать нажать на ссылку; <guid> — идентификатор новости, нужный, чтобы отличить одну новость от другой. Сюда лучше всего записать тот же адрес, что и в теге <link>; <dc:creator> — автор новости, не обязательно. Все остальные теги можно не трогать.

    И естественно, XML файл нужно закрыть закрывающими тегами.

    echo ("</channel>\r\n");
    echo ("</rss>\r\n");

    Как видите, ничего сложного здесь нет. Дальше вам необходиом отладить скрипт и разместить его в корне или не в корне вашего сайта.

    У меня в корне лежит файл rss.php, а вызывается он http://www.freee.su/rss.xml и http://www.freee.su/rss.php.

    Просмотров: 1018 | Добавил: valerikon | Теги: rss | Рейтинг: 0.0/0
    Всего комментариев: 0
    Имя *:
    Email *:
    Код *:
    Copyright MyCorp © 2024
    Сайт создан в системе uCoz