diff options
Diffstat (limited to 'modules/rss/helpers')
-rw-r--r-- | modules/rss/helpers/rss.php | 29 | ||||
-rw-r--r-- | modules/rss/helpers/rss_theme.php | 12 |
2 files changed, 31 insertions, 10 deletions
diff --git a/modules/rss/helpers/rss.php b/modules/rss/helpers/rss.php index b320aeae..1d30425f 100644 --- a/modules/rss/helpers/rss.php +++ b/modules/rss/helpers/rss.php @@ -27,4 +27,33 @@ class rss_Core { static function tag_feed($tag) { return url::site("rss/tags/$tag->id}"); } + + /** + * Get all available rss feeds + */ + static function get_feeds($item, $sidebar_only=true) { + $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) { + if ($sidebar_only && !$feed["sidebar"]) { + continue; + } + $feeds[$feed["description"]] = url::site("rss/{$feed['uri']}"); + } + } + } + + return $feeds; + } + + static function process_feed($feed, $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); + } + } + } }
\ No newline at end of file diff --git a/modules/rss/helpers/rss_theme.php b/modules/rss/helpers/rss_theme.php index 54bba210..b82133bd 100644 --- a/modules/rss/helpers/rss_theme.php +++ b/modules/rss/helpers/rss_theme.php @@ -40,16 +40,8 @@ class rss_theme_Core { $block->css_id = "gRss"; $block->title = t("Available RSS Feeds"); $block->content = new View("rss_block.html"); - // @todo consider pushing the code for the feeds back to the associated modules - // and create an event 'generate_rss_feeds' that modules can respond to create - // the list of feeds. - $feeds = array(t("New photos or movies") => url::site("rss/updates")); - if (module::is_active("comment")) { - $feeds[t("All new comments")] = url::site("rss/comments"); - $feeds[sprintf(t("Comments on %s"), $theme->item()->title)] = - url::site("rss/comments/{$theme->item()->id}"); - } - $block->content->feeds = $feeds; + $block->content->feeds = rss::get_feeds($theme->item()); + return $block; } } |