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 ++++-- themes/default/views/header.html.php | 7 ++++--- themes/default/views/photo.html.php | 6 +++--- 5 files changed, 48 insertions(+), 8 deletions(-) create mode 100644 core/controllers/photo.php 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(); diff --git a/themes/default/views/header.html.php b/themes/default/views/header.html.php index fd2df051..acecb885 100644 --- a/themes/default/views/header.html.php +++ b/themes/default/views/header.html.php @@ -41,9 +41,10 @@
diff --git a/themes/default/views/photo.html.php b/themes/default/views/photo.html.php index e4d47d61..31458094 100644 --- a/themes/default/views/photo.html.php +++ b/themes/default/views/photo.html.php @@ -8,9 +8,9 @@ Full size (1024x768) Slideshow - photo -

Photo title

-

Photo description: Lorem ipsum dolor sit amet.

+ photo +

title ?>

+

description ?>

-- cgit v1.2.3