ImageController.php 1.47 KB
<?php

namespace backend\controllers;

use backend\components\croppers\CropContext;
use backend\components\croppers\CropFactory;

use Yii;
use yii\web\Controller;
use backend\models\UploadForm;
use yii\web\UploadedFile;

class ImageController extends Controller
{
    public function actionIndex()
    {
        $request = Yii::$app->request;
        $model = new UploadForm();
        $ukrSeeds = Yii::$app->params['ukrSeeds'];

        if ($request->isPost) {
            $model->imageFiles = UploadedFile::getInstances($model, 'imageFiles');
            $model->upload();

            $crop_id = $request->post('crop_id');

            $cropFactory = CropFactory::getInstance();
            $cropContext = new CropContext($cropFactory->getCrop($crop_id));

            foreach($model->imageFiles as $file) {
                $path = dirname(dirname(__DIR__)) . '/uploads/' . $file->baseName . '.' . $file->extension;
                $image = Yii::$app->imagine->open($path);
                $cropContext->cropImage($image, $path);
            }
        }
        return $this->render('index', ['model' => $model, 'ukrSeeds' => $ukrSeeds]);
    }

    public function actionGetParams($crop_id)
    {
        if (Yii::$app->request->isAjax) {

            $cropFactory = CropFactory::getInstance();

            $res = [
                'body'    => $cropFactory->getCrop($crop_id)->getConstants(),
                'success' => true,
            ];

            return json_encode($res);
        }
    }
}