public function votequestion($post) { $role = Yii::app()->user->role; $userid = Yii::app()->user->getId(); $question_id = $post['question_id']; $v = new QuestionVotes(); $v->question_id = $question_id; $v->voted_by = $userid; $v->voted_user_type = $role; if ($v->save()) { $status = true; } else { $status = false; $return['message'] = $q->getErrors(); } $question = Questions::model()->findByPk($question_id); $return['status'] = $status; $return['votecount'] = $question->voteCount; $return['id'] = $question_id; $this->renderJSON($return, $status); }
/** * Controller for viewing a * tag and loading up all questions * from within that tag */ public function actionTag() { error_reporting(E_ALL); ini_set("display_errors", 1); $tag = Tag::model()->findByPk(Yii::app()->request->getParam('id')); // Find all questions with that tag $criteria = new CDbCriteria(); $criteria->condition = "tag_id=:tag_id"; $criteria->params = array(':tag_id' => $tag->id); $questions = Question::model()->with('tags')->findAll($criteria); // User has just voted on a question $questionVotesModel = new QuestionVotes(); if (isset($_POST['QuestionVotes'])) { $questionVotesModel->attributes = $_POST['QuestionVotes']; $questionVotesModel->created_by = Yii::app()->user->id; if ($questionVotesModel->validate()) { // TODO: If the user has previously voted on this, drop it $previousVote = QuestionVotes::model()->find('post_id=:post_id AND created_by=:user_id', array('post_id' => $questionVotesModel->post_id, 'user_id' => Yii::app()->user->id)); if ($previousVote) { $previousVote->delete(); } $questionVotesModel->save(); $this->redirect($this->createUrl('//questionanswer/main/index')); } } $this->render('tags', array('tag' => $tag, 'questions' => Question::model()->tag_overview($tag->id))); }