summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2008-11-05 07:42:52 +0000
committerBharat Mediratta <bharat@menalto.com>2008-11-05 07:42:52 +0000
commitd21f3437e64fb67f306eaec40e778e77176796ff (patch)
tree1895709d0e920ecd332696b50dba796862e654e5
parent581e931c439a726fbd6a0b0068debd2cd76e349d (diff)
Add the photo controller, and tie it to the photo page in our theme.
Implement a real breadcrumb.
-rw-r--r--core/controllers/album.php1
-rw-r--r--core/controllers/photo.php36
-rw-r--r--core/libraries/ORM_MPTT.php6
-rw-r--r--themes/default/views/header.html.php7
-rw-r--r--themes/default/views/photo.html.php6
5 files changed, 48 insertions, 8 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();
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 @@
</ul>
<ul id="gBreadcrumbs">
- <li class="root"><a href="#">Home</a></li>
- <li><a href="#">Friends &amp; Family</a></li>
- <li class="active"><span>Christmas 2007</span></li>
+ <? foreach ($parents as $parent): ?>
+ <li><a href="<?= url::site("album/{$parent->id}") ?>"><?= $parent->title ?></a></li>
+ <? endforeach ?>
+ <li class="active"><span><?= $item->title ?></span></li>
</ul>
<form id="gSearchForm">
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 @@
<a href="" class="buttonlink">Full size (1024x768)</a>
<a href="" class="buttonlink">Slideshow</a>
- <img id="photo-id-1" alt="photo" src="images/thumbnail.jpg" />
- <h1>Photo title</h1>
- <p>Photo description: Lorem ipsum dolor sit amet.</p>
+ <img id="photo-id-<?= $item->id ?>" alt="photo" src="<?= $item->resize_url() ?>" />
+ <h1><?= $item->title ?></h1>
+ <p><?= $item->description ?></p>
</div>
<div id="gComments">