WeBinstruments

Инструментарий для веб-мастеров

 

Техподдержка и
сопровождение
сайтов


на сайте на всех сайтах для веб разработчиков везде
 
 Скрипты
  PHP скрипты   
  Flash скрипты   
  Javascript скрипты   

 Софт
  Инструменты SEO   
  Разработка сайтов   
  Серверное ПО   

 Документация
  MySQL   
  PHP   
  HTML   
  Протоколы и сервисы Internet   

 Статьи
  PHP   
  MySQL   
  Сервер   
  еще...   

 Услуги и сервисы
  Домены   
  Хостинги   
  Блоки для сайта   

 Новости


 Контакты
  icq: 158325531
  email:
  все контакты: здесь




Atom все поступления
Раздел Новости
Раздел Услуги и сервисы
Раздел Статьи
Раздел Файлы
комментарии



Логотип формата atom
Atom

Atom RSS

28.07.2010
сайт автора: http://webi.ru
публикация данной статьи разрешена только со ссылкой на сайт автора статьи

Статья о формате Atom.
Хоть Atom это не RSS, но статью я назвал именно Atom RSS, чтобы было понятно о каком атоме идет речь, да и появился в общем-то Atom на базе RSS.

Что такое Atom и зачем он нужен?

Atom используется точно для тех же целей что и RSS. Представляет из себя обычный текстовый файл в формате xml и называется такой файл ФИД.
Основная задача, это представление информации в виде ленты новостей. Например, последние поступления любой информации на сайт.
В первую очередь такие ленты полезны посетителям сайта. Любой посетитель может подписаться на такую ленту (фид) и как только на вашем сайте появится новая информация подписчик сразу получит текст новости или статьи размещенной на вашем сайте.
Кроме посетителей сайта эти фиды полезны и поисковым роботам. Так как информация здесь четко структурирована, то поисковым системам не составляет труда получить именно значимый текст страницы, точные даты обновления и добавления информации и т.д.

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

Пример фида Atom

<?xml version="1.0" encoding="windows-1251"?>
<feed xmlns="http://www.w3.org/2005/Atom">

<title>WeBi.Ru Статьи</title>
<subtitle>Авторские статьи для вебразработчиков.</subtitle>
<id>http://webi.ru/webi_articles/</id>
<updated>2010-05-25T13:14:58+07:00</updated>
<link rel="self" type="application/atom+xml" href="http://webi.ru/index.php?webicl=art&amp;webirss=atom"/>
<link rel="alternate" type="text/html" href="http://webi.ru/webi_articles/"/>
<rights>Copyright (c) 2003-2010, WeBi</rights>
<generator uri="http://webi.ru" version="1.0">
WeBi_atom_generator
</generator>

<entry>
  <link rel="alternate" type="text/html" href="http://webi.ru/webi_articles/apache_on_windows.html" />
  <id>http://webi.ru/webi_articles/,art,14,2010-01-19+12%3A09%3A47</id>
  <updated>2010-05-25T13:14:58+07:00</updated>
  <published>2010-01-19T12:09:47+07:00</published>
  <author>
    <name>WeBi</name>
    <uri>http://webi.ru</uri>
    <email>adm@webi.ru</email>
  </author>
  <title>Как установить рабочий сервер apache дома на windows</title>
  <summary>
   Как установить на домашнем компьютере с windows веб сервер apache не только для тестирования скриптов,
   но и для организации рабочего сервера для своих сайтов.
  </summary>
  <content>Здесь можно поместить полный текст статьи или новости</content>

</entry>

<entry>
  <link rel="alternate" type="text/html" href="http://webi.ru/webi_articles/xmpp_php.html" />
  <id>http://webi.ru/webi_articles/,art,22,2010-04-27+16%3A12%3A07</id>
  <updated>2010-04-27T16:12:07+07:00</updated>
  <published>2010-04-27T16:12:07+07:00</published>
  <author>
    <name>WeBi</name>
    <uri>http://webi.ru</uri>
    <email>adm@webi.ru</email>
  </author>
  <title>Jabber и PHP</title>
  <summary>Как работать с протоколом jabber через php с помощью сокетов.
  Как отправлять сообщения и как их получать с помощью php скрипта.
  </summary>
  <content>Здесь можно поместить полный текст статьи или новости</content>
</entry>
</feed>


Структура формата Atom

Любой xml файл должен начинаться со строки
<?xml version="1.0" encoding="windows-1251"?>
Естественно кодировка указывается ваша, в моем случае encoding="windows-1251"

