diff options
author | Bharat Mediratta <bharat@menalto.com> | 2008-11-05 07:42:52 +0000 |
---|---|---|
committer | Bharat Mediratta <bharat@menalto.com> | 2008-11-05 07:42:52 +0000 |
commit | d21f3437e64fb67f306eaec40e778e77176796ff (patch) | |
tree | 1895709d0e920ecd332696b50dba796862e654e5 /core | |
parent | 581e931c439a726fbd6a0b0068debd2cd76e349d (diff) |
Add the photo controller, and tie it to the photo page in our theme.
Implement a real breadcrumb.
Diffstat (limited to 'core')
-rw-r--r-- | core/controllers/album.php | 1 | ||||
-rw-r--r-- | core/controllers/photo.php | 36 | ||||
-rw-r--r-- | core/libraries/ORM_MPTT.php | 6 |
3 files changed, 41 insertions, 2 deletions
diff --git a/core/controllers/album.php b/core/controllers/album.php index 9c78dfca..2b1ad067 100644 --- a/core/controllers/album.php +++ b/core/controllers/album.php @@ -28,6 +28,7 @@ class Album_Controller extends Template_Controller { $this->template->set_global('item', $item); $this->template->set_global('children', $item->children()); + $this->template->set_global('parents', $item->parents()); /** @todo: this needs to be data-driven */ $this->template->set_global('theme', new Theme("default", $this->template)); diff --git a/core/controllers/photo.php b/core/controllers/photo.php new file mode 100644 index 00000000..4c0ab975 --- /dev/null +++ b/core/controllers/photo.php @@ -0,0 +1,36 @@ +<?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 Photo_Controller extends Template_Controller { + public $template = "photo.html"; + + public function View($id) { + $item = ORM::factory("item")->where("id", $id)->find(); + if (empty($item->id)) { + return Kohana::show_404(); + } + + $this->template->set_global('item', $item); + $this->template->set_global('children', $item->children()); + $this->template->set_global('parents', $item->parents()); + + /** @todo: this needs to be data-driven */ + $this->template->set_global('theme', new Theme("default", $this->template)); + } +} diff --git a/core/libraries/ORM_MPTT.php b/core/libraries/ORM_MPTT.php index 047e681e..c8dd613b 100644 --- a/core/libraries/ORM_MPTT.php +++ b/core/libraries/ORM_MPTT.php @@ -82,13 +82,15 @@ class ORM_MPTT_Core extends ORM { } /** - * Return all the parents of this node, in order from root to leaf. + * Return all the parents of this node, in order from root to this node's immediate parent. * * @return array ORM */ function parents() { + $id = (int)$this->id; if (!isset($this->parents)) { - $this->parents = $this->where("`left` <= {$this->left}") + $this->parents = $this + ->where("`left` <= {$this->left}") ->where("`right` >= {$this->right}") ->orderby("left", "ASC") ->find_all(); |