/** * Removes a vote from $user_id to the task $task_id * @param integer $user_id * @param integer $task_id * @access public * @return bool * @version 1.0 */ public static function remove_vote($user_id, $task_id) { global $db; $user = $GLOBALS['user']; if ($user_id != $user->id) { $user = new User($user_id); } $task = Flyspray::GetTaskDetails($task_id); if (!$task) { return false; } if ($user->can_vote($task) == -2) { if ($db->Query("DELETE FROM {votes} WHERE user_id = ? and task_id = ?", array($user->id, $task_id))) { // TODO: Log event in a later version. return true; } } return false; }
/** * Adds a vote from $user_id to the task $task_id * @param integer $user_id * @param integer $task_id * @access public * @return bool * @version 1.0 */ function add_vote($user_id, $task_id) { global $db; $user = $GLOBALS['user']; if ($user_id != $user->id) { $user = new User($user_id); } $task = Flyspray::GetTaskDetails($task_id); if (!$task) { return false; } if ($user->can_vote($task) > 0) { if ($db->x->autoExecute('{votes}', array('user_id' => $user->id, 'task_id' => $task_id, 'date_time' => time()))) { // [RED] Update vote count $votes = $db->x->GetOne('SELECT count(*) FROM {votes} WHERE task_id = ?', null, $task_id); $db->x->execParam('UPDATE {redundant} SET vote_count = ? WHERE task_id = ?', array($votes, $task_id)); return true; } } return false; }