diff options
author | Tim Almdal <tnalmdal@shaw.ca> | 2009-08-20 07:30:49 -0700 |
---|---|---|
committer | Tim Almdal <tnalmdal@shaw.ca> | 2009-08-20 07:30:49 -0700 |
commit | 5943761df282bfdfe68453de5c1682030006cd11 (patch) | |
tree | 455c215280a9b95aa0a61906f54552c7a958b598 /modules/slideshow/controllers | |
parent | 230b9a26ac56c3ca978a7c5df413464068b60812 (diff) |
Initial commit of a basic slideshow
Diffstat (limited to 'modules/slideshow/controllers')
-rw-r--r-- | modules/slideshow/controllers/slideshow.php | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/modules/slideshow/controllers/slideshow.php b/modules/slideshow/controllers/slideshow.php new file mode 100644 index 00000000..6649b00b --- /dev/null +++ b/modules/slideshow/controllers/slideshow.php @@ -0,0 +1,73 @@ +<?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 Slideshow_Controller extends Controller { + function album($item_id) { + $item = ORM::factory("item", $item_id); + access::required("view", $item); + + print $this->_build_image_list($item->children()); + } + + function photo($item_id) { + $item = ORM::factory("item", $item_id); + access::required("view", $item); + + print $this->_build_image_list($item->parent()->children()); + } + + function tag($item_id) { + $item = ORM::factory("item", $item_id); + $root = $item->id == 1 ? $item : ORM::factory("item", 1); + access::required("view", $item); + + $v = new View("organize_dialog.html"); + $v->title = $item->title; + $parents = array(); + foreach ($item->parents() as $parent) { + $parents[$parent->id] = 1; + } + $parents[$item->id] = 1; + + $v->album_tree = self::_tree($root, $parents); + $v->micro_thumb_grid = self::_get_micro_thumb_grid($item, 0); + print $v; + } + + private function _build_image_list($children) { + $resizes = array(); + foreach ($children as $child) { + switch($child->type) { + case "album": + if (!empty($child->album_cover_item_id)) { + $cover = ORM::factory("item", $child->album_cover_item_id); + $resizes[] = array("url" => $cover->resize_url(), "width" => $cover->resize_width, + "height" => $cover->resize_height); + } + break; + case "photo": + $resizes[] = array("url" => $child->resize_url(), "width" => $child->resize_width, + "height" => $child->resize_height); + break; + } + } + + return json_encode($resizes); + } +} |