Page callback: Generates an RSS 0.92 feed of aggregator items or categories.
function aggregator_page_rss() {
$result = NULL;
$rss_config = config('system.rss');
// arg(2) is the passed cid, only select for that category.
if (arg(2)) {
$category = db_query('SELECT cid, title FROM {aggregator_category} WHERE cid = :cid', array(
':cid' => arg(2),
))
->fetchObject();
$result = db_query_range('SELECT i.*, f.title AS ftitle, f.link AS flink FROM {aggregator_category_item} c LEFT JOIN {aggregator_item} i ON c.iid = i.iid LEFT JOIN {aggregator_feed} f ON i.fid = f.fid WHERE cid = :cid ORDER BY timestamp DESC, i.iid DESC', 0, $rss_config
->get('items.limit'), array(
':cid' => $category->cid,
));
}
else {
$category = NULL;
$result = db_query_range('SELECT i.*, f.title AS ftitle, f.link AS flink FROM {aggregator_item} i INNER JOIN {aggregator_feed} f ON i.fid = f.fid ORDER BY i.timestamp DESC, i.iid DESC', 0, $rss_config
->get('items.limit'));
}
$feeds = $result
->fetchAll();
return theme('aggregator_page_rss', array(
'feeds' => $feeds,
'category' => $category,
));
}