function aggregator_menu in Drupal 5
Same name and namespace in other branches
- 4 modules/aggregator.module \aggregator_menu()
- 6 modules/aggregator/aggregator.module \aggregator_menu()
- 7 modules/aggregator/aggregator.module \aggregator_menu()
Implementation of hook_menu().
File
- modules/
aggregator/ aggregator.module, line 30 - Used to aggregate syndicated content (RSS, RDF, and Atom).
Code
function aggregator_menu($may_cache) {
$items = array();
$edit = user_access('administer news feeds');
$view = user_access('access news feeds');
if ($may_cache) {
$items[] = array(
'path' => 'admin/content/aggregator',
'title' => t('News aggregator'),
'description' => t("Configure which content your site aggregates from other sites, how often it polls them, and how they're categorized."),
'callback' => 'aggregator_admin_overview',
'access' => $edit,
);
$items[] = array(
'path' => 'admin/content/aggregator/add/feed',
'title' => t('Add feed'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_form_feed',
),
'access' => $edit,
'type' => MENU_LOCAL_TASK,
);
$items[] = array(
'path' => 'admin/content/aggregator/add/category',
'title' => t('Add category'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_form_category',
),
'access' => $edit,
'type' => MENU_LOCAL_TASK,
);
$items[] = array(
'path' => 'admin/content/aggregator/remove',
'title' => t('Remove items'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_admin_remove_feed',
),
'access' => $edit,
'type' => MENU_CALLBACK,
);
$items[] = array(
'path' => 'admin/content/aggregator/update',
'title' => t('Update items'),
'callback' => 'aggregator_admin_refresh_feed',
'access' => $edit,
'type' => MENU_CALLBACK,
);
$items[] = array(
'path' => 'admin/content/aggregator/list',
'title' => t('List'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
);
$items[] = array(
'path' => 'admin/content/aggregator/settings',
'title' => t('Settings'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_admin_settings',
),
'type' => MENU_LOCAL_TASK,
'weight' => 10,
'access' => $edit,
);
$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,
);
$items[] = array(
'path' => 'aggregator/rss',
'title' => t('RSS feed'),
'callback' => 'aggregator_page_rss',
'access' => $view,
'type' => MENU_CALLBACK,
);
$items[] = array(
'path' => 'aggregator/opml',
'title' => t('OPML feed'),
'callback' => 'aggregator_page_opml',
'access' => $view,
'type' => MENU_CALLBACK,
);
$result = db_query('SELECT title, cid FROM {aggregator_category} ORDER BY title');
while ($category = db_fetch_array($result)) {
$items[] = array(
'path' => 'aggregator/categories/' . $category['cid'],
'title' => $category['title'],
'callback' => 'aggregator_page_category',
'access' => $view,
);
}
}
else {
// Add the CSS for this module
// We put this in !$may_cache so it's only added once per request
drupal_add_css(drupal_get_path('module', 'aggregator') . '/aggregator.css');
if (arg(0) == 'aggregator' && is_numeric(arg(2))) {
if (arg(1) == 'sources') {
$feed = aggregator_get_feed(arg(2));
if ($feed) {
$items[] = array(
'path' => 'aggregator/sources/' . $feed['fid'],
'title' => $feed['title'],
'callback' => 'aggregator_page_source',
'access' => $view,
'type' => MENU_CALLBACK,
);
$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' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_page_source',
),
'access' => $edit,
'type' => MENU_LOCAL_TASK,
);
$items[] = array(
'path' => 'aggregator/sources/' . $feed['fid'] . '/configure',
'title' => t('Configure'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_form_feed',
$feed,
),
'access' => $edit,
'type' => MENU_LOCAL_TASK,
'weight' => 1,
);
}
}
else {
if (arg(1) == 'categories') {
$category = aggregator_get_category(arg(2));
if ($category) {
$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' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_page_category',
),
'access' => $edit,
'type' => MENU_LOCAL_TASK,
);
$items[] = array(
'path' => 'aggregator/categories/' . $category['cid'] . '/configure',
'title' => t('Configure'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_form_category',
$category,
),
'access' => $edit,
'type' => MENU_LOCAL_TASK,
'weight' => 1,
);
}
}
}
}
else {
if (arg(2) == 'aggregator' && is_numeric(arg(5))) {
if (arg(4) == 'feed') {
$feed = aggregator_get_feed(arg(5));
if ($feed) {
$items[] = array(
'path' => 'admin/content/aggregator/edit/feed/' . $feed['fid'],
'title' => t('Edit feed'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_form_feed',
$feed,
),
'access' => $edit,
'type' => MENU_CALLBACK,
);
}
}
else {
$category = aggregator_get_category(arg(5));
if ($category) {
$items[] = array(
'path' => 'admin/content/aggregator/edit/category/' . $category['cid'],
'title' => t('Edit category'),
'callback' => 'drupal_get_form',
'callback arguments' => array(
'aggregator_form_category',
$category,
),
'access' => $edit,
'type' => MENU_CALLBACK,
);
}
}
}
}
}
return $items;
}