summaryrefslogtreecommitdiffstats
path: root/phpfspot.class.php
diff options
context:
space:
mode:
authorAndreas Unterkircher <unki@netshadow.at>2007-06-23 08:40:48 +0000
committerAndreas Unterkircher <unki@netshadow.at>2007-06-23 08:40:48 +0000
commitdc815d80d15437e0e6a56bfcfbff81b241cdd727 (patch)
tree6f1b570a0cf29284a859ea584db13d7a50055058 /phpfspot.class.php
parent39c86688aa230ba5010a821580e891b20c4e1a32 (diff)
issue6, first implementation of paged photo index view
use thumbnail width & height for <img> to avoid "flipping" when images are getting loaded fixed issue when all selected tags are clicked away but photo index still stays, there are no matching photos git-svn-id: file:///var/lib/svn/phpfspot/trunk@124 fa6a889d-dae6-447d-9e79-4ba9a3039384
Diffstat (limited to 'phpfspot.class.php')
-rw-r--r--phpfspot.class.php39
1 files changed, 37 insertions, 2 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 0fa1740..525b5c1 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -280,7 +280,7 @@ class PHPFSPOT {
}
/* return according the selected tags */
- if(isset($_SESSION['selected_tags'])) {
+ if(isset($_SESSION['selected_tags']) && !empty($_SESSION['selected_tags'])) {
$selected = "";
foreach($_SESSION['selected_tags'] as $tag)
$selected.= $tag .",";
@@ -354,18 +354,41 @@ class PHPFSPOT {
$count = count($photos);
+ if(!$_SESSION['begin_with'] || $_SESSION['begin_with'] == 0)
+ $begin_with = 0;
+ else
+ $begin_with = $_SESSION['begin_with'];
+
+ if($this->cfg->rows_per_page == 0)
+ $end_with = $count;
+ else
+ $end_with = $begin_with + ($this->cfg->rows_per_page * $this->cfg->thumbs_per_row);
+
+
$rows = 0;
$cols = 0;
$images[$rows] = Array();
+ $img_height[$rows] = Array();
+ $img_width[$rows] = Array();
- for($i = 0; $i < $count; $i++) {
+ for($i = $begin_with; $i < $end_with; $i++) {
$images[$rows][$cols] = $photos[$i];
+ $thumb_path = $this->cfg->base_path ."/thumbs/". $this->cfg->thumb_width ."_". $this->getMD5($photos[$i]);
+
+ if(file_exists($thumb_path)) {
+ $info = getimagesize($thumb_path);
+ $img_width[$rows][$cols] = $info[0];
+ $img_height[$rows][$cols] = $info[1];
+ }
+
if($cols == $this->cfg->thumbs_per_row-1) {
$cols = 0;
$rows++;
$images[$rows] = Array();
+ $img_width[$rows] = Array();
+ $img_height[$rows] = Array();
}
else {
$cols++;
@@ -378,9 +401,21 @@ class PHPFSPOT {
if(isset($_SESSION['searchfor']) && $_SESSION['searchfor'] != '')
$this->tmpl->assign('searchfor', $_SESSION['searchfor']);
+ if($this->cfg->rows_per_page != 0) {
+ $previous_start = $begin_with - ($this->cfg->rows_per_page * $this->cfg->thumbs_per_row);
+ $next_start = $begin_with + ($this->cfg->rows_per_page * $this->cfg->thumbs_per_row);
+
+ if($begin_with != 0)
+ $this->tmpl->assign("previous_url", "javascript:showPhotoIndex(". $previous_start .");");
+ if($end_with < $count)
+ $this->tmpl->assign("next_url", "javascript:showPhotoIndex(". $next_start .");");
+ }
+
$this->tmpl->assign('count', $count);
$this->tmpl->assign('width', $this->cfg->thumb_width);
$this->tmpl->assign('images', $images);
+ $this->tmpl->assign('img_width', $img_width);
+ $this->tmpl->assign('img_height', $img_height);
$this->tmpl->assign('rows', $rows);
$this->tmpl->assign('columns', $this->cfg->thumbs_per_row);
$this->tmpl->show("photo_index.tpl");