ShowImage.php 1.62 KB
<?php

namespace common\behaviors;

use common\modules\file\components\UploaderComponent;
use yii;
use yii\base\Behavior;

class ShowImage extends Behavior
{
    function minImg($dir, $width, $height=null){
        if(empty($dir)){
            return '/images/avatar-bg.png';
        }

        if($width=='original'){
            $preg = '/\/(.[^\/]*)$/';
            preg_match('/\.(.[^.]*)$/', $dir, $type);
            if(isset($type[1])){
                $dir = preg_replace( $preg, '/original.'.$type[1],  $dir);
            }

        } else {
            $preg = '/\/(.[^\/]*)$/';
            preg_match('/\.(.[^.]*)$/', $dir, $type);
            if(isset($type[1])){
                $dir =  preg_replace( $preg, '/'.$width.'x'.$height.'.'.$type[1],  $dir);
                $storage = dirname(yii\helpers\Url::to('@storage'));
                $filename = $storage.$dir;
                if (!file_exists($filename)) {

                    $original = $storage.dirname($dir).'/original.'.$type[1];
                    if (file_exists($original)) {
                        $resizer = new UploaderComponent();
                        $resizer->resizeImg($width,$height, $original,$filename);

                    } else {
                        throw new \Exception("Файл $original не существует");
                    }

                }

            }

        }
        
        return $dir;


    }

    function ShowGallery($array){

        $gallery = explode(',', $array );
        if(is_array($gallery)){
            array_splice($gallery,-1);
            return $gallery;
        } else {
            return [];
        }

    }


}