diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-06-12 07:46:42 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-06-12 07:46:42 -0700 |
commit | d4d145a44302a1438df7416e3046457bc9582806 (patch) | |
tree | 80fbb73c554451cc5d1771ae292bd96fe32a5542 /modules/rss | |
parent | e5793b5b2680cba14dda6bd0242b262baa0d00a6 (diff) |
Change from an event driven model to a call driven model similiar to the task
api.
Diffstat (limited to 'modules/rss')
-rw-r--r-- | modules/rss/helpers/rss.php | 21 | ||||
-rw-r--r-- | modules/rss/helpers/rss_theme.php | 9 |
2 files changed, 22 insertions, 8 deletions
diff --git a/modules/rss/helpers/rss.php b/modules/rss/helpers/rss.php index b320aeae..b0e7b30f 100644 --- a/modules/rss/helpers/rss.php +++ b/modules/rss/helpers/rss.php @@ -27,4 +27,25 @@ 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; + } + }
\ No newline at end of file diff --git a/modules/rss/helpers/rss_theme.php b/modules/rss/helpers/rss_theme.php index 2e4e141b..b82133bd 100644 --- a/modules/rss/helpers/rss_theme.php +++ b/modules/rss/helpers/rss_theme.php @@ -36,18 +36,11 @@ class rss_theme_Core { return; } - $event_data = new stdClass(); - $event_data->feeds = array(); - $event_data->item = $theme->item(); - module::event("request_feed_links", $event_data); - foreach ($event_data->feeds as $key => $feed) { - $event_data->feeds[$key] = url::site("rss/$feed"); - } $block = new Block(); $block->css_id = "gRss"; $block->title = t("Available RSS Feeds"); $block->content = new View("rss_block.html"); - $block->content->feeds = $event_data->feeds; + $block->content->feeds = rss::get_feeds($theme->item()); return $block; } |