summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/controllers/album.php1
-rw-r--r--core/controllers/photo.php36
-rw-r--r--core/libraries/ORM_MPTT.php6
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();