Files
gallery3/modules/rss/controllers/rss.php
Bharat Mediratta 00fad54c0b 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.
2009-06-14 16:40:57 -07:00

57 lines
1.9 KiB
PHP

<?php defined("SYSPATH") or die("No direct script access.");
/**
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2009 Bharat Mediratta
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or (at
* your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
class Rss_Controller extends Controller {
public static $page_size = 20;
public function feed($method, $id=null) {
$page = $this->input->get("page", 1);
$feed_uri = "rss/feed/$method" . (empty($id) ? "" : "/$id");
if ($page < 1) {
url::redirect($feed_uri);
}
$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}");
}
$view = new View(empty($feed->view) ? "feed.mrss" : $feed->view);
unset($feed->view);
$feed->uri = url::abs_site($feed_uri);
$view->feed = $feed;
if ($page > 1) {
$previous_page = $page - 1;
$feed->previous_page_uri = url::site("$feed_uri?page={$previous_page}");
}
if ($page < $max_pages) {
$next_page = $page + 1;
$feed->next_page_uri = url::site("$feed_uri?page={$next_page}");
}
$view->pub_date = date("D, d M Y H:i:s T");
rest::http_content_type(rest::RSS);
print $view;
}
}