diff options
author | cweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2009-10-26 18:52:02 +0000 |
---|---|---|
committer | cweiske <cweiske@b3834d28-1941-0410-a4f8-b48e95affb8f> | 2009-10-26 18:52:02 +0000 |
commit | 44fd0e29f4d856058f3bac3a3581d00919420169 (patch) | |
tree | 5f3752a8210bc6bc22ef6a36fa782d65e3603bf8 | |
parent | 0af3f228ac507c55a2c864aecf41ee82b2af9c5b (diff) | |
download | semanticscuttle-44fd0e29f4d856058f3bac3a3581d00919420169.tar.gz semanticscuttle-44fd0e29f4d856058f3bac3a3581d00919420169.tar.bz2 |
introduce voting config value and provide current user voting status in getBookmarks()
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@431 b3834d28-1941-0410-a4f8-b48e95affb8f
-rw-r--r-- | data/config.default.php | 6 | ||||
-rw-r--r-- | src/SemanticScuttle/Service/Bookmark.php | 16 | ||||
-rw-r--r-- | src/SemanticScuttle/Service/Vote.php | 4 |
3 files changed, 25 insertions, 1 deletions
diff --git a/data/config.default.php b/data/config.default.php index 3c54ce1..11aa997 100644 --- a/data/config.default.php +++ b/data/config.default.php @@ -408,6 +408,12 @@ $filetypes = array( */ $enableCommonBookmarkDescription = true; +/** + * Enable bookmark voting system + * + * @var boolean + */ +$enableVoting = true; /**************************** diff --git a/src/SemanticScuttle/Service/Bookmark.php b/src/SemanticScuttle/Service/Bookmark.php index a48624b..34a819c 100644 --- a/src/SemanticScuttle/Service/Bookmark.php +++ b/src/SemanticScuttle/Service/Bookmark.php @@ -432,6 +432,10 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService * - if the $user is set and IS the logged-in user, then * get all bookmarks. * + * In case voting is enabled and a user is logged in, + * each bookmark array contains two additional keys: + * 'hasVoted' and 'vote'. + * * @param integer $start Page number * @param integer $perpage Number of bookmarks per page * @param integer $user User ID @@ -601,6 +605,18 @@ class SemanticScuttle_Service_Bookmark extends SemanticScuttle_DbService if ($hash) { $query_4 .= ' AND B.bHash = "'. $hash .'"'; } + + //Voting system + if ($GLOBALS['enableVoting'] && $userservice->isLoggedOn()) { + $currentuser = $userservice->getCurrentUser(); + $vs = SemanticScuttle_Service_Factory::get('Vote'); + $query_1 .= ', !ISNULL(V.bId) as hasVoted, V.vote as vote'; + $query_2 .= ' LEFT JOIN ' . $vs->getTableName() . ' AS V' + . ' ON B.bId = V.bId' + . ' AND V.uId = ' . (int)$currentuser['uId']; + } + + $query = $query_1 . $query_2 . $query_3 . $query_4 . $query_5; if (!($dbresult = & $this->db->sql_query_limit($query, intval($perpage), intval($start)))) { diff --git a/src/SemanticScuttle/Service/Vote.php b/src/SemanticScuttle/Service/Vote.php index 7adf549..6db940c 100644 --- a/src/SemanticScuttle/Service/Vote.php +++ b/src/SemanticScuttle/Service/Vote.php @@ -221,7 +221,9 @@ class SemanticScuttle_Service_Vote extends SemanticScuttle_DbService */ public function vote($bookmark, $user, $vote = 1) { - //FIXME: check if voting is enabled (global conf var) + if ($GLOBALS['enableVoting'] == false) { + return false; + } if ($this->hasVoted($bookmark, $user)) { return false; |