Pull to refresh

RSS своими руками

Reading time3 min
Views867
Вчера создал для блога RSS-поток. Теперь, если выдержу писать постоянно, можно будет оперативно читать мои заметки.
Знаю, что подавляющее большинство использует wordpress или другие блоговые движки, поэтому их могу отослать сразу ко второй части заметки. У меня же полностью hand-made – надеюсь, я такой не единственный в своём роде маньяк-новичок, и моим коллегам тоже будет интересно почитать.

иконка RSS
При написании скрипта были использованы спецификация и две статьи типа «RSS на PHP»: вот тут всё расписано коротко и ясно, вплоть до готового кода; тут более обобщенно, зато рассмотрены также ввод и вывод данных (в моём случае пока абсолютно не нужно).

Итого, скрипт был собран на ходу минут за 10, но… работать отказался. Пришлось ждать до вечера, когда попаду домой, к Интернету. Вот приобретённым на этом этапе опытом и есть смысл поделиться.

Во-первых, обращу ваше внимание на то, что языка <language>ru</language> не существует. Была произведена разведка боем десятка RSS-каналов – все используют en или en-us. Хотя, в принципе, спецификация вежливо сообщает, что есть и другие языковые метки, отсылая к некоторому другому стандарту, он на другой список стандартов – в общем, так я и не узнал, может ли быть поток официально русским.

А для того, чтобы всё это работало, прямо в тэге xml указывается encoding=«UTF-8» или (у меня же всё не как у людей) encoding=«windows-1251».

В случае, если в description'ах новостей используется html, текст заключается в <![CDATA[… ]]> – об этом, в статьях выше, кажется, не было.

Вот по первой части и всё. Добавлю только, что для тестирования потока на валидность пришлось гонять IE7 – он единственный из всего моего набора браузеров сообщает о конкретных ошибках, и то, как в итоге выяснилось, не совсем верно – в моём случае он ругался на заглавную «Б» в описании канала :( Зато IE6 потоки предлагает сохранить на ПК, после чего их можно «препарировать» по собственному усмотрению.


А теперь обещанная вторая часть.

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

Зарегистрировавшись на сервисе (большое текстовое поле с кнопкой на главной же странице), я получил на выбор кучу материалов, что мне делать дальше, если у меня блог на Blogger, Wordpress, MySpace и т.д. О рукотворных чудесах, ясное дело, ни слова.

Так вот, методом проб и ошибок, установлено: новый адрес канала типа feeds.feedburner.com/JustKitich вставляется только в link в шаблоне блога, всё остальное (собственно, сам скрипт генерации потока) остаётся без изменений.

Шаг 2. Хочу красивую кнопочку с количеством читателей. Я например, забил на FeedBurner и попытался выудить код кнопки с первого попавшегося блога – не тут-то было. Пришлось всё же найти, где оно находится на сервисе и… активировать услугу! Кстати, там же рядом находится куча кнопок типа «подписаться через ваш любимый сервис чтения новостей». И всё это в разделе Publicize – FeedCount и friendly graphic ссылки соответственно.

Шаг 3. Сбор статистики. Используется скрипт, помещается (как правило) в части «head» шаблона блога. На FeedBurner спрятан далеко – даже найти сейчас повторно не могу, но активации не требует, потому привожу здесь код:

<скрипт src='http://feeds.feedburner.com/~s/JustKitich?i=...' type='text/javascript' charset='utf-8'></скрипт>


вместо "..." вставляется адрес текущей заметки, а вместо скрипт script (фича Хабра).

Теперь объясняю: этот текущий адрес нужен, чтобы скрипт знал, откуда его вызывают и заносил соответствующую страницу в статистику. Я же на многих блогах видел ужасы типа из заметок скрипт передаёт ссылку на заметку, а со всех остальных страниц – ссылку на последнюю заметку. ИМХО неправильно как-то. У себя, например повесил следующий код:

<?
if ($page_curr == 'blog') {
if ($id>0)
print "";
else
print "";
}
?>


то есть, скрипт выводим только в блоге (у меня ещё и другие разделы есть), причём в заметках отсылаем адрес заметки, иначе – просто главную блога. Посмотрим, как теперь работать будет.

На этом, собственно, и всё. У меня лично пока вопросов больше нет. Рад, если пригодится хоть кому-то ещё.
Оригинал — тут
Tags:
Hubs:
Total votes 22: ↑4 and ↓18-14
Comments9

Articles