--- shs/drupal-cvs/modules/aggregator.module 2005-03-03 21:00:01.000000000 +0000 +++ shs/site/modules/aggregator.module 2005-03-15 09:55:21.571878824 +0000 @@ -111,6 +111,9 @@ $items[] = array('path' => 'admin/aggregator/edit/category', 'title' => t('edit category'), 'callback' => 'aggregator_admin_edit_category', 'access' => $edit, 'type' => MENU_CALLBACK); + $items[] = array('path' => 'admin/aggregator/updateall', 'title' => t('update all'), + 'callback' => 'aggregator_admin_refresh_feed_all', 'access' => $edit, + 'type' => MENU_CALLBACK); $items[] = array('path' => 'admin/aggregator/remove', 'title' => t('remove items'), 'callback' => 'aggregator_admin_remove_feed', 'access' => $edit, 'type' => MENU_CALLBACK); @@ -706,6 +709,9 @@ $output .= '

'. t('Feed overview') .'

'; + // link to update all feeds immediately + $output .= '

'.l(t('Update all feeds now'), 'admin/aggregator/updateall').'

'; + $header = array(t('Title'), t('Items'), t('Last update'), t('Next update'), array('data' => t('Operations'), 'colspan' => '3')); $rows = array(); while ($feed = db_fetch_object($result)) { @@ -846,6 +852,20 @@ } /** + * Menu callback; refreshes all feeds, then redirects to the overview page. + */ +function aggregator_admin_refresh_feed_all() { + // get all feeds + $feeds = db_query('SELECT f.* AS items FROM {aggregator_feed} f LEFT JOIN {aggregator_item} i ON f.fid = i.fid GROUP BY f.fid, f.title, f.url, f.refresh, f.checked, f.link, f.description, f.etag, f.modified, f.image, f.block ORDER BY f.title'); + + // refresh each feed in turn + while ($feed = db_fetch_object($feeds)) { + aggregator_refresh(aggregator_get_feed($feed->fid)); + } + drupal_goto('admin/aggregator'); +} + +/** * Menu callback; displays the aggregator administration page. */ function aggregator_admin_overview() {