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