diff options
Diffstat (limited to 'modules/media_rss')
-rw-r--r-- | modules/media_rss/controllers/media_rss.php | 41 | ||||
-rw-r--r-- | modules/media_rss/helpers/media_rss_installer.php | 33 | ||||
-rw-r--r-- | modules/media_rss/views/media.rss.php | 41 |
3 files changed, 115 insertions, 0 deletions
diff --git a/modules/media_rss/controllers/media_rss.php b/modules/media_rss/controllers/media_rss.php new file mode 100644 index 00000000..19a5dec3 --- /dev/null +++ b/modules/media_rss/controllers/media_rss.php @@ -0,0 +1,41 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 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 Media_rss_Controller extends REST_Controller { + // @todo this should be retrieved from the slideshow configuration + public static $LIMIT = 10; + + public function _show($parent, $output_format) { + if ($output_format != "mediarss") { + throw new Exception("@todo Unsupported output format: $output_format"); + } + + $offset = $this->input->get("offset", 0); + + $view = new View("slideshow_feed.rss"); + $view->item = $parent; + + // @todo create a descendent child method on ORM_MTPP to get all of the children + $view->children = $children; + } + + protected function get_output_format() { + return "mediarss"; + } +}
\ No newline at end of file diff --git a/modules/media_rss/helpers/media_rss_installer.php b/modules/media_rss/helpers/media_rss_installer.php new file mode 100644 index 00000000..481adf8a --- /dev/null +++ b/modules/media_rss/helpers/media_rss_installer.php @@ -0,0 +1,33 @@ +<?php defined("SYSPATH") or die("No direct script access."); +/** + * Gallery - a web based photo album viewer and editor + * Copyright (C) 2000-2008 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 media_rss_installer { + public static function install() { + Kohana::log("debug", "media_rss_installer::install"); + $version = module::get_version("media_rss"); + Kohana::log("debug", "version: $version"); + if ($version == 0) { + module::set_version("media_rss", 1); + } + } + + public static function uninstall() { + module::delete("media_rss"); + } +} diff --git a/modules/media_rss/views/media.rss.php b/modules/media_rss/views/media.rss.php new file mode 100644 index 00000000..26f6b1fe --- /dev/null +++ b/modules/media_rss/views/media.rss.php @@ -0,0 +1,41 @@ +<? defined("SYSPATH") or die("No direct script access."); ?> +<? echo "<?xml version=\"1.0\" ?>"; ?> +<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" + xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title><?= $item->title ?></title> + <link><?= url::site("media_rss/$item->id") ?></link> + <description><?= $item->description ?></description> + <language>en-us</language> + <? if (isset($prevOffset)): ?> + <atom:link rel="previous" href="<?= url::site("media_rss/$item->id?offset=\"$prevOffset\"") ?>" /> + <? endif; ?> + <? if (isset($nextOffset)): ?> + <atom:link rel="next" href="href="<?= url::site("media_rss/$item->id?offset=\"$nextOffset\"") ?>"/> + <? endif; ?> + <? + // @todo do we want to add an upload date to the items table? + $date = date("D, dd M Y H:i:s e"); + ?> + <pubDate><?= $date ?></pubDate> + <lastBuildDate><?= $date ?></lastBuildDate> + <? foreach ($children as $child): ?> + <item> + <title type="html"><?= $child->title ?></title> + <link></link> + <guid><?= $child->id ?></guid> + <description type="html"><?= $child->description ?></description> + <media:thumbnail url="<?= $child->thumbnail_url() ?>" + type="<?= $child->mine_type ?>" + height="<?= $child->thumbnail_height ?>" + width="<?= $child->thumbnail_width ?>" + /> + <media:content url="<?= $child->resize_url() ?>" + type="<?= $child->mine_type ?>" + height="<?= $child->resize_height ?>" + width="<?= $child->resize_width ?>" + /> + </item> + <? endforeach; ?> + </channel> +</rss> |