Гостевая
Форум
Разделы
Главная страница
Js скрипты
Php скрипты
Html шаблоны
Книги по Web дизайну
Статьи


Главная страница статей --> Советы по фотошопу, графике и хитрости в построении php кода

Немного о OPML (формат для создания списка RSS каналов)

Источник: realcoding.net

Немного о OPML


После того, как Вы создали на сайте несколько собственных RSS-каналов (о создании RSS каналов и что это такое, на примере RSS 2.0 читайте здесь http://naklon.debilarius.ru/texts/sleep/rss.htm), либо хотите создать список RSS-каналов своих друзей и знакомых, то при увеличении списка описывать каждый из них в заголовке становится непродуктивно.

Делать же список на каждой странице также не выход: поскольку, во-первых, это будет SPAM в чистом виде, т.е. информация не затребованная пользователем, а, во-вторых, это увеличивает размер страницы. Но есть решение.

Для создания списка каналов RSS на настоящий момент существуют два формата: OCS (Open Content Syndication) и OPML (Outline Processor Markup Language). Оба из них базируются на языке XML. Разница между этими форматами примерно такая же, как и между RSS 1.0 и 2.0, поэтому для формирования вручную наиболее удобным, по моему мнению, будет всё же OPML. OPML - это достаточно старый формат, и его основное предназначение было описание структур, подобных каталогам на диске.

Рассмотрим, для примера, файл, описывающий на сайте debilarius.ru каналы партнеров Рыбца.

<?xml version="1.0" encoding="windows-1251" ?>

<opml version="1.0">

<head>

 

<title>Рыбец и его друзья</title>

<dateCreated>Sat, 20 Dec 2003 15:00:00 GMT</dateCreated>

<dateModified>Sat, 20 Dec 2003 18:00:00 GMT</dateModified>

<ownerName>Egor Naklonyaeff</ownerName>

<ownerEmail>chyduskam@debilarius.ru</ownerEmail>

 

</head>

<body>

 

<outline type="rss" title="Рыбка дебиляриус"

   description="Нечто умственно иное"

   xmlUrl="http://debilarius.ru/rss/"

   htmlUrl="http://debilarius.ru/" />

<outline type="rss" title="Портал Егора Наклоняева"

   description="Сайт Егора Наклоняева и Сигизмунда Траха, людоведов и

   душелюбов, а также их единочаятелей. Сайт посвящен наклону, его

   пропаганде и практическому применению."

   xmlUrl="http://naklon.debilarius.ru/rss/"

   htmlUrl="http://naklon.debilarius.ru/" />

<outline type="rss" title="Провод.ком Валерий Тихонов-НеТОТ, личный орган" d

   escription="Литературо-краеведческий набор файлов.

   Практического интереса не представляет. Содержится на средства

   налогонеплательщиков" xmlUrl="http://provod.com/rss.xml"

   htmlUrl="http://www.provod.com/" />

</body>

</opml>

Итак, разберём по порядку. Первая строка говорит нам о том, что это XML версии 1.0, и что для разбора его необходимо использовать кодировку [47]windows-1251. Вторая строка открывает тэг opml с обязательным атрибутом version. Данный элемент состоит из двух обязательных элементов: head и body. Элемент head может быть пустым, а может содержать нижеследующие элементы, описывающий данный документ:

* <title> - общий заголовок документа

* <dateCreated> - дата создания документа

* <dateModified> - дата последнего изменения документа

* <ownerName> - строка, описывающая владельца данного документа

* <ownerEmail> - адрес электронной почты владельца.

Остальные элементы, упомянутые в спецификации, как то <expansionState>, <vertScrollState>, <windowTop>, <windowLeft>, <windowBottom> и <windowRight> для наших целей не нужны. Подробнее о них, см. спецификацию OPML (http://opml.scripting.com/spec)

Обратите внимание на дату, она должна быть обязательно в стандарте RFC 822, т.е. с указанием дня недели и часового пояса. Для Москвы и Санкт-Петербурга, часовой пояс +0300. Таким образом: Sat, 20 Dec 2003 15:00:00 GMT - то же самое, что Sat, 20 Dec 2003 18:00:00 +0300.

Допустимо оба написания.

Что же касается элемента body, то с ним сложнее. Подробной спецификации на него нету, поэтому опишу элементы из существующей практики его применения в Интернет. Данный элемент состоит из любого количества элементов <outline>. Вложения в данный элемент других элементов, хоть и допускаются стандартом при описании документов такого типа, не поддерживается большинством агрегаторов. Каждый элемент содержит следующие желательные атрибуты:

* type - тип элемента, пишем rss.

* title - в данном случае, название RSS-канала. Соответствует элементу <title> элемента <channel> для RSS 2.0

* description - краткое описание канала. Соответствует элементу <description> элемента <channel> для RSS 2.0

* xmlUrl - ссылка на канал в виде RSS

* htmlUrl -ссыка на HTML-страницу данного канала. Соответствует элементу <link> элемента <channel> для RSS 2.0

Сохраним полученный результат в виде файла с расширением .opml и перейдем к настройке сервера. Серверу необходимо сообщить, что есть такое расширение. Это делается у сервера Apache, например, простым добавлением строки:

AddType text/xml opml

в фаил .htaccess. Если всё это для Вас китайская грамота, то просто сохраните файл с расширением .xml, типа myfriends.xml и забудьте, что я только что говорил.

После того, как мы сохранили файл и выложили его на сервер, необходимо сообщить пришедшим на сайт, что у нас есть opml. Для страницы в формате HTML это делается следующим элементом секции <head>:

<link rel="subscriptions" type="text/x-opml" title="OPML" href="http://naklon.debilarius.ru/debilarius.opml">

Замените http://naklon.debilarius.ru/debilarius.opml своей ссылкой и наслаждайтесь результатом. Для таких агрегаторов, как например NewzCrawler (http://www.newzcrawler.com/) этого более чем достаточно.

Для менее продвинутых, можно поставить данную ссылку на кнопку или сделать её в текстовом виде, но это уже совсем другая история...

Дополнительная литература:

OPML 1.0 http://opml.scripting.com/

OPML 1.0 Specification http://opml.scripting.com/spec



Похожие статьи:
- Разработка собственных листов рассылки
- Оптимизация HTML файлов
- Идеология HTML
- Печатаем по-умному или ещё один способ защиты информации
- Постраничный вывод из таблиц MSSQL с помощью PHP
- Импортирование информации с чужого сайта на свой сайт в свой дизайн
- Создаем шаблоны электронных писем с помощью XML
- Работа с Шаблонами
- PHP скрипт для автоматического определения кодировки текста
- Кое-что о WAP
- XML в 10 тезисах
- Гостевая книга из Perlовки
- Создание динамических форм с помощью JavaScript


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |
[0.001]