diff options
Diffstat (limited to 'src/SemanticScuttle/Service')
| -rw-r--r-- | src/SemanticScuttle/Service/Bookmark2Tag.php | 29 | 
1 files changed, 16 insertions, 13 deletions
| diff --git a/src/SemanticScuttle/Service/Bookmark2Tag.php b/src/SemanticScuttle/Service/Bookmark2Tag.php index 04ee43d..914abc6 100644 --- a/src/SemanticScuttle/Service/Bookmark2Tag.php +++ b/src/SemanticScuttle/Service/Bookmark2Tag.php @@ -552,13 +552,6 @@ class SemanticScuttle_Service_Bookmark2Tag extends SemanticScuttle_DbService          $user = null, $limit = 30, $logged_on_user = null, $days = null,          $beginsWith = null      ) { -        // Only count the tags that are visible to the current user. -        if (($user != $logged_on_user) || is_null($user) || ($user === false)) { -            $privacy = ' AND B.bStatus = 0'; -        } else { -            $privacy = ''; -        } -          $query = 'SELECT'              . ' T.tag, COUNT(T.bId) AS bCount'              . ' FROM ' @@ -566,20 +559,30 @@ class SemanticScuttle_Service_Bookmark2Tag extends SemanticScuttle_DbService              . ', ' . $GLOBALS['tableprefix'] . 'bookmarks AS B'              . ' WHERE'; -        if (is_null($user) || ($user === false)) { +        if (is_null($user) || $user === false) {              $query .= ' B.bId = T.bId AND B.bStatus = 0';          } else if (is_array($user)) {              $query .= ' (1 = 0';  //tricks              foreach ($user as $u) { -                if (is_numeric($u)) { -                    $query .= ' OR B.uId = ' . $this->db->sql_escape($u) -                        . ' AND B.bId = T.bId'; +                if (!is_numeric($u)) { +                    continue; +                } +                $query .= ' OR (' +                    . ' B.uId = ' . $this->db->sql_escape($u) +                    . ' AND B.bId = T.bId'; +                if ($u !== $logged_on_user) { +                    //public bookmarks of others +                    $query .= ' AND B.bStatus = 0';                  } +                $query .= ')';              } -            $query .= ' )' . $privacy; +            $query .= ' )';          } else {              $query .= ' B.uId = ' . $this->db->sql_escape($user) -                . ' AND B.bId = T.bId' . $privacy; +                . ' AND B.bId = T.bId'; +            if ($user !== $logged_on_user) { +                $query .= ' AND B.bStatus = 0'; +            }          }          if (is_int($days)) { | 
