X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=blobdiff_plain;f=phpfspot.class.php;h=b4d8b17ee5ce27f6533b350ee16ec7104b7b2fd1;hp=85d276e104d29a09a792cae3b5f59d004f83017c;hb=c0c134e5d232d5ec11e367b053972d87a0402216;hpb=b8e94789af7969321cd895d1cef5d175074afcbb
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 85d276e..b4d8b17 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -503,7 +503,8 @@ class PHPFSPOT {
$this->tmpl->assign('image_filename', $this->parse_uri($details['uri'], 'filename'));
$this->tmpl->assign('tags', $this->get_photo_tags($photo));
- $this->tmpl->assign('current', $current);
+ $this->tmpl->assign('current_page', $this->getCurrentPage($current, $count));
+ $this->tmpl->assign('current_img', $photo);
if($previous_img) {
$this->tmpl->assign('previous_url', "javascript:showImage(". $previous_img .");");
@@ -520,8 +521,6 @@ class PHPFSPOT {
$this->tmpl->show("single_photo.tpl");
- print "\n";
-
} // showPhoto()
/**
@@ -748,11 +747,12 @@ class PHPFSPOT {
public function getPhotoSelection()
{
$matched_photos = Array();
+ $additional_where_cond = "";
if(isset($_SESSION['from_date']) && isset($_SESSION['to_date'])) {
$from_date = $_SESSION['from_date'];
$to_date = $_SESSION['to_date'];
- $additional_where_cond = "
+ $additional_where_cond.= "
p.time>='". $from_date ."'
AND
p.time<='". $to_date ."'
@@ -799,7 +799,7 @@ class PHPFSPOT {
ON pt2.tag_id=t2.id
WHERE t.name LIKE '%". $_SESSION['searchfor_tag'] ."%' ";
- if(isset($additional_where_cond))
+ if(isset($additional_where_cond) && !empty($additional_where_cond))
$query_str.= "AND ". $additional_where_cond ." ";
if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
@@ -836,7 +836,7 @@ class PHPFSPOT {
ON pt1.photo_id=p.id
WHERE pt1.tag_id IN (". $selected .")
";
- if(isset($additional_where_cond))
+ if(isset($additional_where_cond) && !empty($additional_where_cond))
$query_str.= "AND ". $additional_where_cond ." ";
if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
@@ -892,7 +892,7 @@ class PHPFSPOT {
AND pt". ($i+2) .".tag_id=". $_SESSION['selected_tags'][$i] ."
";
}
- if(isset($additional_where_cond))
+ if(isset($additional_where_cond) && !empty($additional_where_cond))
$query_str.= "AND ". $additional_where_cond;
if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
@@ -921,11 +921,11 @@ class PHPFSPOT {
ON pt.tag_id=t.id
";
- if(isset($additional_where_cond))
+ if(isset($additional_where_cond) && !empty($additional_where_cond))
$query_str.= "WHERE ". $additional_where_cond ." ";
if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
- if(isset($additional_where_cond))
+ if(isset($additional_where_cond) && !empty($additional_where_cond))
$query_str.= "AND t.name IN ('".implode("','",$this->cfg->show_tags). "')";
else
$query_str.= "WHERE t.name IN ('".implode("','",$this->cfg->show_tags). "')";
@@ -954,15 +954,12 @@ class PHPFSPOT {
$count = count($photos);
- if(isset($_SESSION['begin_with']) && $_SESSION['begin_with'] != "")
- $anchor = $_SESSION['begin_with'];
-
+ /* if all thumbnails should be shown on one page */
if(!isset($this->cfg->thumbs_per_page) || $this->cfg->thumbs_per_page == 0) {
-
$begin_with = 0;
$end_with = $count;
-
}
+ /* thumbnails should be splitted up in several pages */
elseif($this->cfg->thumbs_per_page > 0) {
if(!isset($_SESSION['begin_with']) || $_SESSION['begin_with'] == 0) {
@@ -1132,8 +1129,14 @@ class PHPFSPOT {
$this->tmpl->show("photo_index.tpl");
- if(isset($anchor))
- print "\n";
+ /* if we are returning to photo index from an photo-view,
+ scroll the window to the last shown photo-thumbnail.
+ after this, unset the last_photo session variable.
+ */
+ if(isset($_SESSION['last_photo'])) {
+ print "\n";
+ unset($_SESSION['last_photo']);
+ }
} // showPhotoIndex()
@@ -1467,7 +1470,7 @@ class PHPFSPOT {
* getPhotoSelection() will then only return the matching
* photos.
*/
- public function startSearch($searchfor_tag, $from = 0, $to = 0)
+ public function startSearch()
{
if(isset($_POST['from']) && $this->isValidDate($_POST['from'])) {
$from = $_POST['from'];
@@ -1478,28 +1481,27 @@ class PHPFSPOT {
if(isset($_POST['for_tag']) && is_string($_POST['for_tag'])) {
$searchfor_tag = $_POST['for_tag'];
+ $_SESSION['searchfor_tag'] = $_POST['for_tag'];
}
if(isset($_POST['for_name']) && is_string($_POST['for_name'])) {
$searchfor_name = $_POST['for_name'];
+ $_SESSION['searchfor_name'] = $_POST['for_name'];
}
$this->get_tags();
- $_SESSION['searchfor_tag'] = $searchfor_tag;
- $_SESSION['searchfor_name'] = $searchfor_name;
-
- if($from != 0)
+ if(isset($from) && !empty($from))
$_SESSION['from_date'] = strtotime($from ." 00:00:00");
else
unset($_SESSION['from_date']);
- if($to != 0)
+ if(isset($to) && !empty($to))
$_SESSION['to_date'] = strtotime($to ." 23:59:59");
else
unset($_SESSION['to_date']);
- if($searchfor_tag != "") {
+ if(isset($searchfor_tag) && !empty($searchfor_tag)) {
/* new search, reset the current selected tags */
$_SESSION['selected_tags'] = Array();
foreach($this->avail_tags as $tag) {
@@ -2423,8 +2425,8 @@ class PHPFSPOT {
}
/* check for pending slash on web_path */
- if(!preg_match("/\/$/", $this->web_path))
- $this->web_path.= "/";
+ if(!preg_match("/\/$/", $this->cfg->web_path))
+ $this->cfg->web_path.= "/";
return $this->runtime_error;
@@ -2466,6 +2468,27 @@ class PHPFSPOT {
} // cleanup_phpfspot_db()
+ /**
+ * return first image of the page, the $current photo
+ * lies in.
+ *
+ * this function is used to find out the first photo of the
+ * current page, in which the $current photo lies. this is
+ * used to display the correct photo, when calling showPhotoIndex()
+ * from showImage()
+ */
+ private function getCurrentPage($current, $max)
+ {
+ if(isset($this->cfg->thumbs_per_page) && !empty($this->cfg->thumbs_per_page)) {
+ for($page_start = 0; $page_start <= $max; $page_start+=$this->cfg->thumbs_per_page) {
+ if($current >= $page_start && $current < ($page_start+$this->cfg->thumbs_per_page))
+ return $page_start;
+ }
+ }
+ return 0;
+
+ } // getCurrentPage()
+
} // class PHPFSPOT
?>