diff options
-rw-r--r-- | core/config/config.php | 2 | ||||
-rw-r--r-- | modules/slideshow/controllers/slideshow.php | 50 | ||||
-rw-r--r-- | modules/slideshow/helpers/slideshow_installer.php | 33 | ||||
-rw-r--r-- | modules/slideshow/views/slideshow_feed.rss.php | 20 | ||||
-rw-r--r-- | themes/default/js/slideshow.js | 3 | ||||
-rw-r--r-- | themes/default/views/album.html.php | 2 | ||||
-rw-r--r-- | themes/default/views/page.html.php | 1 | ||||
-rw-r--r-- | themes/default/views/photo.html.php | 2 |
8 files changed, 110 insertions, 3 deletions
diff --git a/core/config/config.php b/core/config/config.php index 3a81f112..2791bd76 100644 --- a/core/config/config.php +++ b/core/config/config.php @@ -129,6 +129,6 @@ $config['modules'] = array MODPATH . 'user', MODPATH . 'info', MODPATH . 'gmaps', - MODPATH . 'auth', + MODPATH . 'slideshow', MODPATH . 'comment', ); diff --git a/modules/slideshow/controllers/slideshow.php b/modules/slideshow/controllers/slideshow.php new file mode 100644 index 00000000..57553227 --- /dev/null +++ b/modules/slideshow/controllers/slideshow.php @@ -0,0 +1,50 @@ +<?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 Slideshow_Controller extends REST_Controller { + // @todo this should be retrieved from the slideshow configuration + public static $LIMIT = 10; + + public function _show($parent, $output_format) { + $offset = $this->input->get("offset", 0); + $children = array(); + // @todo actually fill the array + switch ($output_format) { + case "json": + print json_encode($children); + break; + case "rss": + $view = new View("slideshow_feed.rss"); + $view->item = $parent; + $view->children = $children; + break; + default: + throw new Exception("@todo Unsupported output format: $output_format"); + } + } + + /** + * Override the get_output_format. We want to restrict the check to only $_GET and set the + * default to rss. + * @return string + */ + protected function get_output_format() { + return $this->input->get("_format", "rss"); + } +}
\ No newline at end of file diff --git a/modules/slideshow/helpers/slideshow_installer.php b/modules/slideshow/helpers/slideshow_installer.php new file mode 100644 index 00000000..bd8ef4fc --- /dev/null +++ b/modules/slideshow/helpers/slideshow_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 slideshow_installer { + public static function install() { + Kohana::log("debug", "slideshow_installer::install"); + $version = module::get_version("slideshow"); + Kohana::log("debug", "version: $version"); + if ($version == 0) { + module::set_version("slideshow", 1); + } + } + + public static function uninstall() { + module::delete("slideshow"); + } +} diff --git a/modules/slideshow/views/slideshow_feed.rss.php b/modules/slideshow/views/slideshow_feed.rss.php new file mode 100644 index 00000000..b07bf5fe --- /dev/null +++ b/modules/slideshow/views/slideshow_feed.rss.php @@ -0,0 +1,20 @@ +<? defined("SYSPATH") or die("No direct script access."); ?> +<? echo "<?xml version=\"1.0\" ?>"; ?> +<rss version="2.0"> + <channel> + <title><?= $item->title ?></title> + <link><?= url::site("slideshow/$item->id") ?></link> + <description><?= $item->description ?></description> + <language>en-us</language> + <? + // @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): ?> + <image> + </image> + <? endforeach; ?> + </channel> +</rss>
\ No newline at end of file diff --git a/themes/default/js/slideshow.js b/themes/default/js/slideshow.js new file mode 100644 index 00000000..35f792b8 --- /dev/null +++ b/themes/default/js/slideshow.js @@ -0,0 +1,3 @@ +function slideshow(parent_id) { + alert("Start a slideshow showing all the items that have the id " + parent_id + " as a descendent"); +}
\ No newline at end of file diff --git a/themes/default/views/album.html.php b/themes/default/views/album.html.php index b59dba01..b2617998 100644 --- a/themes/default/views/album.html.php +++ b/themes/default/views/album.html.php @@ -2,7 +2,7 @@ <div id="gAlbumHeader"> <h1><?= $item->title_edit ?></h1> <span class="gUnderState"><?= $item->description_edit ?></span> - <a href="#" id="gSlideshowLink" class="gButtonLink">Slideshow</a> + <a href="javascript:slideshow(<?= $item->id ?>);" id="gSlideshowLink" class="gButtonLink">Slideshow</a> </div> <ul id="gAlbumGrid"> diff --git a/themes/default/views/page.html.php b/themes/default/views/page.html.php index 75c9a1a9..73cbb481 100644 --- a/themes/default/views/page.html.php +++ b/themes/default/views/page.html.php @@ -15,6 +15,7 @@ <script src="<?= url::file("lib/jquery.form.js") ?>" type="text/javascript"></script> <script src="<?= $theme->url("js/user.js") ?>" type="text/javascript"></script> <script src="<?= $theme->url("js/comment.js") ?>" type="text/javascript"></script> + <script src="<?= $theme->url("js/slideshow.js") ?>" type="text/javascript"></script> <? if ($user): ?> <script src="<?= url::file("lib/jquery.jeditable.js") ?>" type="text/javascript"></script> <? endif; ?> diff --git a/themes/default/views/photo.html.php b/themes/default/views/photo.html.php index 512c1e17..2bd5d07e 100644 --- a/themes/default/views/photo.html.php +++ b/themes/default/views/photo.html.php @@ -1,7 +1,7 @@ <? defined("SYSPATH") or die("No direct script access."); ?> <div id="gItem"> <a href="" class="gButtonLink">Full size (1024x768)</a> - <a href="" class="gButtonLink">Slideshow</a> + <a href="javascript:slideshow(<?= $item->parent_id ?>);" id="gSlideshowLink" class="gButtonLink">Slideshow</a> <img id="gPhotoID-<?= $item->id ?>" alt="photo" src="<?= $item->resize_url() ?>" width="<?= $item->resize_width ?>" |