36d1807a
Yarik
Big commit.
|
1
|
<?php
|
36d1807a
Yarik
Big commit.
|
2
|
|
cc658b4c
Yarik
Big commit
|
3
|
namespace common\models;
|
36d1807a
Yarik
Big commit.
|
4
|
|
d55d2fe0
Yarik
Multilanguage
|
5
|
use common\modules\language\behaviors\LanguageBehavior;
|
cc658b4c
Yarik
Big commit
|
6
|
use common\modules\product\models\ProductVariant;
|
b569ac34
Eugeny Galkovskiy
MESSAGES !!!! EVGEN!
|
7
|
use Yii;
|
d55d2fe0
Yarik
Multilanguage
|
8
9
10
|
use yii\db\ActiveQuery;
use yii\db\ActiveRecord;
use yii\web\Request;
|
36d1807a
Yarik
Big commit.
|
11
12
|
/**
|
cc658b4c
Yarik
Big commit
|
13
|
* This is the model class for table "project".
|
72a992f5
Yarik
Import browser v1.0
|
14
15
16
|
*
* @todo Refactor
*
|
cc658b4c
Yarik
Big commit
|
17
|
* @property integer $project_id
|
cc658b4c
Yarik
Big commit
|
18
19
20
21
22
23
|
* @property integer $date_add
* @property ProjectImage[] $images
* @property ProjectImage $image
* @property array $imagesConfig
* @property ProductVariant[] $variants
* @property ProductToProject[] $productToProject
|
d55d2fe0
Yarik
Multilanguage
|
24
25
26
27
28
29
|
* * From language behavior *
* @property ProjectLang $lang
* @property ProjectLang[] $langs
* @property ProjectLang $object_lang
* @property string $ownerKey
* @property string $langKey
|
72a992f5
Yarik
Import browser v1.0
|
30
31
|
* @property ProjectLang[] $model_langs
* @property bool $transactionStatus
|
d55d2fe0
Yarik
Multilanguage
|
32
33
34
35
36
37
38
|
* @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 )
* @method ProjectLang[] generateLangs()
|
72a992f5
Yarik
Import browser v1.0
|
39
40
41
42
|
* @method void loadLangs( Request $request )
* @method bool linkLangs()
* @method bool saveLangs()
* @method bool getTransactionStatus()
|
d55d2fe0
Yarik
Multilanguage
|
43
|
* * End language behavior *
|
36d1807a
Yarik
Big commit.
|
44
|
*/
|
72a992f5
Yarik
Import browser v1.0
|
45
|
class Project extends ActiveRecord
|
36d1807a
Yarik
Big commit.
|
46
|
{
|
cc658b4c
Yarik
Big commit
|
47
48
49
50
51
52
53
54
55
|
public $imagesUpload = [];
/**
* @inheritdoc
*/
public static function tableName()
{
return 'project';
|
36d1807a
Yarik
Big commit.
|
56
|
}
|
cc658b4c
Yarik
Big commit
|
57
58
59
60
61
62
63
|
/**
* @inheritdoc
*/
public function behaviors()
{
return [
|
d55d2fe0
Yarik
Multilanguage
|
64
65
66
|
'language' => [
'class' => LanguageBehavior::className(),
],
|
cc658b4c
Yarik
Big commit
|
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
];
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[
[ 'date_add' ],
'default',
'value' => function() {
return time();
},
],
[
|
cc658b4c
Yarik
Big commit
|
84
85
86
|
[
'date_add',
'imagesUpload',
|
36d1807a
Yarik
Big commit.
|
87
|
],
|
cc658b4c
Yarik
Big commit
|
88
89
90
|
'safe',
],
[
|
cc658b4c
Yarik
Big commit
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
[ 'date_add' ],
'filter',
'filter' => function($value) {
return strtotime($value) ? : time();
},
],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
|
b569ac34
Eugeny Galkovskiy
MESSAGES !!!! EVGEN!
|
106
107
108
109
110
111
|
'project_id' => Yii::t('app', 'project_id'),
'title' => Yii::t('app', 'title'),
'link' => Yii::t('app', 'link'),
'description' => Yii::t('app', 'description'),
'date_add' => Yii::t('app', 'date_add'),
'images' => Yii::t('app', 'images'),
|
cc658b4c
Yarik
Big commit
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
];
}
public function getImages()
{
return $this->hasMany(ProjectImage::className(), [ 'project_id' => 'project_id' ]);
}
public function getImage()
{
return $this->hasOne(ProjectImage::className(), [ 'project_id' => 'project_id' ]);
}
public function getImagesHTML()
{
$op = [];
if($this->images) {
foreach($this->images as $image) {
$op[] = \common\components\artboximage\ArtboxImageHelper::getImage($image->imageUrl, 'admin_thumb');
}
|
36d1807a
Yarik
Big commit.
|
132
|
}
|
cc658b4c
Yarik
Big commit
|
133
|
return $op;
|
36d1807a
Yarik
Big commit.
|
134
|
}
|
cc658b4c
Yarik
Big commit
|
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
public function getImagesConfig()
{
$op = [];
if($this->images) {
foreach($this->images as $image) {
$op[] = [
'caption' => $image->image,
'width' => '120px',
'url' => \yii\helpers\Url::to([
'/project/delimg',
'id' => $image->project_image_id,
]),
'key' => $image->project_image_id,
'extra' => [
'id' => $image->project_image_id,
],
];
|
36d1807a
Yarik
Big commit.
|
153
|
}
|
cc658b4c
Yarik
Big commit
|
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
}
return $op;
}
public function imagesUpload()
{
if($this->validate()) {
$images = [];
foreach($this->imagesUpload as $image) {
$imageName = $image->baseName . '.' . $image->extension;
$i = 0;
while(file_exists(\Yii::getAlias('@storage/projects/' . $imageName))) {
$i++;
$imageName = $image->baseName . '_' . $i . '.' . $image->extension;
}
$imgDir = \Yii::getAlias('@storage/projects/');
if(!is_dir($imgDir)) {
mkdir($imgDir, 0755, true);
}
$image->saveAs($imgDir . $imageName);
$images[] = $imageName;
|
36d1807a
Yarik
Big commit.
|
176
|
}
|
cc658b4c
Yarik
Big commit
|
177
178
179
|
return $images;
} else {
return false;
|
36d1807a
Yarik
Big commit.
|
180
|
}
|
cc658b4c
Yarik
Big commit
|
181
182
183
184
185
186
187
188
189
190
191
192
193
|
}
public function getProductToProject()
{
return $this->hasMany(ProductToProject::className(), [
'project_id' => 'project_id',
]);
}
public function getVariants()
{
return $this->hasMany(ProductVariant::className(), [ 'product_variant_id' => 'product_variant_id' ])
->viaTable('product_to_project', [ 'project_id' => 'project_id' ]);
|
36d1807a
Yarik
Big commit.
|
194
195
|
}
}
|