d8c1a2e0
Yarik
Big commit artbox
|
1
|
<?php
|
d55d2fe0
Yarik
Multilanguage
|
2
3
|
namespace common\models;
|
14cd7eed
Yarik
LanguageBehavior ...
|
4
|
|
fd238f57
Yarik
Admin begin refac...
|
5
|
use common\modules\language\behaviors\TransactionBehavior;
|
d55d2fe0
Yarik
Multilanguage
|
6
7
8
9
10
11
12
13
|
use common\modules\language\behaviors\LanguageBehavior;
use common\behaviors\SaveImgBehavior;
use common\modules\comment\models\CommentModel;
use Yii;
use yii\db\ActiveQuery;
use yii\db\ActiveRecord;
use yii\web\Request;
|
d8c1a2e0
Yarik
Big commit artbox
|
14
|
/**
|
d55d2fe0
Yarik
Multilanguage
|
15
16
17
|
* This is the model class for table "articles".
* @property integer $id
* @property integer $date
|
d55d2fe0
Yarik
Multilanguage
|
18
|
* @property string $image
|
d55d2fe0
Yarik
Multilanguage
|
19
20
21
22
23
24
|
* * From language behavior *
* @property ArticlesLang $lang
* @property ArticlesLang[] $langs
* @property ArticlesLang $object_lang
* @property string $ownerKey
* @property string $langKey
|
14cd7eed
Yarik
LanguageBehavior ...
|
25
26
|
* @property ArticlesLang[] $model_langs
* @property bool $transactionStatus
|
d55d2fe0
Yarik
Multilanguage
|
27
|
* @method string getOwnerKey()
|
14cd7eed
Yarik
LanguageBehavior ...
|
28
|
* @method void setOwnerKey( string $value )
|
d55d2fe0
Yarik
Multilanguage
|
29
|
* @method string getLangKey()
|
14cd7eed
Yarik
LanguageBehavior ...
|
30
|
* @method void setLangKey( string $value )
|
d55d2fe0
Yarik
Multilanguage
|
31
32
33
|
* @method ActiveQuery getLangs()
* @method ActiveQuery getLang( integer $language_id )
* @method ArticlesLang[] generateLangs()
|
14cd7eed
Yarik
LanguageBehavior ...
|
34
35
36
|
* @method void loadLangs( Request $request )
* @method bool linkLangs()
* @method bool saveLangs()
|
fd238f57
Yarik
Admin begin refac...
|
37
|
* @method bool getTransactionStatus()
|
14cd7eed
Yarik
LanguageBehavior ...
|
38
|
* * End language behavior *
|
d8c1a2e0
Yarik
Big commit artbox
|
39
|
*/
|
d55d2fe0
Yarik
Multilanguage
|
40
|
class Articles extends \yii\db\ActiveRecord
|
d8c1a2e0
Yarik
Big commit artbox
|
41
|
{
|
d55d2fe0
Yarik
Multilanguage
|
42
|
|
d8c1a2e0
Yarik
Big commit artbox
|
43
|
/**
|
d55d2fe0
Yarik
Multilanguage
|
44
|
* @inheritdoc
|
d8c1a2e0
Yarik
Big commit artbox
|
45
|
*/
|
d55d2fe0
Yarik
Multilanguage
|
46
47
48
|
public static function tableName()
{
return 'articles';
|
d8c1a2e0
Yarik
Big commit artbox
|
49
|
}
|
d55d2fe0
Yarik
Multilanguage
|
50
51
52
53
54
55
56
|
/**
* @inheritdoc
*/
public function behaviors()
{
return [
|
d55d2fe0
Yarik
Multilanguage
|
57
|
[
|
14cd7eed
Yarik
LanguageBehavior ...
|
58
|
'class' => SaveImgBehavior::className(),
|
93c267f7
Yarik
Multilanguage big...
|
59
60
|
'fields' => [
[
|
14cd7eed
Yarik
LanguageBehavior ...
|
61
|
'name' => 'image',
|
93c267f7
Yarik
Multilanguage big...
|
62
|
'directory' => 'articles',
|
14cd7eed
Yarik
LanguageBehavior ...
|
63
|
],
|
93c267f7
Yarik
Multilanguage big...
|
64
|
],
|
d55d2fe0
Yarik
Multilanguage
|
65
66
67
68
|
],
'language' => [
'class' => LanguageBehavior::className(),
],
|
d55d2fe0
Yarik
Multilanguage
|
69
|
];
|
d8c1a2e0
Yarik
Big commit artbox
|
70
|
}
|
d55d2fe0
Yarik
Multilanguage
|
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[ 'date' ],
'default',
'value' => function() {
return time();
},
],
[
[ 'date' ],
'safe',
],
[
|
d55d2fe0
Yarik
Multilanguage
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
[ 'date' ],
'filter',
'filter' => function($value) {
return strtotime($value) ? : time();
},
],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
14cd7eed
Yarik
LanguageBehavior ...
|
105
106
107
108
|
'id' => Yii::t('app', 'ID'),
'date' => Yii::t('app', 'Date'),
'image' => Yii::t('app', 'Image'),
'imageUrl' => Yii::t('app', 'Image'),
|
d55d2fe0
Yarik
Multilanguage
|
109
110
111
|
];
}
|
d55d2fe0
Yarik
Multilanguage
|
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
public function recalculateRating()
{
/**
* @var ArticleToRating $averageRating
*/
$average = $this->getComments()
->joinWith('rating')
->select([ 'average' => 'avg(artbox_comment_rating.value)::float' ])
->scalar();
if(!$average) {
$average = 0;
}
$averageRating = $this->averageRating;
if(!empty( $averageRating )) {
$averageRating->value = $average;
} else {
$averageRating = new ArticleToRating([
'articles_id' => $this->id,
'value' => $average,
]);
}
if($averageRating->save()) {
return true;
} else {
return false;
}
}
public function getComments()
{
return $this->hasMany(CommentModel::className(), [ 'entity_id' => 'id' ])
->where([
'artbox_comment.entity' => self::className(),
'artbox_comment.status' => CommentModel::STATUS_ACTIVE,
'artbox_comment.artbox_comment_pid' => NULL,
]);
}
public function getAverageRating()
{
return $this->hasOne(ArticleToRating::className(), [ 'articles_id' => 'id' ]);
|
d8c1a2e0
Yarik
Big commit artbox
|
153
154
|
}
}
|