From d21f3437e64fb67f306eaec40e778e77176796ff Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Wed, 5 Nov 2008 07:42:52 +0000 Subject: Add the photo controller, and tie it to the photo page in our theme. Implement a real breadcrumb. --- core/controllers/album.php | 1 + core/controllers/photo.php | 36 ++++++++++++++++++++++++++++++++++++ core/libraries/ORM_MPTT.php | 6 ++++-- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 core/controllers/photo.php (limited to 'core') 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 @@ +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(); -- cgit v1.2.3