Concepts
News Aggregator models four things: sources, items, filters, and the ticker.
Source
A source is one RSS or Atom feed registered in the AdminCP. Each source row carries the feed URL, an optional display name, an enabled flag, and a small consecutive-failure counter. Sources that fail repeatedly are auto-disabled when Disable sources after X consecutive errors is set above zero.
| Column | What it stores |
|---|---|
feed_url | The URL the fetcher hits on each cycle. |
name | Display name shown next to items on the public page and in the ticker. |
active | Disabled sources are skipped on fetch. |
error_count | Increments on failed fetches; resets on success. |
Item
An item is one parsed entry pulled from a feed — title, summary, canonical URL, publish date, source ID. Items are deduplicated against existing rows by title similarity (the Duplicate detection threshold option controls how close a match must be).
| State | Meaning |
|---|---|
| Visible | The item passed dedup and every active filter. Shown on the public page and (if eligible) in the ticker. |
| Hidden by admin | An admin toggled the item off from AdminCP > [MC] News Aggregator > News items. |
| Filtered | A keyword filter matched. The item is kept on disk for retention but not surfaced on public pages. |
| Duplicate | The item's title matched an existing item above the threshold. Stored for retention but hidden. |
Visible items are pruned by Retention period. Hidden, filtered, and duplicate items are pruned by Retention period for flagged items, which is independent and typically shorter.
Filter
A filter is a keyword rule that hides matching items at fetch time. Filters compose with each other; an item that matches any active filter is marked filtered.
See filters for operators and matching semantics.
Ticker
The ticker is a horizontal scrolling band of recent visible items rendered at the top of every public page when Enable global news ticker is on. Logged-in users can opt out from their preferences. The ticker reads from a configurable subset of sources (or all sources, if none are explicitly selected), shows up to News ticker items, and cycles at the configured News ticker cycle speed.
A separate widget definition is also available so admins can drop a news block on the homepage or a widget position.
Lifecycle of an item
- The Fetch feeds cron runs. For each active source, the fetcher pulls the feed, parses entries, and walks each entry.
- Each entry's title is compared against existing item titles. If similarity passes the threshold, the entry is stored as a duplicate.
- Active filter rules are evaluated. Any match marks the item filtered.
- Items past Maximum item age are skipped at parse time.
- Items that survive are inserted as visible.
- The Prune news items cron deletes rows older than the relevant retention window.