From 44fd0e29f4d856058f3bac3a3581d00919420169 Mon Sep 17 00:00:00 2001 From: cweiske Date: Mon, 26 Oct 2009 18:52:02 +0000 Subject: [PATCH] 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 --- data/config.default.php | 6 ++++++ src/SemanticScuttle/Service/Bookmark.php | 16 ++++++++++++++++ src/SemanticScuttle/Service/Vote.php | 4 +++- 3 files changed, 25 insertions(+), 1 deletion(-) 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;