diff options
Diffstat (limited to 'modules/rss/controllers/rss.php')
-rw-r--r-- | modules/rss/controllers/rss.php | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/modules/rss/controllers/rss.php b/modules/rss/controllers/rss.php index 164803cb..80803dfd 100644 --- a/modules/rss/controllers/rss.php +++ b/modules/rss/controllers/rss.php @@ -20,21 +20,24 @@ class Rss_Controller extends Controller { public static $page_size = 30; - public function __call($method, $arguments) { - $id = empty($arguments) ? null : $arguments[0]; + public function feed($method, $id=null) { $page = $this->input->get("page", 1); - $feed_uri = "rss/$method" . (empty($id) ? "" : "/$id"); + $feed_uri = "rss/feed/$method" . (empty($id) ? "" : "/$id"); if ($page < 1) { url::redirect($feed_uri); } - $feed = rss::process_feed($method, ($page - 1) * self::$page_size, self::$page_size, $id); - if ($feed->max_pages && $page > $feed->max_pages) { - url::redirect("$feed_uri?page={$feed->max_pages}"); + $feed = rss::feed_data($method, ($page - 1) * self::$page_size, self::$page_size, $id); + $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); - foreach ($feed->data as $field => $value) { + $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); @@ -44,7 +47,7 @@ class Rss_Controller extends Controller { $view->previous_page_link = url::site("$feed_uri?page={$previous_page}"); } - if ($page < $feed->max_pages) { + if ($page < $max_pages) { $next_page = $page + 1; $view->next_page_link = url::site("$feed_uri?page={$next_page}"); } |