2017 © Pedro PelΓ‘ez
 

yii2-extension yii2-croppic

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework.

image

wise5lin/yii2-croppic

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework.

  • Wednesday, April 5, 2017
  • by Wise5lin
  • Repository
  • 1 Watchers
  • 3 Stars
  • 94 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 15 % Grown

The README.md

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework

Croppic - это JQuery ΠΏΠ»Π°Π³ΠΈΠ½ для ΠΎΠ±Ρ€Π΅Π·ΠΊΠΈ изобраТСния., (*1)

  • Github - https://github.com/sconsult/croppic
  • ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт - http://www.croppic.net/

Установка

Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· composer., (*2)

ΠŸΡ€ΠΎΡΡ‚ΠΎ запуститС Π² консоли ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:, (*3)

php composer.phar require --prefer-dist wise5lin/yii2-croppic "*"

ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅, (*4)

"wise5lin/yii2-croppic": "*"

Π² require ΡΠ΅ΠΊΡ†ΠΈΡŽ вашСго composer.json Ρ„Π°ΠΉΠ»Π°., (*5)

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

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ установили Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своём ΠΊΠΎΠ΄Π΅:, (*6)

use wise5lin\croppic\Croppic;

= Croppic::widget([
    'options' => [
        'class' => 'croppic',
    ],
    'pluginOptions' => [
        'uploadUrl' => $model->urlUpload,
        'cropUrl' => $model->urlCrop,
        'cropData' => [
            // ДинамичСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ для сохранСния изобраТСния.
            'path' => '@frontend/web/img/user/avatar/'.$model->id,
            // ДинамичСскоС Π·Π°Π΄Π°Π½ΠΈΠ΅ URL для сохранСния изобраТСния.
            'url' => '/img/user/avatar/'.$model->id,
        ],
        'modal' => false,
        'doubleZoomControls' => false,
        'enableMousescroll' => true,
        'loaderHtml' => '
', ] ]) ?>

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΠΎΠ±Ρ€Π΅Π·ΠΊΠ° изобраТСния

public function behaviors()
{
    return [
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'upload' => ['post'],
                'crop' => ['post'],
            ],
        ],
    ];
}

public function actions()
{
    return [
        /**
         * Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° изобраТСния
         */
        'upload' => [
            'class' => 'wise5lin\croppic\actions\UploadAction',
            // ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ).
            'tempPath' => '@frontend/web/img/temp',
            // URL адрСс ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ).
            'tempUrl' => 'img/temp/',
            // ΠŸΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ изобраТСния.
            'validatorOptions' => [
                'checkExtensionByMimeType' => true,
                'extensions' => 'jpeg, jpg, png',
                'maxSize' => 3000000,
                'tooBig' => 'Π’Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ слишком большоС (макс. 3ΠΌΠ±)',
            ],
        ],
        /**
         * ΠžΠ±Ρ€Π΅Π·ΠΊΠ° изобраТСния
         */
        'crop' => [
            'class' => 'wise5lin\croppic\actions\CropAction',
            // ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.
            'path' => '@frontend/web/img/user/avatar',
            // URL адрСс ΠΊ ΠΏΠ°ΠΏΠΊΠ΅ Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ сохранСно ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.
            'url' => 'img/user/avatar/',
        ],
    ];
}

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности

Π§Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ дСйствиям ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ΠΌΠΎΠ΄Π΅Π»ΠΈ:, (*7)

public function beforeAction($action)
{
    if ($action->id === 'upload' || $action->id === 'crop') {
        if ($action->hasProperty('model')) {
            $action->model = $this->findModel(Yii::$app->request->get('id'));
        }
    }

    if (!parent::beforeAction($action)) {
        return false;
    }

    return true;
}

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° доступа ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ страницам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ RBAC

ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ дСйствиям Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ RBAC:, (*8)

public function actions()
{
    return [
        /**
         * Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° изобраТСния
         */
        'upload' => [
            'class' => 'wise5lin\croppic\actions\UploadAction',
            'tempPath' => '@frontend/web/img/temp',
            'tempUrl' => 'img/temp/',
            'validatorOptions' => [
                'checkExtensionByMimeType' => true,
                'extensions' => 'jpeg, jpg, png',
                'maxSize' => 3000000,
                'tooBig' => 'Π’Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ΅ Π²Π°ΠΌΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ слишком большоС (макс. 3ΠΌΠ±)',
            ],
            // Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ RBAC
            'permissionRBAC' => 'updateProfile',
            // ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ RBAC
            'parameterRBAC' => 'profile',
        ],
        /**
         * ΠžΠ±Ρ€Π΅Π·ΠΊΠ° изобраТСния
         */
        'crop' => [
            'class' => 'wise5lin\croppic\actions\CropAction',
            'path' => '@frontend/web/img/user/avatar',
            'url' => 'img/user/avatar/',
            // Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ RBAC
            'permissionRBAC' => 'updateProfile',
            // ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ RBAC
            'parameterRBAC' => 'profile',
        ],
    ];
}

Как Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°: Yii::$app->user->can('updateProfile', ['profile' => $this->model])., (*9)

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚ΠΈ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ изобраТСния Π² Π±Π°Π·Ρƒ

public function actions()
{
    return [
        /**
         * ΠžΠ±Ρ€Π΅Π·ΠΊΠ° изобраТСния
         */
        'crop' => [
            'class' => 'wise5lin\croppic\actions\CropAction',
            'path' => '@frontend/web/img/user/avatar',
            'url' => 'img/user/avatar/',
            'modelAttribute' => 'avatar', // <--- ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–1
            'modelScenario' => 'saveAvatar', // <--- ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–2
            'modelAttributeSavePath' => false, // <--- ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–3
        ],
    ];
}

ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ crop: - НазваниС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для сохранСния (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–1). - Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ входящих Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–2). - Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ имя изобраТСния, для ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° modelAttributeSavePath ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ false (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β„–3)., (*10)

The Versions

05/04 2017

dev-master

9999999-dev https://github.com/Wise5lin/yii2-croppic

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

extension yii2 widget croppic

05/04 2017

1.0.2

1.0.2.0 https://github.com/Wise5lin/yii2-croppic

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

extension yii2 widget croppic

13/09 2016

1.0.1

1.0.1.0 https://github.com/Wise5lin/yii2-croppic

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

extension yii2 widget croppic

29/08 2016

1.0.0

1.0.0.0 https://github.com/Wise5lin/yii2-croppic

Croppic Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ для Yii2 Framework.

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

extension yii2 widget croppic