summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2007-06-06 19:41:44 +0000
committerAndreas Unterkircher <unki@netshadow.at>2007-06-06 19:41:44 +0000
commitca33ffdcbb65a0b344e450966c2fcff1d9e9212b (patch)
treef665c49cb35e8c2be96ba6598cbe6707df6f9ec7
parent112ac9e09c81b3cb4babe6b8246a6576ecb5df5e (diff)
display photo index as matrix
show a larger pic when user clicks on it git-svn-id: file:///var/lib/svn/phpfspot/trunk@25 fa6a889d-dae6-447d-9e79-4ba9a3039384
-rw-r--r--phpfspot.class.php47
-rw-r--r--phpfspot_cfg.php2
-rw-r--r--rpc.php4
-rw-r--r--templates/photo_index.tpl21
4 files changed, 59 insertions, 15 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 628cfea..dbefee8 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -39,7 +39,6 @@ class PHPFSPOT {
public function show()
{
- $this->prepare_single_photo($this->current_photo);
$this->tmpl->assign('tags', $this->tags);
$this->tmpl->show("index.tpl");
@@ -117,21 +116,23 @@ class PHPFSPOT {
} // translate_path
- public function prepare_single_photo($photo)
+ public function showPhoto($photo)
{
if(isset($photo)) {
- $this->tmpl->assign('image_url', 'phpfspot_img.php?idx='. $this->avail_photos[$photo] ."&amp;width=". $this->cfg->photo_width);
+ $this->tmpl->assign('image_url', 'phpfspot_img.php?idx='. $photo ."&amp;width=". $this->cfg->photo_width);
}
if($photo > 0) {
$this->tmpl->assign('previous_url', "javascript:showImage(". ($photo-1) .");");
}
- if($photo < count($this->avail_photos)) {
+ if($photo < count($this->photos)) {
$this->tmpl->assign('next_url', "javascript:showImage(". ($photo+1) .");");
}
- } // prepare_single_photo()
+ $this->tmpl->show("single_photo.tpl");
+
+ } // showPhoto()
public function getAvailableTags()
{
@@ -212,19 +213,43 @@ class PHPFSPOT {
array_push($tagged_photos, $row['photo_id']);
}
-
return $tagged_photos;
} // getAllTagPhotos()
public function showPhotoIndex()
{
- foreach($this->getAllTagPhotos() as $photo)
- {
- $images.= "<img src=\"phpfspot_img.php?idx=". $photo ."&amp;width=". $this->cfg->thumb_width ."\" /><br />\n";
- }
+ $photos = $this->getAllTagPhotos();
+ $count = count($photos);
+
+ $rows = 0;
+ $cols = 0;
+ $images[$rows] = Array();
+
+ for($i = 0; $i < $count; $i++) {
+
+ $images[$rows][$cols] = $photos[$i];
+
+ if($cols == $this->cfg->thumbs_per_row-1) {
+ $cols = 0;
+ $rows++;
+ $images[$rows] = Array();
+ }
+ else {
+ $cols++;
+ }
+ }
+
+ // +1 for for smarty's selection iteration
+ $rows++;
+
+ //$images.= "<img src=\"phpfspot_img.php?idx=". $photo ."&amp;width=". $this->cfg->thumb_width ."\" /><br />\n";
- $this->tmpl->assign('image_matrix', $images);
+ $this->tmpl->assign('count', $count);
+ $this->tmpl->assign('width', $this->cfg->thumb_width);
+ $this->tmpl->assign('images', $images);
+ $this->tmpl->assign('rows', $rows);
+ $this->tmpl->assign('columns', $this->cfg->thumbs_per_row);
$this->tmpl->show("photo_index.tpl");
diff --git a/phpfspot_cfg.php b/phpfspot_cfg.php
index b833b99..955a6ff 100644
--- a/phpfspot_cfg.php
+++ b/phpfspot_cfg.php
@@ -17,6 +17,8 @@ class PHPFSPOT_CFG {
var $path_replace_from = "/home/unki";
var $path_replace_to = "/var/www/images.netshadow.at/htdocs/phpfspot";
+ var $thumbs_per_row = 3;
+
}
?>
diff --git a/rpc.php b/rpc.php
index c81a7ae..cffb4ed 100644
--- a/rpc.php
+++ b/rpc.php
@@ -45,9 +45,7 @@ class PHPFSPOT_RPC {
switch($_GET['action']) {
case 'showphoto':
- $fspot->prepare_single_photo($_GET['id']);
- $fspot->tmpl->show("body.tpl");
-
+ $fspot->showPhoto($_GET['id']);
break;
case 'show_available_tags':
diff --git a/templates/photo_index.tpl b/templates/photo_index.tpl
index f917364..7f3af46 100644
--- a/templates/photo_index.tpl
+++ b/templates/photo_index.tpl
@@ -1 +1,20 @@
-{$image_matrix}
+<!-- Image Matrix -->
+<table>
+ <tr>
+ <td colspan="{$columns}">
+ {$count} images have been found for the selected tags
+ </td>
+ </tr>
+{section name="row" loop=$rows step=1}
+ <tr>
+ {section name="col" loop=$columns step=1}
+ <td>
+ <a href="javascript:showImage({$images[row][col]});">
+ <img src="phpfspot_img.php?idx={$images[row][col]}&amp;width={$width}" />
+ </a>
+ </td>
+ {/section}
+ </tr>
+{/section}
+</table>
+<!-- /Image Matrix -->