[ 'class' => 'common\behaviors\Slug', 'in_attribute' => 'title', 'out_attribute' => 'link', 'translit' => true ], ]; } /** * @inheritdoc */ public function rules() { return [ [['date_add'], 'default', 'value' => function() { return time(); }], [['title'], 'required'], [['description'], 'string'], [['date_add', 'imagesUpload'], 'safe'], [['title', 'link'], 'string', 'max' => 255], [['date_add'], 'filter', 'filter' => function($value) { return strtotime($value)?:time(); }], ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'project_id' => 'Project ID', 'title' => 'Title', 'link' => 'Link', 'description' => 'Description', 'date_add' => 'Date Add', 'images' => 'Images', ]; } public function getImages() { return $this->hasMany(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'); } } return $op; } 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, ], ]; } } 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; } return $images; } else { return false; } } }