You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.1 KiB
85 lines
2.1 KiB
<?php |
|
|
|
namespace core\entities; |
|
|
|
use yiidreamteam\upload\ImageUploadBehavior; |
|
use yii\db\ActiveRecord; |
|
use yii\web\UploadedFile; |
|
use Yii; |
|
|
|
/** |
|
* @property integer $id |
|
* @property string $title |
|
* @property string $tagline |
|
* @property string $image |
|
* @property string $url |
|
* @property integer $sort |
|
* |
|
* @mixin ImageUploadBehavior |
|
*/ |
|
class Slider extends ActiveRecord |
|
{ |
|
|
|
const SCENARIO_UPDATE = 'update'; |
|
const SCENARIO_CREATE = 'create'; |
|
|
|
public static function create($title, $tagline, $url, $sort): self |
|
{ |
|
$slider = new static(); |
|
$slider->title = $title; |
|
$slider->tagline = $tagline; |
|
$slider->url = $url; |
|
$slider->sort = $sort; |
|
return $slider; |
|
} |
|
|
|
public function setImage(UploadedFile $image): void |
|
{ |
|
$this->image = $image; |
|
} |
|
|
|
public function edit($title, $tagline, $url, $sort): void |
|
{ |
|
$this->title = $title; |
|
$this->tagline = $tagline; |
|
$this->url = $url; |
|
$this->sort = $sort; |
|
} |
|
|
|
public static function tableName(): string |
|
{ |
|
return '{{%slider}}'; |
|
} |
|
|
|
public function attributeLabels() { |
|
return [ |
|
'title' => Yii::t('slider', 'Title'), |
|
'tagline' => Yii::t('slider', 'Tagline'), |
|
'image' => Yii::t('slider', 'Image'), |
|
'url' => Yii::t('slider', 'URL'), |
|
'sort' => Yii::t('slider', 'Sort'), |
|
]; |
|
} |
|
|
|
public function behaviors(): array |
|
{ |
|
return [ |
|
[ |
|
'class' => ImageUploadBehavior::class, |
|
'attribute' => 'image', |
|
'createThumbsOnRequest' => true, |
|
'filePath' => '@staticRoot/origin/slider/[[id]].[[extension]]', |
|
'fileUrl' => '@static/origin/slider/[[id]].[[extension]]', |
|
'thumbPath' => '@staticRoot/cache/slider/[[profile]]_[[id]].[[extension]]', |
|
'thumbUrl' => '@static/cache/slider/[[profile]]_[[id]].[[extension]]', |
|
'thumbs' => [ |
|
'admin' => ['width' => 150, 'height' => 60], |
|
'thumb' => ['width' => 400, 'height' => 150], |
|
'1920_671' => ['width' => 1920, 'height' => 671], |
|
//'origin' => ['processor' => [new WaterMarker(1024, 768, '@frontend/web/image/logo.png'), 'process']], |
|
'origin' => ['width' => 1920, 'height' => 1080], |
|
], |
|
], |
|
]; |
|
} |
|
} |