From: Andreas Unterkircher Date: Thu, 12 Jul 2007 17:36:34 +0000 (+0000) Subject: issue13, added first try of external link to directly jump to a photo X-Git-Tag: phpfspot-1.2~143 X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=commitdiff_plain;h=15a6c1b6db19c2304d4c1c15dc6ed2a21a51cee2 issue13, added first try of external link to directly jump to a photo git-svn-id: file:///var/lib/svn/phpfspot/trunk@192 fa6a889d-dae6-447d-9e79-4ba9a3039384 --- 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 @@  {$description}
+ {if $extern_link } + + {/if} original resolution