Merge branch 'master' of /var/cache/git/phpfspot
[phpfspot.git] / phpfspot.class.php
index 4bc3266d734731a10025f44d9c528d7f0193438e..d7a76c3a50d9cfd80830dda1553a87f6007d9b52 100644 (file)
@@ -392,6 +392,11 @@ class PHPFSPOT {
       $this->avail_tags = Array();
       $count = 0;
    
+      /* if show_tags has been set in the configuration (only show photos
+         which are tagged by these tags) they following will take care,
+         that only these other tags are displayed where the photo is also
+         tagged with one of show_tags.
+      */
       if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
          $query_str="
             SELECT
@@ -459,6 +464,7 @@ class PHPFSPOT {
     */
    public function get_photo_details($idx)
    {
+      /* ~ F-Spot version 0.3.x */
       if($this->dbver < 9) {
          $query_str = "
             SELECT p.id, p.name, p.time, p.directory_path, p.description
@@ -481,8 +487,8 @@ class PHPFSPOT {
          }
       }
 
-      /* if show_tags is set, only return details for photos which
-         are specified to be shown
+      /* if show_tags is set, only return details of photos which are
+         tagged with a tag that has been specified to be shown.
       */
       if(isset($this->cfg->show_tags) && !empty($this->cfg->show_tags)) {
          $query_str.= "
@@ -503,6 +509,9 @@ class PHPFSPOT {
 
          $row = $this->db->db_fetch_object($result);
 
+         /* before F-Spot db version 9 there was no uri column but seperated
+            columns for directory_path and name (= filename).
+         */
          if($this->dbver < 9) {
             $row['uri'] = "file://". $row['directory_path'] ."/". $row['name'];
          }
@@ -518,9 +527,10 @@ class PHPFSPOT {
    /**
     * returns aligned photo names 
     *
-    * this function returns aligned (length) names for
-    * an specific photo. If the length of the name exceeds
-    * $limit the name will be shrinked (...)
+    * this function returns aligned (length) names for a specific photo.
+    * If the length of the name exceeds $limit the name will bei
+    * shrinked (...).
+    *
     * @param integer $idx
     * @param integer $limit
     * @return string|null
@@ -541,11 +551,11 @@ class PHPFSPOT {
    /**
     * get photo rating level
     *
-    * this function will return the integer-based rating
-    * level of the photo. This can only be done, if the F-Spot
-    * database is at a specific level. If rating value can not
-    * be found, zero will be returned indicating no rating value
-    * is available.
+    * this function will return the integer-based rating level of a
+    * photo. This can only be done, if the F-Spot database is at a
+    * specific version. If rating value can not be found, zero will
+    * be returned indicating no rating value is available.
+    *
     * @param integer idx
     * @return integer
     */
@@ -563,8 +573,8 @@ class PHPFSPOT {
    /**
     * get rate-search bars
     *
-    * this function will return the rating-bars for the
-    * search field.
+    * this function will return the rating-bars for the search field.
+    *
     * @return string
     */
    public function get_rate_search()
@@ -610,9 +620,9 @@ class PHPFSPOT {
    /**
     * shrink text according provided limit
     *
-    * If the length of the name exceeds $limit the
-    * text will be shortend and some content in between
-    * will be replaced with "..." 
+    * If the length of the name exceeds $limit, text will be shortend
+    * and inner content will be replaced with "...".
+    *
     * @param string $ext
     * @param integer $limit
     * @return string
@@ -841,6 +851,9 @@ class PHPFSPOT {
       // loop through our tag array
       foreach ($tags as $key => $value) {
 
+         /* has the currently processed tag already been added to
+            the selected tag list? if so, ignore it here...
+         */
          if(isset($_SESSION['selected_tags']) && in_array($key, $_SESSION['selected_tags']))
             continue;
 
@@ -849,7 +862,7 @@ class PHPFSPOT {
          // multiply by the font-size increment ($size)
          // and add the $min_size set above
          $size = $min_size + (($value - $min_qty) * $step);
-          // uncomment if you want sizes in whole %:
+         // uncomment if you want sizes in whole %:
          $size = ceil($size);
 
          $color = $min_sat + ($value - $min_qty) * $step_sat;
@@ -859,10 +872,20 @@ class PHPFSPOT {
          $b = '88';
 
          if(isset($this->tags[$key])) {
-            if($this->is_user_friendly_url())
-               $output.= "<a href=\"". $this->cfg->web_path ."/tag/". $key ."\" onclick=\"Tags('add', ". $key ."); return false;\" class=\"tag\" style=\"font-size: ". $size ."%; color: #". $r.$g.$b .";\">". $this->tags[$key] ."</a>, ";
-            else
-               $output.= "<a href=\"". $this->cfg->web_path ."/index.php?mode=showpi\" onclick=\"Tags('add', ". $key ."); return false;\" class=\"tag\" style=\"font-size: ". $size ."%; color: #". $r.$g.$b .";\">". $this->tags[$key] ."</a>, ";
+            if($this->is_user_friendly_url()) {
+               $output.= "<a href=\"". $this->cfg->web_path ."/tag/". $key ."\"
+                  onclick=\"Tags('add', ". $key ."); return false;\"
+                  class=\"tag\"
+                  style=\"font-size: ". $size ."%; color: #". $r.$g.$b .";\"
+                  title=\"Tag ". $this->tags[$key] .", ". $tags[$key] ." picture(s)\">". $this->tags[$key] ."</a>, ";
+            }
+            else {
+               $output.= "<a href=\"". $this->cfg->web_path ."/index.php?mode=showpi\"
+                  onclick=\"Tags('add', ". $key ."); return false;\"
+                  class=\"tag\"
+                  style=\"font-size: ". $size ."%; color: #". $r.$g.$b .";\"
+                  title=\"Tag ". $this->tags[$key] .", ". $tags[$key] ." picture(s)\">". $this->tags[$key] ."</a>, ";
+            }
          }
       }
 
@@ -2726,7 +2749,7 @@ class PHPFSPOT {
             return " ORDER BY p.rating ASC, t.name ASC";
             break;
          case 'rate_desc':
-            return " ORDER BY p.rating DESC, t.name DESC";
+            return " ORDER BY p.rating DESC, t.name ASC";
             break;
       }