From d4d145a44302a1438df7416e3046457bc9582806 Mon Sep 17 00:00:00 2001 From: Tim Almdal Date: Fri, 12 Jun 2009 07:46:42 -0700 Subject: Change from an event driven model to a call driven model similiar to the task api. --- modules/comment/helpers/comment_event.php | 6 ------ modules/comment/helpers/comment_rss.php | 30 ++++++++++++++++++++++++++++++ modules/gallery/helpers/gallery_event.php | 4 ---- modules/gallery/helpers/gallery_rss.php | 27 +++++++++++++++++++++++++++ modules/rss/helpers/rss.php | 21 +++++++++++++++++++++ modules/rss/helpers/rss_theme.php | 9 +-------- 6 files changed, 79 insertions(+), 18 deletions(-) create mode 100644 modules/comment/helpers/comment_rss.php create mode 100644 modules/gallery/helpers/gallery_rss.php (limited to 'modules') diff --git a/modules/comment/helpers/comment_event.php b/modules/comment/helpers/comment_event.php index fdf3a96f..a3beb27a 100644 --- a/modules/comment/helpers/comment_event.php +++ b/modules/comment/helpers/comment_event.php @@ -21,10 +21,4 @@ class comment_event_Core { static function item_before_delete($item) { Database::instance()->delete("comments", array("item_id" => $item->id)); } - - static function request_feed_links($event_data) { - $event_data->feeds[t("All new comments")] = "comments"; - $event_data->feeds[sprintf(t("Comments on %s"), $event_data->item->title)] = - "comments/{$event_data->item->id}"; - } } diff --git a/modules/comment/helpers/comment_rss.php b/modules/comment/helpers/comment_rss.php new file mode 100644 index 00000000..9ae28726 --- /dev/null +++ b/modules/comment/helpers/comment_rss.php @@ -0,0 +1,30 @@ + t("All new comments"), + "sidebar" => true, + "uri" => "comments"), + array("description" => sprintf(t("Comments on %s"), $item->title), + "sidebar" => true, + "uri" => "comments/{$item->id}")); + } +} \ No newline at end of file diff --git a/modules/gallery/helpers/gallery_event.php b/modules/gallery/helpers/gallery_event.php index b1e9332d..aa11b7c0 100644 --- a/modules/gallery/helpers/gallery_event.php +++ b/modules/gallery/helpers/gallery_event.php @@ -43,8 +43,4 @@ class gallery_event_Core { module::clear_var("gallery", "choose_default_tookit"); } } - - static function request_feed_links($event_data) { - $event_data->feeds[t("New photos or movies")] = url::site("updates"); - } } diff --git a/modules/gallery/helpers/gallery_rss.php b/modules/gallery/helpers/gallery_rss.php new file mode 100644 index 00000000..0b87b1b1 --- /dev/null +++ b/modules/gallery/helpers/gallery_rss.php @@ -0,0 +1,27 @@ + t("New photos or movies"), + "sidebar" => true, + "uri" => "updates")); + } +} 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; } -- cgit v1.2.3