diff options
| author | cweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2010-02-16 21:59:39 +0000 | 
|---|---|---|
| committer | cweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2010-02-16 21:59:39 +0000 | 
| commit | 91da444e762bd2676e94a19d45401d2e83858202 (patch) | |
| tree | 7fd7572c78ddb249f7129acea011d7cbbff064cb | |
| parent | 2f13a1c81956dba215ae37c7debf58de5e658ad4 (diff) | |
| download | semanticscuttle-91da444e762bd2676e94a19d45401d2e83858202.tar.gz semanticscuttle-91da444e762bd2676e94a19d45401d2e83858202.tar.bz2  | |
reformat countOthers()
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@658 b3834d28-1941-0410-a4f8-b48e95affb8f
| -rw-r--r-- | src/SemanticScuttle/Service/Bookmark.php | 46 | 
1 files changed, 33 insertions, 13 deletions
diff --git a/src/SemanticScuttle/Service/Bookmark.php b/src/SemanticScuttle/Service/Bookmark.php index c4d198d..05ea060 100644 --- a/src/SemanticScuttle/Service/Bookmark.php +++ b/src/SemanticScuttle/Service/Bookmark.php @@ -889,31 +889,51 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService -    function countOthers($address) +    /** +     * Counts the number of bookmarks that have the same address +     * as the given address +     * +     * @param string $address Address/URL to look for +     * +     * @return integer Number of bookmarks minus one that have the address +     */ +    public function countOthers($address)      {          if (!$address) {              return false;          } -        $userservice = SemanticScuttle_Service_Factory :: get('User'); -        $sId = $userservice->getCurrentUserId(); +        $us  = SemanticScuttle_Service_Factory::get('User'); +        $sId = (int)$us->getCurrentUserId(); -        if ($userservice->isLoggedOn()) { -            // All public bookmarks, user's own bookmarks and any shared with user -            $privacy = ' AND ((B.bStatus = 0) OR (B.uId = '. $sId .')'; -            $watchnames = $userservice->getWatchNames($sId, true); -            foreach($watchnames as $watchuser) { -                $privacy .= ' OR (U.username = "'. $watchuser .'" AND B.bStatus = 1)'; +        if ($us->isLoggedOn()) { +            //All public bookmarks, user's own bookmarks +            // and any shared with our user +            $privacy    = ' AND ((B.bStatus = 0) OR (B.uId = ' . $sId . ')'; +            $watchnames = $us->getWatchNames($sId, true); +            foreach ($watchnames as $watchuser) { +                $privacy .= ' OR (U.username = "' +                    . $this->db->sql_escape($watchuser) +                    . '" AND B.bStatus = 1)';              }              $privacy .= ')';          } else { -            // Just public bookmarks +            //Just public bookmarks              $privacy = ' AND B.bStatus = 0';          } -        $sql = 'SELECT COUNT(*) as "0" FROM '. $userservice->getTableName() .' AS U, '. $GLOBALS['tableprefix'] .'bookmarks AS B WHERE U.'. $userservice->getFieldName('primary') .' = B.uId AND B.bHash = "'. md5($address) .'"'. $privacy; -        if (!($dbresult = & $this->db->sql_query($sql))) { -            message_die(GENERAL_ERROR, 'Could not get vars', '', __LINE__, __FILE__, $sql, $this->db); +        $sql = 'SELECT COUNT(*) as "0" FROM ' +            . $us->getTableName() . ' AS U' +            . ', '. $GLOBALS['tableprefix'] . 'bookmarks AS B' +            . ' WHERE U.'. $us->getFieldName('primary') .' = B.uId' +            . ' AND B.bHash = "'. md5($address) . '"' +            . $privacy; + +        if (!($dbresult = $this->db->sql_query($sql))) { +            message_die( +                GENERAL_ERROR, 'Could not get other count', +                '', __LINE__, __FILE__, $sql, $this->db +            );          }          $count = $this->db->sql_fetchfield(0, 0);  | 
