From 00fad54c0babfb0643c2ab9da98b4b74af84d466 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sun, 14 Jun 2009 16:40:57 -0700 Subject: Refactor feed code to use stdClass everywhere. Fix bugs in the max-pages calculation code. Move feed related data into the $feed variable and only pass that to the view. --- modules/rss/controllers/rss.php | 19 ++++++++----------- modules/rss/helpers/rss.php | 6 ++---- modules/rss/views/feed.mrss.php | 18 +++++++++--------- 3 files changed, 19 insertions(+), 24 deletions(-) (limited to 'modules/rss') diff --git a/modules/rss/controllers/rss.php b/modules/rss/controllers/rss.php index 80803dfd..29300d58 100644 --- a/modules/rss/controllers/rss.php +++ b/modules/rss/controllers/rss.php @@ -18,7 +18,7 @@ * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ class Rss_Controller extends Controller { - public static $page_size = 30; + public static $page_size = 20; public function feed($method, $id=null) { $page = $this->input->get("page", 1); @@ -28,28 +28,25 @@ class Rss_Controller extends Controller { } $feed = rss::feed_data($method, ($page - 1) * self::$page_size, self::$page_size, $id); - $max_pages = $feed["max_pages"]; + $max_pages = $feed->max_pages; if ($max_pages && $page > $max_pages) { url::redirect("$feed_uri?page={$max_pages}"); } - unset($feed["max_pages"]); - $view = new View(empty($feed["view"]) ? "feed.mrss" : $feed["view"]); - unset($feed["view"]); + $view = new View(empty($feed->view) ? "feed.mrss" : $feed->view); + unset($feed->view); - foreach ($feed as $field => $value) { - $view->$field = $value; - } - $view->feed_link = url::abs_site($feed_uri); + $feed->uri = url::abs_site($feed_uri); + $view->feed = $feed; if ($page > 1) { $previous_page = $page - 1; - $view->previous_page_link = url::site("$feed_uri?page={$previous_page}"); + $feed->previous_page_uri = url::site("$feed_uri?page={$previous_page}"); } if ($page < $max_pages) { $next_page = $page + 1; - $view->next_page_link = url::site("$feed_uri?page={$next_page}"); + $feed->next_page_uri = url::site("$feed_uri?page={$next_page}"); } $view->pub_date = date("D, d M Y H:i:s T"); diff --git a/modules/rss/helpers/rss.php b/modules/rss/helpers/rss.php index 403ee225..8a7d0c97 100644 --- a/modules/rss/helpers/rss.php +++ b/modules/rss/helpers/rss.php @@ -33,9 +33,7 @@ class rss_Core { $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 ($feed["type"] == "block") { - $feeds[$feed["description"]] = url::site("rss/feed/{$feed['uri']}"); - } + $feeds[$feed["description"]] = url::site("rss/feed/{$feed['uri']}"); } } } @@ -43,7 +41,7 @@ class rss_Core { return $feeds; } - static function feed_data($feed, $offset, $limit, $id) { + static function feed_data($method, $offset, $limit, $id) { foreach (module::active() as $module) { $class_name = "{$module->name}_rss"; if (method_exists($class_name, $feed)) { diff --git a/modules/rss/views/feed.mrss.php b/modules/rss/views/feed.mrss.php index 0beebbcf..447179a5 100644 --- a/modules/rss/views/feed.mrss.php +++ b/modules/rss/views/feed.mrss.php @@ -6,21 +6,21 @@ xmlns:fh="http://purl.org/syndication/history/1.0"> gallery3 - <?= p::clean($title) ?> - - + <?= p::clean($feed->title) ?> + uri ?> + description) ?> en-us - + - - + previous_page_uri)): ?> + - -