Далее начинается сам фид.
<feed xmlns="http://www.w3.org/2005/Atom">
...
</feed>
Все данные должны находиться внутри этого элемента. За пределы <feed> ничего не может выходить.

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

Элементы описывающие фид.

Обязательные элементы

<id> Идентификатор фида. Как любой идентификатор должен быть уникальным. Если на вашем сайте есть несколько разных каналов, то соответственно их идентификаторы должны отличаться. Самый удобный и простой вариант, это указать здесь URL фида или URL страницы, относящейся к этому фиду. Пример из моего канала для статей
<id>http://webi.ru/webi_articles/</id>
<title> Название канала. Не должно быть пустым. <title>Название</title>
<updated> Дата последнего обновления фида <updated>2010-07-12T13:14:58Z</updated> - без поправки
<updated>2010-07-12T13:14:58+07:00</updated> - с поправкой на 7 часов

Необязательные элементы

<subtitle> Описание канала <subtitle>Авторские статьи для вебразработчиков.</subtitle>
<author> Информация об авторе. Если у статей будут другие авторы, их можно указать непосредственно для каждой статьи. <author>
  <name>Максим</name>
  <email>maxim@site.ru</email>
  <uri>http://site.ru</uri>
</author>
<link> URL связанный с данным фидом Адрес канала
<link rel="self" type="application/atom+xml" href="http://webi.ru/index.php?webicl=art&amp;webirss=atom"/>

Страница, связанная с этим каналом
<link rel="alternate" type="text/html" href="http://webi.ru/webi_articles/"/>
<category> Категория, к которой относится канал. Может быть несколько элементов category
Обязательный атрибут term, это идентификатор категории. Если категория является вложенной в другие категории, имеет смысл показать это, например "/articles/server/". Можете использовать любую свою систему идентификации категорий, например цифровую.

Необязательный атрибут label, это текст, который должен показываться читателю как название категории. Однако многие rss читалки игнорируют атрибут label и отображают название категорий из атрибута term, поэтому старайтесь название категории указывать еще и в term как идентификатор, например,
<category term="Статьи/PHP" label="Статьи/PHP" />
<category term="/articles/" label="Статьи" />
<generator> Название программы, которая создала данный канал. Можете выдумать свое собственное имя. Атрибуты uri и version необязательные <generator uri="http://webi.ru" version="1.0">
WeBi_atom_generator
</generator>
<icon> Уменьшенное изображение канала <icon>icon.jpg</icon>
<logo> Большое изображение канала <logo>logo.jpg</logo>
<rights> Информация об авторских правах на канал. Если какие-то статьи будут иметь другие авторские права, можно указать это в каждой статье <rights>Copyright (c) 2003-2010, WeBi</rights>

Структура элементов <entry>

Как я писал выше, фид разделен на две части. Первая часть описывает сам фид, а вторая часть состоит из списка статей (новостей, постов, комментариев и т.д.).
Элементы <entry> и содержат эти данные. Элементов <entry> может быть сколько угодно, каждый обозначает одну статью.

Обязательные элементы

<id> Уникальный и постоянный идентификатор сообщения. Обычно используют просто постоянный URL на сообщение (статью или новость...) <id>http://webi.ru/webi_articles/xmpp_php.html</id>

 

<title> Заголовок, название статьи. Не должен быть пустым <title>Название</title>
<updated> Дата последнего изменения сообщения <updated>2010-07-12T13:14:58Z</updated> - без поправки
<updated>2010-07-12T13:14:58+07:00</updated> - с поправкой на 7 часов

Необязательные элементы

<published> Дата первой публикации статьи. <published>2010-07-12T13:14:58Z</published> - без поправки
<published>2010-07-12T13:14:58+07:00</published> - с поправкой на 7 часов
<author> Информация об авторе статьи <author>
  <name>Максим</name>
  <email>maxim@site.ru</email>
  <uri>http://site.ru</uri>
</author>
<link> Ссылка на полный текст статьи <link rel="alternate" type="text/html" href="http://webi.ru/webi_articles/xmpp_php.html" />
<category> Категория, к которой относится статья, создается аналогично, как и <category> для фида <category term="/articles/" label="Статьи" />
<summary> Краткое описание статьи <summary>Описание статьи.</summary>
<content> Текст статьи <content>Такст статьи</content>


Важные дополнения

1. Проверка фида
Для проверки правильности созданного канала можно использовать популярный валидатор http://feedvalidator.org/


