d8c1a2e0
Yarik
Big commit artbox
|
1
|
<?php
|
d55d2fe0
Yarik
Multilanguage
|
2
3
|
namespace common\models;
|
af036678
Yarik
Image behaviors
|
4
|
|
d55d2fe0
Yarik
Multilanguage
|
5
6
7
8
9
10
11
12
|
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
|
13
|
/**
|
d55d2fe0
Yarik
Multilanguage
|
14
15
16
|
* This is the model class for table "articles".
* @property integer $id
* @property integer $date
|
d55d2fe0
Yarik
Multilanguage
|
17
|
* @property string $image
|
d55d2fe0
Yarik
Multilanguage
|
18
19
20
21
22
23
|
* * From language behavior *
* @property ArticlesLang $lang
* @property ArticlesLang[] $langs
* @property ArticlesLang $object_lang
* @property string $ownerKey
* @property string $langKey
|
14cd7eed
Yarik
LanguageBehavior ...
|
24
25
|
* @property ArticlesLang[] $model_langs
* @property bool $transactionStatus
|
d55d2fe0
Yarik
Multilanguage
|
26
|
* @method string getOwnerKey()
|
14cd7eed
Yarik
LanguageBehavior ...
|
27
|
* @method void setOwnerKey( string $value )
|
d55d2fe0
Yarik
Multilanguage
|
28
|
* @method string getLangKey()
|
14cd7eed
Yarik
LanguageBehavior ...
|
29
|
* @method void setLangKey( string $value )
|
d55d2fe0
Yarik
Multilanguage
|
30
31
32
|
* @method ActiveQuery getLangs()
* @method ActiveQuery getLang( integer $language_id )
* @method ArticlesLang[] generateLangs()
|
14cd7eed
Yarik
LanguageBehavior ...
|
33
34
35
|
* @method void loadLangs( Request $request )
* @method bool linkLangs()
* @method bool saveLangs()
|
fd238f57
Yarik
Admin begin refac...
|
36
|
* @method bool getTransactionStatus()
|
14cd7eed
Yarik
LanguageBehavior ...
|
37
|
* * End language behavior *
|
af036678
Yarik
Image behaviors
|
38
39
40
41
42
43
|
* * From SaveImgBehavior
* @property string|null imageFile
* @property string|null imageUrl
* @method string|null getImageFile( int $field )
* @method string|null getImageUrl( int $field )
* * End SaveImgBehavior
|
d8c1a2e0
Yarik
Big commit artbox
|
44
|
*/
|
af036678
Yarik
Image behaviors
|
45
|
class Articles extends ActiveRecord
|
d8c1a2e0
Yarik
Big commit artbox
|
46
|
{
|
d55d2fe0
Yarik
Multilanguage
|
47
|
|
d8c1a2e0
Yarik
Big commit artbox
|
48
|
/**
|
d55d2fe0
Yarik
Multilanguage
|
49
|
* @inheritdoc
|
d8c1a2e0
Yarik
Big commit artbox
|
50
|
*/
|
d55d2fe0
Yarik
Multilanguage
|
51
52
53
|
public static function tableName()
{
return 'articles';
|
d8c1a2e0
Yarik
Big commit artbox
|
54
|
}
|
d55d2fe0
Yarik
Multilanguage
|
55
56
57
58
59
60
61
|
/**
* @inheritdoc
*/
public function behaviors()
{
return [
|
d55d2fe0
Yarik
Multilanguage
|
62
|
[
|
14cd7eed
Yarik
LanguageBehavior ...
|
63
|
'class' => SaveImgBehavior::className(),
|
93c267f7
Yarik
Multilanguage big...
|
64
65
|
'fields' => [
[
|
14cd7eed
Yarik
LanguageBehavior ...
|
66
|
'name' => 'image',
|
93c267f7
Yarik
Multilanguage big...
|
67
|
'directory' => 'articles',
|
14cd7eed
Yarik
LanguageBehavior ...
|
68
|
],
|
93c267f7
Yarik
Multilanguage big...
|
69
|
],
|
d55d2fe0
Yarik
Multilanguage
|
70
71
72
73
|
],
'language' => [
'class' => LanguageBehavior::className(),
],
|
d55d2fe0
Yarik
Multilanguage
|
74
|
];
|
d8c1a2e0
Yarik
Big commit artbox
|
75
|
}
|
d55d2fe0
Yarik
Multilanguage
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[ 'date' ],
'default',
'value' => function() {
return time();
},
],
[
[ 'date' ],
'safe',
],
[
|
d55d2fe0
Yarik
Multilanguage
|
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
[ 'date' ],
'filter',
'filter' => function($value) {
return strtotime($value) ? : time();
},
],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
14cd7eed
Yarik
LanguageBehavior ...
|
110
111
112
113
|
'id' => Yii::t('app', 'ID'),
'date' => Yii::t('app', 'Date'),
'image' => Yii::t('app', 'Image'),
'imageUrl' => Yii::t('app', 'Image'),
|
d55d2fe0
Yarik
Multilanguage
|
114
115
116
|
];
}
|
d55d2fe0
Yarik
Multilanguage
|
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
153
154
155
156
157
|
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
|
158
159
|
}
}
|