diff options
Diffstat (limited to 'modules/rss/helpers')
-rw-r--r-- | modules/rss/helpers/rss.php | 34 | ||||
-rw-r--r-- | modules/rss/helpers/rss_theme.php | 19 |
2 files changed, 21 insertions, 32 deletions
diff --git a/modules/rss/helpers/rss.php b/modules/rss/helpers/rss.php index 8a7d0c97..81ff175f 100644 --- a/modules/rss/helpers/rss.php +++ b/modules/rss/helpers/rss.php @@ -19,34 +19,18 @@ */ class rss_Core { - static function feed_link($uri) { - $url = url::site("rss/feed/$uri"); - return "<link rel=\"alternate\" type=\"" . rest::RSS . "\" href=\"$url\" />"; - } - /** - * Get all available rss feeds + * Convert a rss feed id into a rss feed url. */ - static function available_feeds($item) { - $feeds = array(); - foreach (module::active() as $module) { - $class_name = "{$module->name}_rss"; - if (method_exists($class_name, "available_feeds")) { - foreach (call_user_func(array($class_name, "available_feeds"), $item) as $feed) { - $feeds[$feed["description"]] = url::site("rss/feed/{$feed['uri']}"); - } - } - } - - return $feeds; + static function url($uri) { + return url::site("rss/feed/$uri"); } - static function feed_data($method, $offset, $limit, $id) { - foreach (module::active() as $module) { - $class_name = "{$module->name}_rss"; - if (method_exists($class_name, $feed)) { - return call_user_func(array($class_name, $feed), $offset, $limit, $id); - } - } + /** + * Return a <link> element for a given rss feed id. + */ + static function feed_link($uri) { + $url = url::site("rss/feed/$uri"); + return "<link rel=\"alternate\" type=\"" . rest::RSS . "\" href=\"$url\" />"; } }
\ No newline at end of file diff --git a/modules/rss/helpers/rss_theme.php b/modules/rss/helpers/rss_theme.php index 52d988bf..3d1b9a29 100644 --- a/modules/rss/helpers/rss_theme.php +++ b/modules/rss/helpers/rss_theme.php @@ -19,17 +19,22 @@ */ class rss_theme_Core { static function sidebar_blocks($theme) { - // @todo this needs to be data driven - if (!$theme->item()) { - return; - } - $block = new Block(); $block->css_id = "gRss"; $block->title = t("Available RSS Feeds"); $block->content = new View("rss_block.html"); - $block->content->feeds = rss::available_feeds($theme->item()); + $block->content->feeds = array(); + foreach (module::active() as $module) { + $class_name = "{$module->name}_rss"; + if (method_exists($class_name, "available_feeds")) { + $block->content->feeds = array_merge( + $block->content->feeds, + call_user_func(array($class_name, "available_feeds"), $theme->item(), $theme->tag())); + } + } - return $block; + if ($block->content->feeds) { + return $block; + } } } |