diff options
Diffstat (limited to 'modules/rss/helpers/rss.php')
-rw-r--r-- | modules/rss/helpers/rss.php | 29 |
1 files changed, 29 insertions, 0 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 |