Page callback: Displays all the categories used by the aggregator.
function aggregator_page_categories() {
$result = db_query('SELECT c.cid, c.title, c.description FROM {aggregator_category} c LEFT JOIN {aggregator_category_item} ci ON c.cid = ci.cid LEFT JOIN {aggregator_item} i ON ci.iid = i.iid GROUP BY c.cid, c.title, c.description');
$output = '';
foreach ($result as $category) {
$aggregator_summary_items = config('aggregator.settings')
->get('source.list_max');
if ($aggregator_summary_items) {
$summary_items = array();
$items = db_query_range('SELECT i.title, i.timestamp, i.link, f.title as feed_title, f.link as feed_link FROM {aggregator_category_item} ci LEFT JOIN {aggregator_item} i ON i.iid = ci.iid LEFT JOIN {aggregator_feed} f ON i.fid = f.fid WHERE ci.cid = :cid ORDER BY i.timestamp DESC', 0, $aggregator_summary_items, array(
':cid' => $category->cid,
));
foreach ($items as $item) {
$summary_items[] = theme('aggregator_summary_item', array(
'item' => $item,
));
}
}
$category->url = url('aggregator/categories/' . $category->cid);
$output .= theme('aggregator_summary_items', array(
'summary_items' => $summary_items,
'source' => $category,
));
}
return theme('aggregator_wrapper', array(
'content' => $output,
));
}