diff options
| author | Bharat Mediratta <bharat@menalto.com> | 2009-06-15 12:51:54 +0800 |
|---|---|---|
| committer | <unostar@danalan.info> | 2009-06-15 17:31:22 +0800 |
| commit | 0051c2c89b71128ff0aefaaa4a77df91dd078016 (patch) | |
| tree | a31099fbc063843f8d89710209ed660614b41cc3 /modules/rss/helpers/rss_theme.php | |
| parent | 0204a5c9e88f8cd257092e4a619ada02ffcd2821 (diff) | |
Refactor the way that the rss module works so that we're not allowing
the url to dictate arbitrary static method calls.
* Each xxx_rss helper has a single feed() call which takes an id as the argument
* xxx_rss::available_feedS() only returns feeds when they're applicable (ie
if you're viewing a tag, it won't show you an item feed).
* Feed urls are now in the module/feed_id form so that we can bind a
feed id to a given module
* Tightened up the Rss_Controller by using url::merge and some other tricks.
* Made the slideshow module express its own feed.
Signed-off-by: <unostar@danalan.info>
Diffstat (limited to 'modules/rss/helpers/rss_theme.php')
| -rw-r--r-- | modules/rss/helpers/rss_theme.php | 19 |
1 files changed, 12 insertions, 7 deletions
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; + } } } |
