Index: modules/aggregator/aggregator.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/aggregator/aggregator.module,v
retrieving revision 1.413
diff -u -p -r1.413 aggregator.module
--- modules/aggregator/aggregator.module	7 Jun 2009 02:27:26 -0000	1.413
+++ modules/aggregator/aggregator.module	22 Jun 2009 22:25:48 -0000
@@ -121,14 +121,14 @@ function aggregator_menu() {
     'page callback' => 'drupal_get_form',
     'page arguments' => array('aggregator_admin_remove_feed', 4),
     'access arguments' => array('administer news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
   $items['admin/content/aggregator/update/%aggregator_feed'] = array(
     'title' => 'Update items',
     'page callback' => 'aggregator_admin_refresh_feed',
     'page arguments' => array(4),
     'access arguments' => array('administer news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
   $items['admin/content/aggregator/list'] = array(
     'title' => 'List',
@@ -162,13 +162,13 @@ function aggregator_menu() {
     'title' => 'RSS feed',
     'page callback' => 'aggregator_page_rss',
     'access arguments' => array('access news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
   $items['aggregator/opml'] = array(
     'title' => 'OPML feed',
     'page callback' => 'aggregator_page_opml',
     'access arguments' => array('access news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
   $items['aggregator/categories/%aggregator_category'] = array(
     'title callback' => '_aggregator_category_title',
@@ -202,7 +202,7 @@ function aggregator_menu() {
     'page callback' => 'aggregator_page_source',
     'page arguments' => array(2),
     'access arguments' => array('access news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
   $items['aggregator/sources/%aggregator_feed/view'] = array(
     'title' => 'View',
@@ -229,19 +229,71 @@ function aggregator_menu() {
     'page callback' => 'drupal_get_form',
     'page arguments' => array('aggregator_form_feed', 5),
     'access arguments' => array('administer news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
   $items['admin/content/aggregator/edit/category/%aggregator_category'] = array(
     'title' => 'Edit category',
     'page callback' => 'drupal_get_form',
     'page arguments' => array('aggregator_form_category', 5),
     'access arguments' => array('administer news feeds'),
-    'type' => MENU_CALLBACK,
+    'hidden' => MENU_LINK_DISABLED,
   );
 
   return $items;
 }
 
+
+/** 
+ * Implementaiton of hook_menu_local_task()
+ */
+function aggregator_menu_local_task($item) {
+  $tasks = array();
+
+  // admin/content/aggregator
+  if (count($item['link_map']) >= 3 && $item['link_map'][0] === 'admin' && $item['link_map'][1] === 'content' && $item['link_map'][2] === 'aggregator') {
+    if (user_access('administer news feeds')) {
+      $tasks['admin/content/aggregator'] = array(
+        'title' => 'List',
+        'weight' => -10,
+      );
+      $tasks['admin/content/aggregator/add/feed'] = array(
+        'title' => 'Add feed',
+      );
+      $tasks['admin/content/aggregator/add/category'] = array(
+        'title' => 'Add category',
+      );
+      $tasks['admin/content/aggregator/add/opml'] = array(
+        'title' => 'Import OPML',
+      );
+    }
+  }
+  
+  // aggregator/sources/%
+  if (count($item['link_map']) >= 3 && $item['link_map'][0] === 'aggregator' && $item['link_map'][1] === 'sources' && $item['link_map'][2] === '%') {
+    if (user_access('administer news feeds')) {
+      $aggregator_feed = $item['map'][2];
+      $tasks["aggregator/sources/$aggregator_feed->fid/categorize"] = array(
+        'title' => 'Categorize',
+      );
+      $tasks["aggregator/sources/$aggregator_feed->fid/configure"] = array(
+        'title' => 'Configure',
+        'weight' => 1,
+      );
+    }
+    
+    if (user_access('access news feeds')) {
+      $aggregator_feed = $item['map'][2];
+      $tasks["aggregator/sources/$aggregator_feed->fid"] = array(
+        'title' => 'View',
+        'weight' => -10,
+      );
+    }
+  }
+  
+  return $tasks;
+}
+
+
 /**
  * Menu callback.
  *
