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
|
* This is the model class for table "articles".
|
5c2eb7c8
Yarik
Big commit almost...
|
15
16
17
18
|
* @property integer $id
* @property integer $date
* @property string $image
* @property ArticleToRating $averageRating
|
d55d2fe0
Yarik
Multilanguage
|
19
|
* * From language behavior *
|
5c2eb7c8
Yarik
Big commit almost...
|
20
21
22
23
24
25
26
|
* @property ArticlesLang $lang
* @property ArticlesLang[] $langs
* @property ArticlesLang $object_lang
* @property string $ownerKey
* @property string $langKey
* @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 *
|
af036678
Yarik
Image behaviors
|
39
|
* * From SaveImgBehavior
|
5c2eb7c8
Yarik
Big commit almost...
|
40
41
|
* @property string|null $imageFile
* @property string|null $imageUrl
|
af036678
Yarik
Image behaviors
|
42
43
44
|
* @method string|null getImageFile( int $field )
* @method string|null getImageUrl( int $field )
* * End SaveImgBehavior
|
d8c1a2e0
Yarik
Big commit artbox
|
45
|
*/
|
af036678
Yarik
Image behaviors
|
46
|
class Articles extends ActiveRecord
|
d8c1a2e0
Yarik
Big commit artbox
|
47
|
{
|
d55d2fe0
Yarik
Multilanguage
|
48
|
|
d8c1a2e0
Yarik
Big commit artbox
|
49
|
/**
|
d55d2fe0
Yarik
Multilanguage
|
50
|
* @inheritdoc
|
d8c1a2e0
Yarik
Big commit artbox
|
51
|
*/
|
d55d2fe0
Yarik
Multilanguage
|
52
53
54
|
public static function tableName()
{
return 'articles';
|
d8c1a2e0
Yarik
Big commit artbox
|
55
|
}
|
d55d2fe0
Yarik
Multilanguage
|
56
57
58
59
60
61
62
|
/**
* @inheritdoc
*/
public function behaviors()
{
return [
|
d55d2fe0
Yarik
Multilanguage
|
63
|
[
|
14cd7eed
Yarik
LanguageBehavior ...
|
64
|
'class' => SaveImgBehavior::className(),
|
93c267f7
Yarik
Multilanguage big...
|
65
66
|
'fields' => [
[
|
14cd7eed
Yarik
LanguageBehavior ...
|
67
|
'name' => 'image',
|
93c267f7
Yarik
Multilanguage big...
|
68
|
'directory' => 'articles',
|
14cd7eed
Yarik
LanguageBehavior ...
|
69
|
],
|
93c267f7
Yarik
Multilanguage big...
|
70
|
],
|
d55d2fe0
Yarik
Multilanguage
|
71
72
73
74
|
],
'language' => [
'class' => LanguageBehavior::className(),
],
|
d55d2fe0
Yarik
Multilanguage
|
75
|
];
|
d8c1a2e0
Yarik
Big commit artbox
|
76
|
}
|
d55d2fe0
Yarik
Multilanguage
|
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[ 'date' ],
'default',
'value' => function() {
return time();
},
],
[
[ 'date' ],
'safe',
],
[
|
d55d2fe0
Yarik
Multilanguage
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
[ 'date' ],
'filter',
'filter' => function($value) {
return strtotime($value) ? : time();
},
],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
14cd7eed
Yarik
LanguageBehavior ...
|
111
112
113
114
|
'id' => Yii::t('app', 'ID'),
'date' => Yii::t('app', 'Date'),
'image' => Yii::t('app', 'Image'),
'imageUrl' => Yii::t('app', 'Image'),
|
d55d2fe0
Yarik
Multilanguage
|
115
116
117
|
];
}
|
d55d2fe0
Yarik
Multilanguage
|
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
158
|
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
|
159
160
|
}
}
|