|
|
|
<?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],
|
|
|
|
],
|
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|