X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=blobdiff_plain;f=phpfspot.class.php;h=fb54eb6cf87258fa7dd9401308919b8b9976a2e0;hp=33f3b5b8938acafc30041874265c70d5e71ff398;hb=dd7413bc6a4cdb0578ea827f60d18b17849be4a6;hpb=b7f5e6235288878a71e7df1bf586e9352096f74a diff --git a/phpfspot.class.php b/phpfspot.class.php index 33f3b5b..fb54eb6 100644 --- a/phpfspot.class.php +++ b/phpfspot.class.php @@ -23,8 +23,7 @@ class PHPFSPOT { $this->cfg = new PHPFSPOT_CFG; - $this->db = new PHPFSPOT_DB(&$this, $this->cfg->fspot_db); - + $this->db = new PHPFSPOT_DB(&$this, $this->cfg->fspot_db); $this->cfg_db = new PHPFSPOT_DB(&$this, $this->cfg->phpfspot_db); $this->check_config_table(); @@ -69,6 +68,7 @@ class PHPFSPOT { private function get_tags() { + $this->avail_tags = Array(); $count = 0; @@ -147,7 +147,7 @@ class PHPFSPOT { /* If the thumbnail doesn't exist yet, try to create it */ if(!file_exists($thumb_path)) { - $this->gen_thumb($photo, 0, 1); + $this->gen_thumb($photo, true); } $meta = $this->get_meta_informations($orig_path); @@ -281,6 +281,12 @@ class PHPFSPOT { } // resetTags() + public function resetTagSearch() + { + unset($_SESSION['searchfor']); + + } // resetTagSearch() + public function getPhotoSelection() { $tagged_photos = Array(); @@ -436,9 +442,12 @@ class PHPFSPOT { } $current_tags = ""; - foreach($_SESSION['selected_tags'] as $tag) - $current_tags.= $tag .","; - $current_tags = substr($current_tags, 0, strlen($current_tags)-1); + if($_SESSION['selected_tags'] != "") { + foreach($_SESSION['selected_tags'] as $tag) + $current_tags.= $tag .","; + $current_tags = substr($current_tags, 0, strlen($current_tags)-1); + } + $extern_link = "http://". $_SERVER['SERVER_NAME'] ."/index.php?mode=showpi&tags=". $current_tags; $this->tmpl->assign('extern_link', $extern_link); @@ -504,6 +513,12 @@ class PHPFSPOT { if(!file_exists($orig_image)) return false; + $details = getimagesize($orig_image); + + /* check if original photo is a support image type */ + if(!$this->parent->checkifImageSupported($details['mime'])) + return false; + $meta = $this->get_meta_informations($orig_image); $rotate = 0; @@ -624,21 +639,24 @@ class PHPFSPOT { * 2. Check if the md5sum of the original file has changed * 3. Generate the thumbnails if needed */ - public function gen_thumb($idx = 0, $fromcmd = 0, $force = 0) + public function gen_thumb($idx = 0, $force = 0) { + $error = 0; + $resolutions = Array( $this->cfg->thumb_width, $this->cfg->bubble_width, $this->cfg->photo_width, ); + /* get details from F-Spot's database */ $details = $this->get_photo_details($idx); + + /* calculate file MD5 sum */ $full_path = $this->translate_path($details['directory_path']) ."/". $details['name']; $file_md5 = md5_file($full_path); - if($fromcmd) print "Image [". $idx ."] ". $details['name'] ." Thumbnails:"; - - $error = 0; + $this->_debug("Image [". $idx ."] ". $details['name'] ." Thumbnails:"); foreach($resolutions as $resolution) { @@ -647,16 +665,15 @@ class PHPFSPOT { /* if the thumbnail file doesn't exist, create it */ if(!file_exists($thumb_path)) { - if($fromcmd) print " ". $resolution ."px"; + $this->_debug(" ". $resolution ."px"); if(!$this->create_thumbnail($full_path, $thumb_path, $resolution)) $error = 1; - } /* if the file hasn't changed there is no need to regen the thumb */ elseif($file_md5 != $this->getMD5($idx) || $force) { - if($fromcmd) print " ". $resolution ."px"; + $this->_debug(" ". $resolution ."px"); if(!$this->create_thumbnail($full_path, $thumb_path, $resolution)) $error = 1; @@ -664,10 +681,11 @@ class PHPFSPOT { } /* set the new/changed MD5 sum for the current photo */ - if(!$error) + if(!$error) { $this->setMD5($idx, $file_md5); + } - if($fromcmd) print "\n"; + $this->_debug("\n"); } // gen_thumb() @@ -843,7 +861,7 @@ class PHPFSPOT { /* Check for HTML_AJAX PEAR package, lent from Horde project */ ini_set('track_errors', 1); - @include 'HTML/AJAX/Server.php'; + @include_once 'HTML/AJAX/Server.php'; if(isset($php_errormsg)) { print "PEAR HTML_AJAX package is missing
\n"; $missing = true; @@ -856,7 +874,23 @@ class PHPFSPOT { return true; } // checkRequirements() - + + private function _debug($text) + { + if($this->fromcmd) { + print $text; + } + + } // _debug() + + public function checkifImageSupported($mime) + { + if(in_array($mime, Array("image/jpeg"))) + return true; + + return false; + + } // checkifImageSupported() }