public function beforeDelete() { if (parent::beforeDelete()) { //delete all upvotes and polls YBoardUpvoted::deleteAll(['poll_id' => $this->id]); return true; } else { return false; } }
public function beforeDelete() { if (parent::beforeDelete()) { //delete: Messages(to/from), Ban History, UpVotes, LogTopic YBoardMessage::deleteAll(['or', 'sendfrom' => $this->id, 'sendto' => $this->id]); // Post(Polls and Votes) YBoardVote::deleteAll(['user_id' => $this->id]); YBoardUpvoted::deleteAll(['member_id' => $this->id]); YBoardPoll::deleteAll(['user_id' => $this->id]); YBoardPost::deleteAll(['user_id' => $this->id]); //log topic YBoardLogTopic::deleteAll(['member_id' => $this->id]); //ban YBoardBan::deleteAll(['user_id' => $this->id]); return true; } else { return false; } }
/** * Handle Ajax call for upvote/downvote of post */ public function actionUpvote() { if (!Yii::$app->user->can('app.forum.forum.upvote')) { throw new ForbiddenHttpException(YBoard::t('yboard', 'You have no enough permission to access this page! If you think its a mistake, please consider reporting to us.')); } $json = []; if (isset($_POST['id'])) { $criteria = ['member_id' => Yii::$app->user->identity->id, 'post_id' => $_POST['id']]; if (YBoardUpvoted::find()->where($criteria)->count() > 0) { // remove upvote YBoardUpvoted::deleteAll($criteria); $post = YBoardPost::findOne($_POST['id']); $topic = YBoardTopic::findOne($post->topic_id); $member = YBoardMember::findOne($post->user_id); $post->updateCounters(array('upvoted' => -1)); $topic->updateCounters(array('upvoted' => -1)); } else { // add upvote $upvote = new YBoardUpvoted(); $upvote->member_id = Yii::$app->user->id; $upvote->post_id = $_POST['id']; $upvote->author = $_POST['author']; $upvote->save(); $post = YBoardPost::findOne($_POST['id']); $topic = YBoardTopic::findOne($post->topic_id); $member = YBoardMember::findOne($post->user_id); $post->updateCounters(array('upvoted' => 1)); $topic->updateCounters(array('upvoted' => 1)); } $json['success'] = 'yes'; $json['html'] = $this->showUpvote($_POST['id']); } else { $json['success'] = 'no'; } echo json_encode($json); Yii::$app->end(); }