You are here

function aggregator_page_sources in Drupal 4

Same name and namespace in other branches
  1. 5 modules/aggregator/aggregator.module \aggregator_page_sources()
  2. 6 modules/aggregator/aggregator.pages.inc \aggregator_page_sources()
  3. 7 modules/aggregator/aggregator.pages.inc \aggregator_page_sources()

Menu callback; displays all the feeds used by the aggregator.

1 string reference to 'aggregator_page_sources'
aggregator_menu in modules/aggregator.module
Implementation of hook_menu().

File

modules/aggregator.module, line 1161
Used to aggregate syndicated content (RSS, RDF, and Atom).

Code

function aggregator_page_sources() {
  $result = db_query('SELECT f.fid, f.title, f.description, f.image, MAX(i.timestamp) AS last FROM {aggregator_feed} f LEFT JOIN {aggregator_item} i ON f.fid = i.fid GROUP BY f.fid, f.title, f.description, f.image ORDER BY last DESC, f.title');
  $output = "<div id=\"aggregator\">\n";
  while ($feed = db_fetch_object($result)) {
    $output .= '<h2>' . check_plain($feed->title) . "</h2>\n";

    // Most recent items:
    $list = array();
    if (variable_get('aggregator_summary_items', 3)) {
      $items = db_query_range('SELECT i.title, i.timestamp, i.link FROM {aggregator_item} i WHERE i.fid = %d ORDER BY i.timestamp DESC', $feed->fid, 0, variable_get('aggregator_summary_items', 3));
      while ($item = db_fetch_object($items)) {
        $list[] = theme('aggregator_summary_item', $item);
      }
    }
    $output .= theme('item_list', $list);
    $output .= '<div class="links">' . theme('links', array(
      l(t('more'), 'aggregator/sources/' . $feed->fid),
    )) . "</div>\n";
  }
  $output .= theme('xml_icon', url('aggregator/opml'));
  $output .= '</div>';
  return $output;
}