controller_feed

Serve /feed, /feed/:type and /feed/:type/:id with optional search arguments. Types are atom, rss, jsonfeed, json (an alias for JSON Feed), and ics/ical. Calendar feeds default to published, unfinished events ordered by start date.

An id selects a visible saved query, a collection's members, or one resource. The bare /feed uses query_feed, falling back to articles, and accepts only pagination. On typed routes without an id, request arguments define a normal mod_search query. Without search terms or an id, Atom, RSS and JSON Feed routes use the same default selection as /feed. Calendar routes instead select cat=event, is_published=true and unfinished=true, sorted by date_start ascending with ascending id as the tie-breaker. They do not use query_feed. Pagination alone does not change the default selection. Both bare search keys and q-prefixed keys are supported. Page length defaults to 20 and is capped at 100. Client search options are not passed to the search engine. Explicit sorting and saved-query sorting are retained; normal search ACLs apply.

For example, /feed/ics?page=2 returns the second page of upcoming or ongoing published events. Link to it from a template with {% url feed type='ics' %}. Calendar responses use text/calendar and the templates ical/feed_start.tpl and ical/entry.tpl. Their resource links allow mod_import_feed to use native resource import and optional resource WebSub subscriptions.

A selected resource must exist and be visible to the visitor. Responses are served inline and support ETag and Last-Modified conditional requests on the bounded page. See mod_export for bulk exports and format-specific behavior.

Edit on GitHub