Same name and namespace in other branches
  1. 4.7.x modules/aggregator.module \aggregator_menu()
  2. 5.x modules/aggregator/aggregator.module \aggregator_menu()
  3. 6.x modules/aggregator/aggregator.module \aggregator_menu()
  4. 7.x modules/aggregator/aggregator.module \aggregator_menu()

Implementation of hook_menu().

File

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

Code

function aggregator_menu($may_cache) {
  $items = array();
  if ($may_cache) {
    $edit = user_access('administer news feeds');
    $view = user_access('access news feeds');
    $items[] = array(
      'path' => 'admin/aggregator',
      'title' => t('aggregator'),
      'callback' => 'aggregator_admin_overview',
      'access' => $edit,
    );
    $items[] = array(
      'path' => 'admin/aggregator/edit/feed',
      'title' => t('edit feed'),
      'callback' => 'aggregator_admin_edit_feed',
      'access' => $edit,
      'type' => MENU_CALLBACK,
    );
    $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/remove',
      'title' => t('remove items'),
      'callback' => 'aggregator_admin_remove_feed',
      'access' => $edit,
      'type' => MENU_CALLBACK,
    );
    $items[] = array(
      'path' => 'admin/aggregator/update',
      'title' => t('update items'),
      'callback' => 'aggregator_admin_refresh_feed',
      'access' => $edit,
      'type' => MENU_CALLBACK,
    );
    $items[] = array(
      'path' => 'admin/aggregator/list',
      'title' => t('list'),
      'type' => MENU_DEFAULT_LOCAL_TASK,
      'weight' => -10,
    );
    $items[] = array(
      'path' => 'admin/aggregator/add/feed',
      'title' => t('add feed'),
      'callback' => 'aggregator_admin_edit_feed',
      'access' => $edit,
      'type' => MENU_LOCAL_TASK,
    );
    $items[] = array(
      'path' => 'admin/aggregator/add/category',
      'title' => t('add category'),
      'callback' => 'aggregator_admin_edit_category',
      'access' => $edit,
      'type' => MENU_LOCAL_TASK,
    );
    $items[] = array(
      'path' => 'aggregator',
      'title' => t('news aggregator'),
      'callback' => 'aggregator_page_last',
      'access' => $view,
      'weight' => 5,
    );
    $items[] = array(
      'path' => 'aggregator/sources',
      'title' => t('sources'),
      'callback' => 'aggregator_page_sources',
      'access' => $view,
    );
    $items[] = array(
      'path' => 'aggregator/categories',
      'title' => t('categories'),
      'callback' => 'aggregator_page_categories',
      'access' => $view,
      'type' => MENU_ITEM_GROUPING,
    );

    // Sources:
    $result = db_query('SELECT title, fid FROM {aggregator_feed} ORDER BY title');
    while ($feed = db_fetch_object($result)) {
      $items[] = array(
        'path' => 'aggregator/sources/' . $feed->fid,
        'title' => $feed->title,
        'callback' => 'aggregator_page_source',
        'access' => $view,
      );
      $items[] = array(
        'path' => 'aggregator/sources/' . $feed->fid . '/view',
        'title' => t('view'),
        'type' => MENU_DEFAULT_LOCAL_TASK,
        'weight' => -10,
      );
      $items[] = array(
        'path' => 'aggregator/sources/' . $feed->fid . '/categorize',
        'title' => t('categorize'),
        'callback' => 'aggregator_page_source',
        'access' => $edit,
        'type' => MENU_LOCAL_TASK,
      );
      $items[] = array(
        'path' => 'aggregator/sources/' . $feed->fid . '/configure',
        'title' => t('configure'),
        'callback' => 'aggregator_edit',
        'access' => $edit,
        'type' => MENU_LOCAL_TASK,
        'weight' => 1,
      );
    }

    // Categories:
    $result = db_query('SELECT title, cid FROM {aggregator_category} ORDER BY title');
    while ($category = db_fetch_object($result)) {
      $items[] = array(
        'path' => 'aggregator/categories/' . $category->cid,
        'title' => $category->title,
        'callback' => 'aggregator_page_category',
        'access' => $view,
      );
      $items[] = array(
        'path' => 'aggregator/categories/' . $category->cid . '/view',
        'title' => t('view'),
        'type' => MENU_DEFAULT_LOCAL_TASK,
        'weight' => -10,
      );
      $items[] = array(
        'path' => 'aggregator/categories/' . $category->cid . '/categorize',
        'title' => t('categorize'),
        'callback' => 'aggregator_page_category',
        'access' => $edit,
        'type' => MENU_LOCAL_TASK,
      );
      $items[] = array(
        'path' => 'aggregator/categories/' . $category->cid . '/configure',
        'title' => t('configure'),
        'callback' => 'aggregator_edit',
        'access' => $edit,
        'type' => MENU_LOCAL_TASK,
        'weight' => 1,
      );
    }
    $items[] = array(
      'path' => 'aggregator/opml',
      'title' => t('opml'),
      'callback' => 'aggregator_page_opml',
      'access' => $view,
      'type' => MENU_CALLBACK,
    );
  }
  return $items;
}