/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Vote::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'user_id' => $this->user_id, 'questions_id' => $this->questions_id, 'vote' => $this->vote]); return $dataProvider; }
public static function cheLikeUser($id, $nomination) { if (isset(Yii::$app->user->identity->id)) { if (!isset($id) && $id == null) { return false; } $vote = Vote::find()->where(['user_id' => Yii::$app->user->identity->id, 'story_id' => $id])->one(); if (!empty($vote) && $vote != null) { $story_nomination = Story::find()->where(['id' => $vote->story_id])->one(); if ($story_nomination->nomination === $nomination) { return true; } else { return false; } } else { $vote = Vote::find()->where(['user_id' => Yii::$app->user->identity->id])->all(); $arr = []; foreach ($vote as $k => $v) { $story_nomination = Story::find()->where(['id' => $v->story_id])->one(); if ($story_nomination->nomination === $nomination) { $arr[$story_nomination->nomination] = $story_nomination->nomination; } } if (empty($arr)) { return false; } else { return true; } } } else { return false; } }
private static function _loadVoted() { self::$_voted = array_map(function ($a) { return $a['snippet_id']; }, Vote::find()->select('snippet_id')->where(['ip' => ip2long(Yii::$app->request->userIP), 'fingerprint' => md5(Yii::$app->request->userAgent)])->asArray()->all()); }
public static function getResult() { $result = []; //get from db $votes = self::find()->all(); $questions = Questions::find()->all(); //add custom questions $customYes = new Questions(); $customYes->id = 1000001; $customYes->questions = 'Iншi'; $customYes->yes = 1; $customYes->no = 0; $questions[] = $customYes; $customNo = new Questions(); $customNo->id = 1000002; $customNo->questions = 'Iншi'; $customNo->no = 1; $customNo->yes = 0; $questions[] = $customNo; //total $result['yes']['count'] = Vote::find()->yesOnly()->count(); $result['no']['count'] = Vote::find()->noOnly()->count(); $result['yes']['count'] += Vote::find()->where(['questions_id' => 1000001])->count(); $result['no']['count'] += Vote::find()->where(['questions_id' => 1000002])->count(); // echo '<pre>'; // var_dump($result); // echo '</pre>'; // echo '<pre>'; // var_dump($customYes); // echo '</pre>'; //get total count foreach ($questions as $key => $value) { if (!empty($value->yes)) { $result['yes']['count'] += $value->vote; } if (!empty($value->no)) { $result['no']['count'] += $value->vote; } } //set total values $totalCount = $result['yes']['count'] + $result['no']['count']; $result['yes']['percent'] = round($result['yes']['count'] / $totalCount * 100); $result['no']['percent'] = round($result['no']['count'] / $totalCount * 100); //set percent // \yii\helpers\VarDumper::dump($questions, 11, 1); foreach ($questions as $key => $value) { $result['questions'][$value->id] = ['count' => $value->vote, 'vote' => $value->vote]; if (!empty($value->yes)) { // \yii\helpers\VarDumper::dump($result['questions'], 11, 1); $result['questions'][$value->id]['group'] = 'yes'; $result['questions'][$value->id]['percent'] = round($result['questions'][$value->id]['count'] / $result['yes']['count'] * 100); } if (!empty($value->no)) { $result['questions'][$value->id]['group'] = 'no'; $result['questions'][$value->id]['percent'] = round($result['questions'][$value->id]['count'] / $result['no']['count'] * 100); } } // \yii\helpers\VarDumper::dump($result, 11, 1); // die(); //add each vote to array foreach ($votes as $key => $vote) { if ('yes' == $result['questions'][$vote->questions_id]['group']) { $result['questions'][$vote->questions_id]['count'] = $result['questions'][$vote->questions_id]['count'] + 1; $result['questions'][$vote->questions_id]['percent'] = round($result['questions'][$vote->questions_id]['count'] / $result['yes']['count'] * 100); } if ('no' == $result['questions'][$vote->questions_id]['group']) { $result['questions'][$vote->questions_id]['count'] = $result['questions'][$vote->questions_id]['count'] + 1; $result['questions'][$vote->questions_id]['percent'] = round($result['questions'][$vote->questions_id]['count'] / $result['no']['count'] * 100); } } //set smile foreach ($questions as $key => $value) { $result['questions'][$value->id]['smile'] = 10 - round($result['questions'][$value->id]['percent'] / 10); if ($result['questions'][$value->id]['smile'] < 1) { $result['questions'][$value->id]['smile'] = 1; } } /*echo '<pre>'; print_r($result); die();*/ // echo '<pre>'; // var_dump($result); // echo '</pre>'; // die(); return $result; }
/** * Deletes an existing Story model. * If deletion is successful, the browser will be redirected to the 'index' page. * @param string $id * @return mixed */ public function actionDelete($id) { $model = $this->findModel($id); $model->delete(); if ($model->photo != '' && is_file(__DIR__ . '/../../../web/upload/220_125/220_125_' . $model->photo)) { unlink(__DIR__ . '/../../../web/upload/220_125/220_125_' . $model->photo); } if ($model->photo != '' && file_exists(__DIR__ . '/../../../web/upload/story/' . $model->photo)) { unlink(__DIR__ . '/../../../web/upload/story/' . $model->photo); } if ($model->photo != '' && file_exists(__DIR__ . '/../../../web/upload/300_174/300_174_' . $model->photo)) { unlink(__DIR__ . '/../../../web/upload/300_174/300_174_' . $model->photo); } $vote = Vote::find()->where(['story_id' => $model->id])->one(); if ($vote != '' && $vote !== null) { $vote->delete(); } return $this->redirect(['index']); }