maxdancepro/yii2-image-crop

Yii2 extension for upload and crop images Bootstrap 4

Installs: 100

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 0

Forks: 0

Type:yii2-extension

1.1.6 2020-01-22 17:35 UTC

This package is auto-updated.

Last update: 2024-04-23 02:16:57 UTC


README

Yii2 расширение для загрузки и кропа изображений

Установка

Предпочтительно устанавливать расширение через composer.

Выполните в консоли

php composer.phar require --prefer-dist maxdancepro/yii2-image-crop "*"

или добавьте

"maxdancepro/yii2-image-crop": "*"

в секцию require вашего composer.json файла.

Использование

Когда расширение установлено, его можно использовать таким образом:

В вашей модели:

public function behaviors()
{
    return [
        [
            'class' => \maxdancepro\image\Behavior::className(),
            'savePathAlias' => '@web/images/',
            'urlPrefix' => '/images/',
            'crop' => true,
            'attributes' => [
                'avatar' => [
                    'savePathAlias' => '@web/images/avatars/',
                    'urlPrefix' => '/images/avatars/',
                    'width' => 100,
                    'height' => 100,
                ],
                'logo' => [
                    'crop' => false,
                    'thumbnails' => [
                        'mini' => [
                            'width' => 50,
                        ],
                    ],
                ],
            ],
        ],
    //другие поведения
    ];
}

Валидацию атрибута необходимо производить как обычно, через метод rules().

В вашем файле вида с формой:

echo $form->field($model, 'avatar')->widget('maxdancepro\image\Widget');

Затем, в основном файле вида:

echo Html::img($model->getImageUrl('avatar'));
echo Html::img($model->getImageUrl('logo', 'mini')); //получим url миниатюры под именем 'mini' для атрибута 'logo'

Если вы используете Advanced App Template и это поведение находится в backend модели, то вы можете во frontend модель добавить трейт

use \maxdancepro\image\GetImageUrlTrait

и использовать метод getImageUrl() и во frontend модели.