593851ec
Alexey Boroda
First commit
|
1
2
|
<?php
|
65dd0219
Alexey Boroda
-Bar tabs
|
3
|
namespace artbox\weblog\models;
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
4
|
|
59c7b652
Alexey Boroda
-behaviour added ...
|
5
|
use artbox\core\behaviors\ManyToManyBehavior;
|
ee588281
Alexey Boroda
-Blog backend ready
|
6
|
use artbox\core\models\Image;
|
377f2303
Anastasia
-jh
|
7
|
use artbox\webcomment\models\CommentModel;
|
593851ec
Alexey Boroda
First commit
|
8
9
|
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;
|
65dd0219
Alexey Boroda
-Bar tabs
|
10
11
|
use artbox\core\behaviors\LanguageBehavior;
use artbox\core\models\Language;
|
593851ec
Alexey Boroda
First commit
|
12
|
use yii\db\ActiveQuery;
|
adcaa25d
Yarik
Article to produc...
|
13
|
use yii\db\Query;
|
377f2303
Anastasia
-jh
|
14
|
use yii\helpers\Url;
|
593851ec
Alexey Boroda
First commit
|
15
|
use yii\web\Request;
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
16
|
|
593851ec
Alexey Boroda
First commit
|
17
18
|
/**
* This is the model class for table "blog_article".
|
2caa1ca3
Yarik
Artbox great prep...
|
19
|
*
|
d7bd5725
Yarik
Blog article to p...
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
* @property integer $id
* @property Image $image
* @property integer $created_at
* @property integer $updated_at
* @property integer $deleted_at
* @property integer $sort
* @property boolean $status
* @property integer $author_id
* @property integer $image_id
* @property ArticleLang[] $blogArticleLangs
* @property Language[] $languages
* @property Article[] $relatedBlogArticles
* @property Article[] $articles
* @property Category[] $categories
* @property Category $category
* @property Tag[] $tags
* @property \artbox\catalog\models\Product[] $relatedProducts
|
593851ec
Alexey Boroda
First commit
|
37
|
* * * From language behavior *
|
d7bd5725
Yarik
Blog article to p...
|
38
39
40
41
42
43
44
|
* @property ArticleLang $lang
* @property ArticleLang[] $langs
* @property ArticleLang $objectLang
* @property string $ownerKey
* @property string $langKey
* @property ArticleLang[] $modelLangs
* @property bool $transactionStatus
|
593851ec
Alexey Boroda
First commit
|
45
46
47
48
49
50
|
* @method string getOwnerKey()
* @method void setOwnerKey( string $value )
* @method string getLangKey()
* @method void setLangKey( string $value )
* @method ActiveQuery getLangs()
* @method ActiveQuery getLang( integer $language_id )
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
51
|
* @method ArticleLang[] generateLangs()
|
593851ec
Alexey Boroda
First commit
|
52
53
54
55
|
* @method void loadLangs( Request $request )
* @method bool linkLangs()
* @method bool saveLangs()
* @method bool getTransactionStatus()
|
ee588281
Alexey Boroda
-Blog backend ready
|
56
57
|
* @method bool loadWithLangs( Request $request )
* @method bool saveWithLangs()
|
593851ec
Alexey Boroda
First commit
|
58
|
* * End language behavior *
|
ee588281
Alexey Boroda
-Blog backend ready
|
59
|
* @method void linkMany( string $link, array $models )
|
593851ec
Alexey Boroda
First commit
|
60
|
*/
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
61
|
class Article extends ActiveRecord
|
593851ec
Alexey Boroda
First commit
|
62
|
{
|
ee588281
Alexey Boroda
-Blog backend ready
|
63
64
65
66
67
68
|
public $categoryIds = [];
public $tagIds = [];
public $articleIds = [];
|
d7bd5725
Yarik
Blog article to p...
|
69
70
|
public $productIds = [];
|
593851ec
Alexey Boroda
First commit
|
71
72
73
74
75
76
77
|
/**
* @inheritdoc
*/
public static function tableName()
{
return 'blog_article';
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
78
|
|
593851ec
Alexey Boroda
First commit
|
79
80
81
82
83
84
|
public function behaviors()
{
return [
[
'class' => TimestampBehavior::className(),
],
|
593851ec
Alexey Boroda
First commit
|
85
86
87
|
'language' => [
'class' => LanguageBehavior::className(),
],
|
ee588281
Alexey Boroda
-Blog backend ready
|
88
89
90
|
[
'class' => ManyToManyBehavior::className(),
],
|
593851ec
Alexey Boroda
First commit
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
];
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[
'created_at',
'updated_at',
'deleted_at',
'sort',
'author_id',
|
ba196ec2
Alexey Boroda
-Blog in process
|
106
|
'image_id',
|
593851ec
Alexey Boroda
First commit
|
107
108
109
110
111
112
113
|
],
'integer',
],
[
[ 'status' ],
'boolean',
],
|
593851ec
Alexey Boroda
First commit
|
114
115
|
];
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
116
|
|
593851ec
Alexey Boroda
First commit
|
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'image' => 'Image',
'created_at' => 'Created At',
'updated_at' => 'Updated At',
'deleted_at' => 'Deleted At',
'sort' => 'Sort',
'status' => 'Status',
'author_id' => 'Author ID',
];
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
133
|
|
593851ec
Alexey Boroda
First commit
|
134
135
136
137
138
|
/**
* @return \yii\db\ActiveQuery
*/
public function getRelatedBlogArticles()
{
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
139
|
return $this->hasMany(Article::className(), [ 'id' => 'related_blog_article_id' ])
|
593851ec
Alexey Boroda
First commit
|
140
141
|
->viaTable('blog_article_to_article', [ 'blog_article_id' => 'id' ]);
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
142
|
|
593851ec
Alexey Boroda
First commit
|
143
|
/**
|
adcaa25d
Yarik
Article to produc...
|
144
145
146
147
148
|
* @return Query
*/
public function getRelatedProducts()
{
if (class_exists('\artbox\catalog\models\Product')) {
|
d7bd5725
Yarik
Blog article to p...
|
149
|
return $this->hasMany('\artbox\catalog\models\Product', [ 'id' => 'product_id' ])
|
adcaa25d
Yarik
Article to produc...
|
150
151
152
153
154
|
->via('articleToProduct');
} else {
return ( new Query() )->where('1 = 0');
}
}
|
377f2303
Anastasia
-jh
|
155
156
157
158
159
160
161
162
163
164
165
|
public function getCommentsCount()
{
if (class_exists('\artbox\webcomment\models\CommentModel')) {
$comments = CommentModel::find()->where("status = 1 and entity = 'artbox\weblog\models\Article' and entity_id = ".$this->id)->count();
return $comments;
} else {
return null;
}
}
|
adcaa25d
Yarik
Article to produc...
|
166
167
168
169
170
171
|
/**
* @return Query
*/
public function getArticleToProduct()
{
|
377f2303
Anastasia
-jh
|
172
|
|
adcaa25d
Yarik
Article to produc...
|
173
|
if (class_exists('\artbox\catalog\models\Product')) {
|
d7bd5725
Yarik
Blog article to p...
|
174
|
return $this->hasMany(ArticleToProduct::className(), [ 'article_id' => 'id' ]);
|
adcaa25d
Yarik
Article to produc...
|
175
176
177
178
179
180
|
} else {
return ( new Query() )->where('1 = 0');
}
}
/**
|
593851ec
Alexey Boroda
First commit
|
181
182
|
* @return \yii\db\ActiveQuery
*/
|
ee588281
Alexey Boroda
-Blog backend ready
|
183
184
185
186
187
188
189
190
|
public function getImage()
{
return $this->hasOne(Image::className(), [ 'id' => 'image_id' ]);
}
/**
* @return \yii\db\ActiveQuery
*/
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
191
|
public function getArticles()
|
593851ec
Alexey Boroda
First commit
|
192
|
{
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
193
|
return $this->hasMany(Article::className(), [ 'id' => 'blog_article_id' ])
|
593851ec
Alexey Boroda
First commit
|
194
195
|
->viaTable('blog_article_to_article', [ 'related_blog_article_id' => 'id' ]);
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
196
|
|
593851ec
Alexey Boroda
First commit
|
197
198
199
|
/**
* @return \yii\db\ActiveQuery
*/
|
ee588281
Alexey Boroda
-Blog backend ready
|
200
|
public function getCategories()
|
593851ec
Alexey Boroda
First commit
|
201
|
{
|
ee588281
Alexey Boroda
-Blog backend ready
|
202
|
return $this->hasMany(Category::className(), [ 'id' => 'blog_category_id' ])
|
593851ec
Alexey Boroda
First commit
|
203
204
|
->viaTable('blog_article_to_category', [ 'blog_article_id' => 'id' ]);
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
205
|
|
593851ec
Alexey Boroda
First commit
|
206
207
208
|
/**
* @return \yii\db\ActiveQuery
*/
|
ee588281
Alexey Boroda
-Blog backend ready
|
209
|
public function getCategory()
|
593851ec
Alexey Boroda
First commit
|
210
|
{
|
ee588281
Alexey Boroda
-Blog backend ready
|
211
212
|
return $this->hasOne(Category::className(), [ 'id' => 'blog_category_id' ])
->viaTable('blog_article_to_category', [ 'blog_article_id' => 'id' ]);
|
593851ec
Alexey Boroda
First commit
|
213
|
}
|
3b1725bf
Alexey Boroda
-Bug with fill re...
|
214
|
|
593851ec
Alexey Boroda
First commit
|
215
216
217
|
/**
* @return \yii\db\ActiveQuery
*/
|
ee588281
Alexey Boroda
-Blog backend ready
|
218
|
public function getTags()
|
593851ec
Alexey Boroda
First commit
|
219
|
{
|
ee588281
Alexey Boroda
-Blog backend ready
|
220
221
|
return $this->hasMany(Tag::className(), [ 'id' => 'blog_tag_id' ])
->viaTable('blog_article_to_tag', [ 'blog_article_id' => 'id' ]);
|
593851ec
Alexey Boroda
First commit
|
222
223
|
}
}
|