issue41, remove any trace of the javascript bubble
[phpfspot.git] / phpfspot.class.php
index 47ce21109e2e980f56dd160bc51182f86ebd1b0a..8fe0f77e40824092049fa1b7eb0864cd7a05ab71 100644 (file)
@@ -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;
@@ -119,18 +126,14 @@ class PHPFSPOT {
 
    } // get_photo_details
 
-   public function getPhotoName($idx)
+   public function getPhotoName($idx, $limit = 0)
    {
       if($details = $this->get_photo_details($idx)) {
-
          $name = $details['name'];
-
-         if(strlen($name) > 15) {
-            $name = substr($name, 0, 10) ."...". substr($name, -10);
+         if($limit != 0 && strlen($name) > $limit) {
+            $name = substr($name, 0, $limit-5) ."...". substr($name, -($limit-5));
          }
-
          return $name;
-   
       }
 
    } // getPhotoName()
@@ -196,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);
@@ -332,6 +343,12 @@ class PHPFSPOT {
 
    } // resetTags()
 
+   public function resetPhotoView()
+   {
+      unset($_SESSION['current_photo']);
+
+   } // resetPhotoView();
+
    public function resetTagSearch()
    {
       unset($_SESSION['searchfor']);
@@ -482,12 +499,14 @@ class PHPFSPOT {
       $img_width[$rows] = Array();
       $img_id[$rows] = Array();
       $img_name[$rows] = Array();
+      $img_title = Array();
 
       for($i = $begin_with; $i < $end_with; $i++) {
 
          $images[$rows][$cols] = $photos[$i];
          $img_id[$rows][$cols] = $i;
-         $img_name[$rows][$cols] = $this->getPhotoName($photos[$i]);
+         $img_name[$rows][$cols] = htmlspecialchars($this->getPhotoName($photos[$i], 15));
+         $img_title[$rows][$cols] = "Click to view photo ". htmlspecialchars($this->getPhotoName($photos[$i], 0));
 
          $thumb_path = $this->cfg->base_path ."/thumbs/". $this->cfg->thumb_width ."_". $this->getMD5($photos[$i]);
 
@@ -587,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;
@@ -610,6 +624,7 @@ class PHPFSPOT {
       $this->tmpl->assign('img_height', $img_height);
       $this->tmpl->assign('img_id', $img_id);
       $this->tmpl->assign('img_name', $img_name);
+      $this->tmpl->assign('img_title', $img_title);
       $this->tmpl->assign('rows', $rows);
       $this->tmpl->assign('columns', $this->cfg->thumbs_per_row);
 
@@ -620,43 +635,6 @@ class PHPFSPOT {
 
    } // showPhotoIndex()
 
-   public function showBubbleDetails($photo, $direction)
-   {
-      if($direction == "up")
-         $direction = "bubbleimg_up";
-      else
-         $direction = "bubbleimg_down";
-
-      $details = $this->get_photo_details($photo);
-      $orig_path = $this->translate_path($details['directory_path'])  ."/". $details['name'];
-
-      $image_url = "phpfspot_img.php?idx=". $photo ."&amp;width=". $this->cfg->bubble_width;
-
-      $filesize = filesize($orig_path);
-      $filesize = rand($filesize/1024, 2);
-
-      if(!file_exists($orig_path)) {
-         $this->_warning("Photo ". $orig_path ." does not exist!<br />\n");
-         return;
-      }
-      
-      if(!is_readable($orig_path)) {
-         $this->_warning("Photo ". $orig_path ." is not readable for user ". get_current_user() ."<br />\n");
-         return;
-      }
-
-      $img = getimagesize($orig_path);
-
-      $this->tmpl->assign('file_size', $filesize);
-      $this->tmpl->assign('width', $img[0]);
-      $this->tmpl->assign('height', $img[1]);
-      $this->tmpl->assign('file_name', $details['name']);
-      $this->tmpl->assign('image_id', $direction);
-      $this->tmpl->assign('image_url', $image_url);
-      $this->tmpl->show("bubble_details.tpl");
-
-   } // showBubbleDetails()
-
    public function showCredits()
    {
       $this->tmpl->assign('version', $this->cfg->version);
@@ -834,7 +812,6 @@ class PHPFSPOT {
 
       $resolutions = Array(
          $this->cfg->thumb_width,
-         $this->cfg->bubble_width,
          $this->cfg->photo_width,
          $this->cfg->mini_width,
       );
@@ -1140,6 +1117,7 @@ class PHPFSPOT {
    public function getExport($mode)
    {
       $pictures = $this->getPhotoSelection();
+      $current_tags = $this->getCurrentTags();  
 
       if(!isset($_SERVER['HTTPS'])) $protocol = "http";
       else $protocol = "https";
@@ -1148,7 +1126,11 @@ class PHPFSPOT {
 
       foreach($pictures as $picture) {
 
-         $orig_url = $protocol ."://". $server_name . $this->cfg->web_path ."phpfspot_img.php?idx=". $picture ."&width=". $this->cfg->photo_width;
+         $orig_url = $protocol ."://". $server_name . $this->cfg->web_path ."index.php?mode=showp&id=". $picture;
+         if($current_tags != "") {
+            $orig_url.= "&tags=". $current_tags;
+         } 
+
          $thumb_url = $protocol ."://". $server_name . $this->cfg->web_path ."phpfspot_img.php?idx=". $picture ."&width=". $this->cfg->thumb_width;
 
          switch($mode) {
@@ -1160,7 +1142,7 @@ class PHPFSPOT {
                
             case 'MoinMoin':
                // [%pictureurl% %thumbnailurl%]
-               print htmlspecialchars("[$orig_url $thumb_url]") ."<br />\n";
+               print htmlspecialchars(" * [".$orig_url." ".$thumb_url."&fake=1.jpg]") ."<br />\n";
                break;
          }
 
@@ -1168,6 +1150,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()
+
 }
 
 ?>