db->query('SELECT feedback.*, feedback_states.name feedbackStateName, feedback_states.displayname feedbackStateDisplayname, users.username username, users.displayname userDisplayname, supporter.username supporterUsername, supporter.displayname supporterDisplayname FROM feedback LEFT JOIN feedback_states ON feedback.feedbackState = feedback_states.ID LEFT JOIN users ON feedback.userID = users.ID LEFT JOIN users supporter ON feedback.supporterID = supporter.ID ORDER BY feedbackState ASC, datetime DESC')->result_array(); } public function setFeedbackSupporter($feedbackID, $userID, $feedbackState = 1) { if($feedbackState == 0) $feedbackState = 1; $this->db->query('UPDATE feedback SET feedbackState = ?, supporterID = ?, lastStateUpdate = NOW() WHERE ID = ?', [$feedbackState, $userID, $feedbackID]); } public function updateState($feedbackID, $userID, $feedbackState) { $this->db->query('UPDATE feedback SET feedbackState = (SELECT ID FROM feedback_states WHERE name = ?), lastStateUpdate = NOW() WHERE ID = ? AND supporterID = ?', [$feedbackState, $feedbackID, $userID]); } public function archiveFeedback($feedbackID) { $data = $this->db->query('SELECT * FROM feedback WHERE ID = ? AND feedbackState >= 10', [$feedbackID])->result_array(); if(!empty($data)) { $this->db->query('INSERT INTO feedback_archive (ID, page, message, datetime, anonymous, userID, email, feedbackState, feedbackStatusMessage, supporterID) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $data[0]); } return !empty($data); } }