Пример #1
0
 /**
  * Фиксирум просмотр документа
  * Не более 1 раза с одного IP в день
  * @param $document_id - ID документа
  * @return bool
  */
 public static function check($document_id)
 {
     $ip = $_SERVER["REMOTE_ADDR"];
     // Проверяем наличие просмотров за сегодня с этого IP
     $model = Visit::find()->where('document_id=:document_id && ip=:ip && created_at>=:created_at', [':document_id' => $document_id, ':ip' => $ip, ':created_at' => date('Y-m-d') . ' 00:00:00'])->count();
     // Сохраняем запись
     if (!$model) {
         $visit = new Visit();
         $visit->document_id = $document_id;
         $visit->ip = $ip;
         $visit->user_id = Yii::$app->user->isGuest ? null : Yii::$app->user->id;
         $visit->user_agent = $_SERVER['HTTP_USER_AGENT'];
         $visit->save();
         return true;
     } else {
         return false;
     }
 }