Your IP : 216.73.216.48
<?php
namespace app\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use app\models\Members;
use vendor\custom\BrowserDetection;
class MembersOnline extends \yii\db\ActiveRecord {
public static function tableName() {
return '{{%members_online}}';
}
public function behaviors() {
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'time',
'updatedAtAttribute' => 'time',
],
];
}
public function rules() {
return [
[['ip_address', 'browser', 'os', 'is_mobile'], 'required'],
[['member_id', 'ip_address', 'time'], 'integer'],
['is_mobile', 'boolean']
];
}
public function attributeLabels() {
return [
'member_id' => Yii::t('app', 'ID на потребителя'),
'ip_address' => Yii::t('app', 'IP адрес'),
'browser' => Yii::t('app', 'Браузър'),
'os' => Yii::t('app', 'Операционна система'),
'is_mobile' => Yii::t('app', 'Мобилен?'),
'time' => Yii::t('app', 'Дата и час'),
];
}
public function setOnlineMemberInfo() {
$ipAddress = ip2long(Yii::$app->getRequest()->getUserIP());
$browserDetection = new BrowserDetection();
$memberInfo = $this->find()->where(['member_id' => Yii::$app->user->identity->member_id])->one();
if ($memberInfo) {
$memberInfo->ip_address = $ipAddress;
$memberInfo->browser = $browserDetection->getBrowser() . ' ' . $browserDetection->getVersion();
$memberInfo->os = $browserDetection->getPlatform();
$memberInfo->is_mobile = $browserDetection->isMobile();
return $memberInfo->save();
} else {
$this->member_id = Yii::$app->user->identity->member_id;
$this->ip_address = $ipAddress;
$this->os = $browserDetection->getPlatform();
$this->browser = $browserDetection->getBrowser() . ' ' . $browserDetection->getVersion();
$this->is_mobile = $browserDetection->isMobile();
if (!$this->save()) {
var_dump($this->errors);
exit;
}
}
}
public function getOnlineMembers() {
$membersOnline = $this->find()->where('`time` > UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 5 MINUTE))')->all();
return $membersOnline;
}
public function getMember() {
return $this->hasOne(Members::className(), ['member_id' => 'member_id']);
}
}