RSS Feeds
From KnowledgeTree Document Management Made Simple
Contents |
Introduction
The new RSS Plugin allows users to view and manage internal and external RSS feeds as follows:
Internal Feeds
All documents and folders within the KnowledgeTree repository are indexed as RSS feeds. Users can access this feature by simply browsing through the repository and clicking on the RSS icon in the document/folder actions portlet, for any selected folder or document. This will link to a new page where the feed can be viewed. This link can also be pasted in to any external RSS client.
Another internal RSS feature is that any document or folder that a user subscribes to via the normal subscriptions portlet, is automatically added to their internal RSS list. This list is viewable via the RSS dashlet (this will be discussed later) or from any external RSS client.
External Feeds
External feeds can also be subscribed to and managed via the RSS dashlet. Each user manages their own list of RSS feeds that can be viewed via the dashlet.
The RSS Dashlet
The RSS dashlet serves as a RSS aggregator inside of KnowledgeTree. From here users can view their internal RSS feed (documents/folders they are subscribed to) as well as being able to view their own list of external RSS feeds.
Requirements
In order to view the internal RSS feed, users must be subcribed to at least one folder/document. To view external feeds from the dashboard, users have to subscribe to them via the "Manage External RSS Feeds" link on the RSS dashlet. A feed title and url have to be entered for these external feeds. If the RSS plugin has been enabled, all documents and folders will automatically be accessible via RSS by clicking on the RSS icon found in the actions portlet.
Components
RSS Dashlet
The dashlet displays both the internal RSS feed for documents/folders the current user is subscribed to, as well as a list of external RSS feeds the current user has created. The external feeds are viewed one at a time and can be cycled through via a list drop down box at the top of the dashlet. Users can manage this list of external feeds via a link on the dashlet that leads to the RSS Management page.
RSS Management Page
From this page, users can create, update and delete links to external RSS feeds. For each external feed, a title for and a URL to the feed must be specified.
RSS Actions
While browsing the repository, users can select the RSS feed link for current document/folder. This link is made up of two components, namely, a text portion and an icon portion. The first part of the link is the "RSS" text portion. By clicking on this link the user is directed to the RSS information page. The second section of the link is made up of the default RSS icon image which, when clicked, will open a browser window linking directly to the RSS feed for the current document.
RSS Link Information Page
On this page, the user can view the link to the feed for the currently selected document/folder as well as a brief explanation of how to use the RSS link inside of KnowledgeTree.
Security
When users access the KnowledgeTree RSS via an external client or browser, user details have to be verified in order to ensure that documents/folders are only accessable by users who have the required permission rights.
This is ensured via HTTP Authentication. The user is prompted for the username and password they use to log into KnowledgeTree and if the correct details are entered, the user is authenticated against their permission rights and if they have viewing rights for the selected document/folder, they allowed access to the RSS feed.
Functional Dependencies
The internal RSS feed viewed on the dashboard is dependent on the subscriptions functionality inside of KnowledgeTree. When users subscribe to documents and/or folders via the subscriptions portlet inside of the repository, the RSS plugin feeds off of this table to build it own RSS listing.
Another functional dependency of the RSS plugin is the permissions structures inside of Knowledge. For users to link to documents and folders via RSS, they are required to have the necessary permissions to view details on them. The RSS plugin relies on the permissions structures to authenticate users.
Database Requirements
For the purpose of storing the information for all external feeds, the following table is added to the database:
- plugin_rss
- Fields
| Field | Description |
| id | Primary Key |
| user_id | Foreign Key: users.id |
| url | URL to the RSS feed |
| title | Feed Title |
Database Dependencies
Tables that are sourced by the RSS plugin:
- document_subscription: used to get a listing of the documents a user is subcribed to.
- folder_subscriptions: used to get a listing of the folders a user is subcribed to.
- users: linked to via a foreign key to link a saved external feed to a user.
- permission_*: accessed via the permission objects to verify user permissions for documents and folders.
Implementation
RSSPlugin
Class to register all plugin components.
KTrss
This is a helper class defining various functions for getting the list of extenal feeds saved for the current user, validating user permissions, converting document/folder arrays to rss compliant xml, etc.
ManageRSSFeedsDispatcher
This is the External Feed management page.
rss2array
This is used to convert a RSS feed (xml) into an associative array.
RSSDashlet
The dashlet for viewing external and internal feeds.
RSSDocumentLinkAction
Document action for RSS feed.
RSSFolderLinkAction
Folder action for RSS feed.
Testing Criteria
- Subscribing to a document should add the document to the user's internal RSS feed.
- Creating, editing and deleting of external feeds should be possible.
- External feeds should be viewable from the RSS dashlet.
- If the plugin has been enabled, all documents and folders should be accessible via RSS link actions.
- When users unsubscribe from documents, the document should not be in their internal feed.
del.icio.us
reddit

