Filter.php
3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
namespace app\models;
use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\Expression;
/**
* This is the model class for table "{{%filters}}".
*
* @property int $id
* @property string $pattern Домен
* @property string|null $created Дата записи
* @property int $include Исключение или включение
* @property int $status Статус
* @property int $type Тип
*/
class Filter extends \yii\db\ActiveRecord
{
const INCLUDE_OFF = 0; //включая
const INCLUDE_ON = 1; //выключая
const STATUS_OFF = 0; //выкл
const STATUS_ON = 1; //вкл
const TYPE_1 = 0; //До добавления БД
const TYPE_2 = 1; //После добавления БД
const TYPE_3 = 2; //После добавления БД
/**
* {@inheritdoc}
*/
public static function tableName()
{
return '{{%filters}}';
}
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
'createdAtAttribute' => 'created',
'updatedAtAttribute' => null,
'value' => new Expression('NOW()'),
],
];
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['pattern'], 'required'],
['include', 'in', 'range' => array_keys(self::getIncludes())],
['status', 'in', 'range' => array_keys(self::getStatus())],
['type', 'in', 'range' => array_keys(self::getTypes())],
[['created', 'pattern'], 'safe'],
[['include', 'status', 'type'], 'integer']
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'pattern' => 'Pattern',
'created' => 'Date',
'include' => 'Included',
'status' => 'Status',
'type' => 'Type'
];
}
/**
* {@inheritdoc}
* @return FilterQuery the active query used by this AR class.
*/
public static function find()
{
return new FilterQuery(get_called_class());
}
public static function getIncludes($inc = false)
{
$arr = [
self::INCLUDE_ON => 'Yes',
self::INCLUDE_OFF => 'No'
];
if (is_numeric($inc)) {
if (array_key_exists($inc, $arr)) {
return $arr[$inc];
}
return $inc;
}
return $arr;
}
public static function getStatus($status = false)
{
$arr = [
self::STATUS_OFF => 'Disable',
self::STATUS_ON => 'Enable'
];
if (is_numeric($status)) {
if (array_key_exists($status, $arr)) {
return $arr[$status];
}
return $status;
}
return $arr;
}
public static function getTypes($type = false)
{
$arr = [
self::TYPE_1 => 'Filter №1',
self::TYPE_2 => 'Filter №2',
self::TYPE_3 => 'Filter №3'
];
if (is_numeric($type)) {
if (array_key_exists($type, $arr)) {
return $arr[$type];
}
return $type;
}
return $arr;
}
}