2. Запрещенные символы
Данные внутри элементов не должны содержать html символов и кавычек, их нужно конвертировать в html мнемоники:
< = &lt;
> = &gt;
& = &amp;
" = &quot;
' = &#039;
Преобразовать в тексте все подобные символы можно с помощью такой php функции
htmlspecialchars('текст', ENT_QUOTES);


3. Использование HTML тегов в тексте
В элементах с текстовой информацией можно использовать html. Для этого нужно использовать атрибут type="html". Например,
<summary type="html">&lt;b&gt; жирный текст &lt;/b&gt;</summary>
Все html теги должны быть конвертированы в мнемоники, прямых html тегов быть не должно.
HTML можно использовать во всех текстовых элементах (<content>,<title>,<summary>...), однако программы для чтения RSS поддерживают не все html теги. Например, некоторые не хотят обрабатывать ссылки, другие не отображают жирный шрифт или заголовки. Многие rss читалки не обрабатывают html в элементах <title>.
Поэтому старайтесь использовать минимум html в своих каналах, так как форматирование может применяться везде по разному.


4. Элемент <id> - идентификатор.
Идентификатор может состоять почти из любых символов, конечно кроме html, а так же кроме пробелов.
Чтобы случайно в идентификатор не прорвался какой-то запрещенный символ, можно кодировать идентификатор с помощью urlencode()


5. В каком порядке будут выводиться элементы <entry>.
Все элементы <entry> имеют дату добавления информации и дату редактирования.
Теоретически, в фиде можно разместить элементы <entry> в любом хаотичном порядке, так как в них есть даты, то после скачивания такого фида rss читалка должна сама упорядочить данные как положено.
Однако, не каждая программа для чтения rss сортирует данные. Большая часть программ выведут данные в том же порядке, что и в вашем канале.
Поэтому при формировании канала размещайте информацию в нем по правилам, старые внизу, новые сверху.


6. Обновление статей (элементов <entry>)
Например, в одной из ваших статей или новостей что-то изменилось. Вы внесли новый текст в статью, что-то добавили в нее, установили новую дату обновления в элементе <updated> и по всей логике ожидаете, что при следующем обновлении в rss читалках подписчики увидят, что статья обновилась.
На это способны лишь специализированные rss программы. Если читать rss с помощью яндекса или гугла или встроенных в браузеры читалок, ничего не будет заметно. Обновленная статья будет находится на своем старом месте где-то далеко внизу и никаких намеков на обновление информации. Даже если вы поставите эту статью в самое начало фида, ничего не изменится, так как большая часть RSS программ смотрит на ID статьи и полностью игнорирует даты обновления.
Если вам нужно, чтобы подписчики обязательно увидели обновленную статью, нужно изменить ID статьи.
Обычно, ID делают в виде URL на полную версию статьи и к этому URL можно добавлять еще и дату последнего изменения статьи, в этом случае ID статьи будет меняться после каждого редактирования и подписчики будут видеть это сообщение как новое.
Например такой вариант ID с датой последнего редактирования
<id>http://webi.ru/webi_articles/6_12_f.html,2010-04-27-16:12:07</id>
Хочу сказать, что это не правильный подход, если изменения в статье не очень большие ID лучше не менять, так как смена ID означает, что это уже новая статья.


7. Объемы представляемой информации
Вы можете представлять информацию двумя способами.
  1. Частично. Содержится только описание статьи или новости и чтобы прочитать статью полностью, нужно пройти по ссылке на ваш сайт на полную версию статьи. Этот способ используют чаще всего, так как заинтересованный подписчик обязательно посетит ваш сайт для получения полной информации.
  2. Полный. Содержится вся информация. Этот подход используют редко. Так как подписчик получает всю информацию и ему уже нет смысла посещать ваш сайт. Некоторые советуют помещать в каналы полный текст, якобы это очень удобно для подписчиков, да и сами подписчики RSS каналов говорят, что им удобно получать статью полностью. Для поисковых систем опять же удобнее отслеживать значимую информацию на сайте.
Какой способ использовать, выбирайте сами.



Комментарии

RSS комментарии


28.09.2010 Семен
По моему все rss читалки обращают внимание на элемент <updated>.
Не все конечно поставят обновленную статью вверх, но оповестят об измененной статье.



Добавить свой комментарий


Ваше имя(* обязательно)


Текст сообщения(* обязательно)









 
 
  запомнить

 
Copyright © 2003-2017 WeBi Constructor
Rambler's Top100