diff --git a/modules/aggregator.module b/modules/aggregator.module index df6a53ed717418ad31d2854165b8693852df3011..772cffde84d24e53758dc2bb59b8103d34369328 100644 --- a/modules/aggregator.module +++ b/modules/aggregator.module @@ -75,6 +75,7 @@ function aggregator_menu($may_cache) { 'title' => t('list'), 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10); + $items[] = array('path' => 'aggregator', 'title' => t('news aggregator'), 'callback' => 'aggregator_page_last', @@ -99,6 +100,14 @@ function aggregator_menu($may_cache) { '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 { if (arg(0) == 'aggregator' && is_numeric(arg(2))) { @@ -106,9 +115,10 @@ function aggregator_menu($may_cache) { $feed = aggregator_get_feed(arg(2)); if ($feed) { $items[] = array('path' => 'aggregator/sources/'. $feed['fid'], - 'title' => $feed->title, + 'title' => $feed['title'], 'callback' => 'aggregator_page_source', - 'access' => $view); + 'access' => $view, + 'type' => MENU_CALLBACK); $items[] = array('path' => 'aggregator/sources/'. $feed['fid'] .'/view', 'title' => t('view'), 'type' => MENU_DEFAULT_LOCAL_TASK, @@ -130,10 +140,6 @@ function aggregator_menu($may_cache) { else if (arg(1) == 'categories') { $category = aggregator_get_category(arg(2)); if ($category) { - $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, @@ -1254,8 +1260,9 @@ function aggregator_page_categories() { function theme_aggregator_feed($feed) { $output = '<div class="feed-source">'; $output .= theme('feed_icon', $feed->url) ."\n"; - $output .= $feed->image . ' <h3 class="feed-title"><a href="'. check_url($feed->link) .'">'. check_plain($feed->title) ."</a></h3>\n"; - $output .= '<div class="feed-description"><em>'. t('Description:') .'</em> '. aggregator_filter_xss($feed->description) ."</div>\n"; + $output .= $feed->image; + $output .= '<div class="feed-description">'. aggregator_filter_xss($feed->description) ."</div>\n"; + $output .= '<div class="feed-url"><em>'. t('URL:') .'</em> '. l($feed->link, $feed->link, array(), NULL, NULL, TRUE) ."</div>\n"; $updated = t('%time ago', array('%time' => format_interval(time() - $feed->checked))); if (user_access('administer news feeds')) { diff --git a/modules/aggregator/aggregator.module b/modules/aggregator/aggregator.module index df6a53ed717418ad31d2854165b8693852df3011..772cffde84d24e53758dc2bb59b8103d34369328 100644 --- a/modules/aggregator/aggregator.module +++ b/modules/aggregator/aggregator.module @@ -75,6 +75,7 @@ function aggregator_menu($may_cache) { 'title' => t('list'), 'type' => MENU_DEFAULT_LOCAL_TASK, 'weight' => -10); + $items[] = array('path' => 'aggregator', 'title' => t('news aggregator'), 'callback' => 'aggregator_page_last', @@ -99,6 +100,14 @@ function aggregator_menu($may_cache) { '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 { if (arg(0) == 'aggregator' && is_numeric(arg(2))) { @@ -106,9 +115,10 @@ function aggregator_menu($may_cache) { $feed = aggregator_get_feed(arg(2)); if ($feed) { $items[] = array('path' => 'aggregator/sources/'. $feed['fid'], - 'title' => $feed->title, + 'title' => $feed['title'], 'callback' => 'aggregator_page_source', - 'access' => $view); + 'access' => $view, + 'type' => MENU_CALLBACK); $items[] = array('path' => 'aggregator/sources/'. $feed['fid'] .'/view', 'title' => t('view'), 'type' => MENU_DEFAULT_LOCAL_TASK, @@ -130,10 +140,6 @@ function aggregator_menu($may_cache) { else if (arg(1) == 'categories') { $category = aggregator_get_category(arg(2)); if ($category) { - $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, @@ -1254,8 +1260,9 @@ function aggregator_page_categories() { function theme_aggregator_feed($feed) { $output = '<div class="feed-source">'; $output .= theme('feed_icon', $feed->url) ."\n"; - $output .= $feed->image . ' <h3 class="feed-title"><a href="'. check_url($feed->link) .'">'. check_plain($feed->title) ."</a></h3>\n"; - $output .= '<div class="feed-description"><em>'. t('Description:') .'</em> '. aggregator_filter_xss($feed->description) ."</div>\n"; + $output .= $feed->image; + $output .= '<div class="feed-description">'. aggregator_filter_xss($feed->description) ."</div>\n"; + $output .= '<div class="feed-url"><em>'. t('URL:') .'</em> '. l($feed->link, $feed->link, array(), NULL, NULL, TRUE) ."</div>\n"; $updated = t('%time ago', array('%time' => format_interval(time() - $feed->checked))); if (user_access('administer news feeds')) {