Esempio n. 1
0
 /**
  * Добавление комментария
  *
  * @return null|string
  */
 public function addComment()
 {
     if ($this->validate()) {
         $comment = new Comment();
         $comment->user_id = $this->user_id;
         $comment->post_id = $this->post_id;
         if ($this->reply_to) {
             $comment->reply_to = $this->reply_to;
         }
         $comment->ip = Yii::$app->request->getUserIP();
         $comment->is_register = 1;
         $comment->text_raw = $this->text;
         $comment->text = HtmlPurifier::process($this->text);
         if ($comment->save()) {
             return $comment->id;
         }
     }
     return null;
 }
Esempio n. 2
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Comment::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['date' => SORT_DESC]]]);
     $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, 'reply_to' => $this->reply_to, 'post_id' => $this->post_id, 'user_id' => $this->user_id, 'date' => $this->date, 'is_register' => $this->is_register, 'approve' => $this->approve]);
     $query->andFilterWhere(['like', 'text_raw', $this->text_raw])->andFilterWhere(['like', 'text', $this->text])->andFilterWhere(['like', 'ip', $this->ip]);
     return $dataProvider;
 }
Esempio n. 3
0
 public static function getSiteSummary()
 {
     $today_begin = date("Y-m-d") . " 00:00:00";
     $today_end = date("Y-m-d") . " 23:59:59";
     $yesterday_begin = date("Y-m-d 00:00:00", time() - 86400);
     $yesterday_end = date("Y-m-d 23:59:59", time() - 86400);
     // Статьи
     $summary['postsCount'] = Post::find()->count();
     $summary['postsToday'] = Post::find()->where(['between', 'date', $today_begin, $today_end])->count();
     $summary['postsYesterday'] = Post::find()->where(['between', 'date', $yesterday_begin, $yesterday_end])->count();
     // Пользователи
     $summary['usersCount'] = User::find()->count();
     $summary['usersToday'] = User::find()->where(['between', 'created_at', strtotime($today_begin), strtotime($today_end)])->count();
     $summary['usersYesterday'] = User::find()->where(['between', 'created_at', strtotime($yesterday_begin), strtotime($yesterday_end)])->count();
     // Комментарии
     $summary['commentsCount'] = Comment::find()->count();
     $summary['commentsToday'] = Comment::find()->where(['between', 'date', $today_begin, $today_end])->count();
     $summary['commentsYesterday'] = Comment::find()->where(['between', 'date', $yesterday_begin, $yesterday_end])->count();
     // Ошибки
     $summary['errorsCount'] = Log::find()->count();
     $summary['errorsToday'] = Log::find()->where(['between', 'log_time', strtotime($today_begin), strtotime($today_end)])->count();
     $summary['errorsYesterday'] = Log::find()->where(['between', 'log_time', strtotime($yesterday_begin), strtotime($yesterday_end)])->count();
     return $summary;
 }
Esempio n. 4
0
 /**
  * Получение комментариев для статьи
  *
  * У комментариев имеется связь getUser для получения информации о пользователе, оставившем комментарий.
  * Для минимизации кол-ва запросов к базе используется "жадная загрузка" посредством метода with() со
  * связью user.
  *
  * @return $this
  */
 public function getComments()
 {
     $comments = $this->hasMany(Comment::className(), ['post_id' => 'id'])->with('user')->asArray();
     return $comments;
 }
Esempio n. 5
0
 /**
  * Finds the Comment model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param string $id
  * @return Comment the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Comment::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Esempio n. 6
0
 /**
  * Возвращает последние commNum комментариев из таблицы comment
  * @return array|\yii\db\ActiveRecord[]
  */
 public function getComments()
 {
     return Comment::find()->with('user')->orderBy(['date' => SORT_DESC])->limit($this->commNum)->all();
 }