Проблема функционирования RSS - PullRequest
0 голосов
/ 06 февраля 2011

Мне нужно создать RSS-канал для нашей информационной системы, который написан на PHP.У меня не было проблем ни со спецификацией RSS 2.0, ни с созданием генератора RSS-каналов.Элементы для канала должны выбираться из большой таблицы, содержащей много записей, поэтому для получения всей необходимой информации из этой таблицы потребуется много времени.Поэтому необходимо реализовать следующую схему:

  1. Чтобы показать 5 последних элементов новым подписчикам.
  2. Для существующих подписчиков - показать только те элементы, которые были добавлены с тех пор.их последнее представление канала.

У меня нет проблем с первым условием: я могу просто использовать предложение LIMIT, чтобы ограничить количество извлекаемых строк.Примерно так:

$items = function_select(“SELECT * FROM some_table ORDER BY date DESC LIMIT 5);

Но это создает следующую проблему: Предположим, есть настоящие подписчики на фиды, которые уже прочитали статьи с 1 по 10. После того, как они отсутствовали в течение некоторого периода времени, новыепредметы были созданы;скажем, 10 новых предметов.

Во время следующей регистрации мы хотим, чтобы они увидели все новые 10 предметов, но не все сразу.Они увидят только последние 5 (от 16 до 20), но не все 10 из них.Пункты от 11 до 15 будут опущены.

Я полагаю, что для успешного решения этой проблемы должен быть своего рода флаг, который нужно отправить на фид.Например: pubDate последнего загруженного элемента. лента Twitter использует нечто подобное.Однако эта ссылка сделана вручную.Как это можно сделать по-другому?Пожалуйста, дайте мне знать, если у вас есть идеи.Если у вас есть готовый пример (не важно на каком языке), просто поделитесь ссылкой со мной.Я был бы очень признателен.

Заранее спасибо.

1 Ответ

1 голос
/ 07 февраля 2011

Стандартные RSS-каналы не отображают разный контент для разных пользователей.Они просто всегда предоставляют самые последние элементы (часто 10) и полагаются на программу чтения RSS, чтобы опросить их достаточно часто, чтобы они не пропустили никаких обновлений.Если у вас нет особо веской причины не делать этого, это самый простой и эффективный механизм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...