summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpfspot.class.php51
-rw-r--r--phpfspot.js24
-rw-r--r--rpc.php5
-rw-r--r--templates/single_photo.tpl3
4 files changed, 73 insertions, 10 deletions
diff --git a/phpfspot.class.php b/phpfspot.class.php
index 33d4e24..dd634db 100644
--- a/phpfspot.class.php
+++ b/phpfspot.class.php
@@ -12,7 +12,6 @@ class PHPFSPOT {
var $tmpl;
var $tags;
var $avail_tags;
- var $current_tags;
public function __construct()
{
@@ -64,6 +63,14 @@ class PHPFSPOT {
$_SESSION['selected_tags'] = split(',', $_GET['tags']);
}
break;
+ case 'showp':
+ if(isset($_GET['tags'])) {
+ $_SESSION['selected_tags'] = split(',', $_GET['tags']);
+ }
+ if(isset($_GET['id'])) {
+ $_SESSION['current_photo'] = $_GET['id'];
+ }
+ break;
case 'export':
$this->tmpl->show("export.tpl");
return;
@@ -192,6 +199,14 @@ class PHPFSPOT {
$meta_make = isset($meta['Make']) ? $meta['Make'] ." ". $meta['Model'] : "n/a";
$meta_size = isset($meta['FileSize']) ? round($meta['FileSize']/1024, 1) ."kbyte" : "n/a";
+ $current_tags = $this->getCurrentTags();
+ $extern_link = "index.php?mode=showp&id=". $photo;
+ if($current_tags != "") {
+ $extern_link.= "&tags=". $current_tags;
+ }
+
+ $this->tmpl->assign('extern_link', $extern_link);
+
if(file_exists($thumb_path)) {
$info = getimagesize($thumb_path);
@@ -328,6 +343,12 @@ class PHPFSPOT {
} // resetTags()
+ public function resetPhotoView()
+ {
+ unset($_SESSION['current_photo']);
+
+ } // resetPhotoView();
+
public function resetTagSearch()
{
unset($_SESSION['searchfor']);
@@ -585,13 +606,8 @@ class PHPFSPOT {
$this->tmpl->assign('page_selector', $page_select);
}
- $current_tags = "";
- if($_SESSION['selected_tags'] != "") {
- foreach($_SESSION['selected_tags'] as $tag)
- $current_tags.= $tag .",";
- $current_tags = substr($current_tags, 0, strlen($current_tags)-1);
- }
-
+
+ $current_tags = $this->getCurrentTags();
$extern_link = "index.php?mode=showpi";
if($current_tags != "") {
$extern_link.= "&tags=". $current_tags;
@@ -1167,6 +1183,25 @@ class PHPFSPOT {
} // getExport()
+ private function getCurrentTags()
+ {
+ $current_tags = "";
+ if($_SESSION['selected_tags'] != "") {
+ foreach($_SESSION['selected_tags'] as $tag)
+ $current_tags.= $tag .",";
+ $current_tags = substr($current_tags, 0, strlen($current_tags)-1);
+ }
+ return $current_tags;
+
+ } // getCurrentTags()
+
+ public function getCurrentPhoto()
+ {
+ if(isset($_SESSION['current_photo'])) {
+ print $_SESSION['current_photo'];
+ }
+ } // getCurrentPhoto()
+
}
?>
diff --git a/phpfspot.js b/phpfspot.js
index ce66cf6..9204f32 100644
--- a/phpfspot.js
+++ b/phpfspot.js
@@ -131,8 +131,14 @@ function init_phpfspot()
{
refreshAvailableTags();
- if(refreshSelectedTags()) {
- showPhotoIndex();
+ if(photo = getPhotoToShow()) {
+ showImage(photo)
+ refreshSelectedTags();
+ }
+ else {
+ if(refreshSelectedTags()) {
+ showPhotoIndex();
+ }
}
}
@@ -146,5 +152,19 @@ function setBackGrdColor(item, color)
item.style.backgroundColor='#93A8CA';
}
+function getPhotoToShow()
+{
+ // update selected tags
+ var photo_to_show = HTML_AJAX.grab(encodeURI('rpc.php?action=get_photo_to_show'));
+
+ // if no image needs to be shown, return false from here
+ if(photo_to_show == "")
+ return false;
+
+ return photo_to_show;
+}
+
+
+
var startup = 1;
diff --git a/rpc.php b/rpc.php
index 704c921..4bbf4d5 100644
--- a/rpc.php
+++ b/rpc.php
@@ -70,6 +70,7 @@ class PHPFSPOT_RPC {
$fspot->resetTagSearch();
$fspot->resetTags();
+ $fspot->resetPhotoView();
break;
case 'tagcondition':
@@ -103,6 +104,10 @@ class PHPFSPOT_RPC {
$fspot->getExport($_GET['mode']);
break;
+ case 'get_photo_to_show':
+ $fspot->getCurrentPhoto();
+ break;
+
}
} // process_ajax_request();
diff --git a/templates/single_photo.tpl b/templates/single_photo.tpl
index e83d914..9f92693 100644
--- a/templates/single_photo.tpl
+++ b/templates/single_photo.tpl
@@ -6,6 +6,9 @@
&nbsp;{$description}<br />
</td>
<td class="index_header" style="text-align: right;">
+ {if $extern_link }
+ <a href="{$extern_link}" title="Use this link to return to the current view"><img src="resources/link.png" /></a>
+ {/if}
<a href="{$image_url_full}" target="_blank" onclick="click(this);">
<img src="resources/original.png" alt="original resolution" />
</a>