|
|
|
| А кто что знает о лентах новостях? RSS каков вообще принцип действия? | |
|
|
|
|
|
|
|
|
для: cheops
(13.01.2005 в 14:58)
| | Эх за кого же вы меня принемаете =Р Что же я не могу посикать?
Нет мне интересно как самому делать а не тырить =Р | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 15:14)
| | Новости эти представлены в виде xml-файла, его следует разобрать либо вручную, например, при помощи регулярных выражений, либо воспользовавшись расширением для работы с XML-файлами. | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 15:14)
| | Вот пример rss-файла, который создает разработанная мною система экспорта новостей. | |
|
|
|
|
|
|
|
для: antf
(13.01.2005 в 19:07)
| | Я уже отрыл инфу =) Сам сделать rss новостей.
Все работает.
Забавно =)
И кстати если пользоваться Opera в качестве rss агента , то ей можно задовать проерку в периодичностью 5 мин =Р
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 14:50)
| | Сейчас попробую написать о том, как построить RSS-файл. Подождите. | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 14:50)
| | Вот, наконец-то, закончил. Представляю вам примерный рецепт создания rss-файла.
Если Вы хотите экспортировать информацию в формате RSS, то тут надо разобраться со значением каждого тега. Вот необходимая информация, которая поможет собрать rss-файл для экспорта на яндекс (для экспорта новостей на другие сайты формат файла может немного отличаться):
Вначале нужно добавить заголовок XML, который включает информацию о версии xml, а также кодировку (если кодировка не указана, считается, что новости представляются в кодировке utf-8). Также следует преобразовать все специальные символы во всех элементах rss-файла (функция htmlspecialchars()).
Пример заголовка:
<?xml version="1.0" encoding="windows-1251" ?>.
Корневым элементов rss-файла является тэг <rss> с указанием текущей версии и адреса сайта, на который экспортируются новости. В данном случае – это версия 2.0.
<rss version="2.0" xmlns:yandex='http://news.yandex.ru' >
Внутри элемента rss должен находится элемент <channel>, который содержит в себе некоторую служебную информацию и сами новости. Вот его структура:
<title> - название сайта-источника новостей.
Пример: <title>Ярославские новости</title>
Если Вы экспортируете новости только определенного типа, то нужно это отразить в заголовке.
Пример: <title>Ярославские новости: культура</title>
<link> - адрес сайта, с которого транслируются новости.
Например, <link>http://www.yarnews.ru</link>
<description> - описание сайта-источника. Одно предложение. Пример:
<description>Региональное информационное агентство 'РИА-Ярославль' </description>
Далее можно вставить картинку с логотипом издания. (Я при создании системы экспорта новостей данную возможность не использовал). Это делается при помощи элемента <image>, который в свою очередь включает тэги <url> - адрес картинки (будет в атрибуте alt), <title> - еще раз название сайта-источника, <link> - еще раз адрес сайта-источника. Пример:
<image>
<url>www.mysite.ru/logo.gif
<title>Новости моего сайта</title>
<link>www.mysite.ru</link>
</image>
|
Логотип должен иметь большую ширину, чем высоту. Желательный размер 100-200 px
После того, как мы внесли всю служебную информацию, нужно добавлять сами новости. Их атрибуты заключаются в пару тегов <item></item>:
<title> - заголовок новости. Не допускается написание заголовка прописными буквами. Не допускается наличие точки в конце заголовка. В заголовке не должно быть ничего лишнего типа даты/времени сообщения и всяких неинформативных оборотов: обновлено, сенсация!!!!!!!!, срочно!!!.
Пример <title>Подводники поблагодарили Виктора Волончунаса</title>
<link> - адрес новости.
Пример: <link>http://www.mynewssite.ru/news/1293</link>
<description> - аннотация сообщения. Добавлять необязательно
Пример: <description>Благодарственное письмо мэру Ярославля Виктору Волончунасу пришло с Северного флота, от моряков-подводников - экипажа дизельной подводной лодки "Ярославль", с которой наш город много лет поддерживает добрые шефские связи.</description>
<author> - автор сообщения. Добавлять необязательно
<category> - рубрика сообщения. Добавлять необязательно. Одному сообщению – одна рубрика.
Пример: <category>власть</category>
<enclosure> - элемент для иллюстраций и видеофайлов. Необязателен. В одном элементе <item> может содержаться несколько таких элементов.
Пример <enclosure rl="http://www.mynewssite.ru/news1234/img.jpg" type="image/jpeg"/>
<pubDate> - Время публикации новости в формате RFC-822. Пример: <pubDate>Thu, 14 Oct 2004 15:53:00 +0300</pubDate>
<yandex:full-text> Полный текст сообщения сообщения. Обязателен.
Механизм экспорта: для экспорта новостей необходимо выложить rss-файл на сервер и обновлять его с определенной периодичностью. Файл должен быть доступен по http, его индексирование происходит каждые 10 мин. Файл, которые не удалось загрузить за 10 секунд, считается недоступным. | |
|
|
|
|
|
|
|
для: antf
(13.01.2005 в 18:54)
| | Здорово!
А не возражаете если мы это описание в статьи "засунем"? Многим интересно будет почитать. А то в форуме не всегда можно найти. | |
|
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 22:40)
| | Прежде чем публиковать ту статью =) Надо ее отшлифовать ;)
<url> картинка должна закрываться </url>
|
Так же хочу заметить ,что rss несколько версий =)
Если кому надо могу еще линков по теме приложить ;) | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 22:51)
| | Да, для своих нужд пишу RSS для LiteForum.
Если надо выложу как сделаю ;) | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 23:15)
| | Классно, надо - а принцип действия его какой?
PS Смайлики прекрасно прижились на внутреннем форуме, где они обкатываются, в следующей версии LiteForum скорее всего будет полная поддержка смайликов, с возможностью их включения и выключения в системе администрирования. | |
|
|
|
|
|
|
|
для: cheops
(13.01.2005 в 23:23)
| | Рад слышать =) Я еще тут постепенно скин форума под себя делаб =))
А RSS просто =) Последние 25 тем на форуме =)
Очень я считаю удобным.
А то замучался заходить на сайт , а там нет сообщений =Р
Сразу говорю заточка будет на Opera =)
Как вы не знали? В Opera есть встроенный клиент rss =)
При обнавлении автоматически всплывает подсказка о том что на rss сайта обнавлен =) | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 16:42)
| | >Как вы не знали? В Opera есть встроенный клиент rss =)
/*с интересом просматривая менюшки*/ а где и как пользоваться? | |
|
|
|
|
|
|
|
для: cheops
(14.01.2005 в 16:57)
| | 1-ый вариант зайдти на rss страницу. Пр: http://news.yandex.ru/index.rss
Opera запросит сообщение добавить ли страницу в ленту новостей. Ответим положительно.
2 -ой вариант Панель - Почта - Ленты новостей-Правый клик-добавить-вводим адрес rss файла. | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 17:20)
| | Да забыл спросить. Как вы определяете сколько не прочитанный сообщений для конкретного пользователя? | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 17:31)
| | Это осуществляется по временным отметкам time и last_time в таблице authors.
time — время последнего посещения посетителем форума, это поле обновляется при авторизации, и просмотре страниц форума, при ответах на сообщение;
last_time — время предыдущего последнего посещения, необходимое для вывода новых сообщений с момента последнего посещения участником форума; Поле last_time обновляется лишь в том случае, если с момента последнего обращения прошло более 20 минут. При этом оно получает значение равное предыдущему значению time. Такой механизм необходим для того, чтобы в течение одного сеанса просмотра (сопровождающегося активным просмотром страниц и ответом на сообщения), посетитель видел все новые сообщения форума. После прекращения сеанса, т.е. отсутствия активности посетителя более 20 минут ему будет предоставлена информация об новых сообщениях, появившихся с момента его последнего обращения к форуму.
Поле last_time извлекается в utils/topforum.php в переменную $lasttime для зарегистрированного посетителя, для не зарегистрированного постетителя эта переменная принимает значение текущего времени за вычетом двух часов. Далее если сообщение имеет дату меньше чем $lasttime - оно старое, если больше - новое. | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 17:20)
| | Хм... у меня наверное Opera старая, чего-то ничего не наблюдаю, какая верисия нужна? | |
|
|
|
|
|
|
|
для: cheops
(14.01.2005 в 17:34)
| | у меня 8 версия =) А вы попробуйте открыть rss адрес =) Тогда все само должно =) | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 18:13)
| | Не у меня на древней 7.11 вываливается просто содержимое страницы...
PS Надо будет занятся софтом, когда до жирного канала доберусь... | |
|
|
|
|
|
|
|
для: cheops
(14.01.2005 в 18:45)
| | Странные дела творяться =/
Сделал генерацию rss. Opera отказываеться читать =/ Пишу в xml статически. Все читает.
RSS Клиент видет все ок и в генерации и так =\ | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 19:09)
| | У меня родилась идея смены имени форума =) Как на это смотрите?
ИМХО LiteForum хорошь для внутренного названиея =Р | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 19:15)
| | У вас в бд themes имеет ячейку и именем поста (name), так же posts имеет такуб таблицу.
Запрос такой
SELECT posts.name, posts.author, posts.id_theme, themes.id_forum, themes.name
FROM posts, themes, forums
WHERE posts.id_theme = themes.id_theme
AND themes.id_forum = forums.id_forum
LIMIT 0 , 25
|
И как мне достать название топика?
Выводиться только содержимое топика. | |
|
|
|
|
|
|
|
для: Akira
(14.01.2005 в 19:36)
| | Тема уже слишком длинная, да и не по теме обсуждение уже идёт... отвечу в форуме о форуме.
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=1521 | |
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 22:51)
| | >Прежде чем публиковать ту статью =) Надо ее отшлифовать ;)
Благодарю за замеченный недочет
>Так же хочу заметить ,что rss несколько версий =)
>Если кому надо могу еще линков по теме приложить ;)
Да,неплохо бы :) Я лично, когда создавал модули, работающие с RSS, спецификации не нашел, видно плохо искал :), правда у меня были копии с требованиями к экспортным файлам RSS, которые принимает Яндекс. Я их и использовал при создании данного сообщения. Эту информацию можно найти по адресу http://partner.news.yandex.ru/agreement.pdf, но, к сожалению, этот ресурс запаролен, правда секретной информации и корпоративной тайны тут нет. Дословно его не цитировал, примеры приводил полностью свои, но все же многое оттуда подчерпнул. | |
|
|
|
|
|
|
|
для: antf
(13.01.2005 в 23:30)
| | В принципе данная статья вместе с примером ориентирована на создание экспортного файла для Яндекса, который имеет свои особенности построения: отстутствие некоторых тегов, наличие тега <yandex:full-text>, особые требования к оформлению информации. Как видите, принципы его оформления несколько отличаются от официальной спецификации. Если нет никаких препятствий, связанных с тем, что я использовал источник, находящийся в запароленной директории, а также если не мешает тот факт, что формат rss-файла для Яндекса немного отличается от официальной спецификации (хотя отличие от официальной спецификации может являться признаком уникальности:), то в принципе можно оформить данное сообщение в отдельную статью вместе с примером в качестве реальной иллюстрации. Примерное название: "Структура rss-файла для экспорта новостей на http://news.yandex.ru" | |
|
|
|
|
|
|
|
для: antf
(13.01.2005 в 23:33)
| | Ой, а ведь он вовсе не запаролен. Это мне так сказали при передаче копий, а я поверил. Правда там только текст самого соглашения, а приложения №1, которое я использовал там нет. | |
|
|
|
|
|
|
|
для: antf
(13.01.2005 в 23:43)
| | Ммм… Конечно, приятно, когда после двух месяцев изучения web-программирования вообще и языка PHP в частности, ты уже создал систему импорта и эскпорта новостей в формате RSS серьезного и сложного в плане кода новостного сайта, спроектировал его внутреннюю баннерную систему, сделал простенький по декору сайт, с довольно сложной системой Backoffice, а тут еще предлагают на авторитетном сайте опубликовать твою статью. Но все же я должен признать, что статья из этого материала получается слабой. Во-первых тема слишком узкая. Далеко не всех посетителей заинтересует формат rss-файла, который принимает Яндекс, а кому это понадобится, те, я думаю, в первую очередь отправят письмо администраторам сайта http://news.yandex.ru, и необходимая информация охотно им будет выдана. Во-вторых, данный материал представляет собой вольное изложение одного документа. Я понимаю, что для того, чтобы представить что-нибудь своими словами и привести свои примеры, тоже нужны мозги, но статья получается намного интереснее, читабильнее, живее, когда в ней заключается какое-нибудь исследование, новый материал или, на худой конец, обобщение информации из нескольких источников. Такие вещи по-настоящему являются уникальными, и поэтому ценными. Вот если бы я сначала рассмотрел RSS в общем, затем перешел к особенностям употребления тегов (то есть какие теги, перечисленные в официальной спецификации используются чаще всего, а какие может быть, используются реже, а какие вообще не используются, сюда попали бы и новые теги, изобретенные экспортерами новостей), рассмотрел общие тенденции построения rss-файла (правила комбинирования элементов), а затем вывел бы общие рекомендации по построению rss-файла, исходя из уже имеющегося опыта, в заключение привел бы несколько различных примеров построения экспортного файла (можно было бы включить и этот). И, в довершение ко всему, сделал бы все это на материале нескольких источников, в том числе английских, французских и немецких, тогда бы было похоже на дело, и рядом с заголовком статьи нестыдно было поставить свое имя и фамилию. Так что со статьей пока повременим, а сообщение в теме пускай будет. | |
|
|
|
|
|
|
|
для: antf
(14.01.2005 в 04:40)
| | > Но все же я должен признать, что статья из этого материала получается слабой. Во-первых тема слишком узкая. Далеко не всех посетителей заинтересует формат rss-файла, который принимает Яндекс
Я, конечно, понимаю, что ничего сложного в RSS нет. Но так как времени (и необходимости) детально посмотреть на RSS у меня не было, то мне было-бы просто приятно почитать в общих словах — что это такое и из чего это состоит. Т.е. это был бы формат не подробной статьи, рассматривающей все возможные вопросы, а формат: "Краткое введение в тему". Это тоже интересно.
> Кому это понадобится, те, я думаю, в первую очередь отправят письмо администраторам сайта http://news.yandex.ru...
Кому понадобится могут залезь в поисковик и найдут все что им нужно :)
Точно также можно было рассуждать: кому понадобится PHP могут купить книгу и выучить PHP :)
> но статья получается намного интереснее, читабильнее, живее, когда в ней заключается какое-нибудь исследование, новый материал или, на худой конец, обобщение информации из нескольких источников. Такие вещи по-настоящему являются уникальными, и поэтому ценными. Вот если бы я сначала рассмотрел RSS в общем, затем перешел к особенностям употребления
Так то оно так. Но иногда, а порой и зачастую — лучшее враг хорошего.
Если все же надумаете написать большую и подробную статью, то мы с удовольствие ее опубликуем у себя на сайте. | |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(14.01.2005 в 11:35)
| | а если нету некакого Rss файла на сайте с которого я хочю стинуть инфу а вся инфа к примеру в ручную или по средствам админ панели из Sql выводить в обычный html реально ли зделать Ленту новостей из таких сайтов? | |
|
|
|
|
|
|
|
|
для: Akira
(13.01.2005 в 14:50)
| | А что делать если на хостинге запрещено открывать внешние файлы или используя функцию fopen открывать URL. Т.е allow_url_fopen = Off???
Р.S: Спасибо за RSS читалку, а может к ней прикрутить такую весч:
1. Сначала, надо проверить обновился ли RSS файл
2. Если обновился по записать его в new.rss уже на сервере.
3. Если нет, то прочитать файл new.rss | |
|
|
|
|
|
|
|
для: KR0k
(04.10.2005 в 18:41)
| | Менять хост на тот, которые поддерживает загрузку файлов с внешних хостов. | |
|
|
|
|
|
|
|
для: cheops
(05.10.2005 в 00:29)
| | Если бы это было возможно......
Мне этот горе хостер прислал следующий код:
<?php
$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30); if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.example.com\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>
|
Только вот как потом разпарсить, я незнаю | |
|
|
|