2017 © Pedro Peláez
 

yii2-extension files-attacher

Module for files attachment

image

mix8872/files-attacher

Module for files attachment

  • Saturday, July 28, 2018
  • by mix8872
  • Repository
  • 0 Watchers
  • 0 Stars
  • 0 Installations
  • JavaScript
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Files attacher module for Yii2 [deprecated]

Files attacher module for attache any files to the your models., (*1)

Installation

The preferred way to install this extension is through composer., (*2)

Either run, (*3)

php composer.phar require --prefer-dist mix8872/files-attacher

or add, (*4)

"mix8872/files-attacher": "~1.0"

to the require section of your composer.json., (*5)

Then you must run migration by running command:, (*6)

yii migrate --migrationPath=@vendor/mix8872/files-attacher/src/migrations, (*7)

Configure

To configure module please add following to the modules section of common main config:, (*8)

Common:, (*9)

'modules' => [
    'filesAttacher' => [
        'class' => 'mix8872\filesAttacher\Module',
        'as access' => [
            'class' => 'yii\filters\AccessControl',
            'rules' => [
                [
                    'controllers' => ['filesAttacher/default'],
                    'allow' => true,
                    'roles' => ['admin']
                ],
            ]
        ],
        'parameters' => [
            'imageResize' => [
                'galleryMiddle' => ['width' => '880', 'height' => '587', 'model' => ['common\modules\imageslider\models\ImageSlider']],
                'galleryPreview' => ['width' => '120', 'height' => '60', 'model' => ['common\modules\imageslider\models\ImageSlider']]
            ],
            'sizesNameBy' => 'template', // or 'key', optionally, default 'size'
            'sizesNameTemplate' => '_resize_%k-%s', //optionally, if sizesNameBy set to 'template'
            'origResize' => ['width' => '1024', 'height' => '768', 'model' => ['common\modules\imageslider\models\ImageSlider']], //optionally
            'imgProcessDriver' => 'imagick', //or 'imagick', optionally, default 'gd',
            'filesNameBy' => 'translit', // optionally, by default naming is random string
            'savePath' => '/uploads/attachments/', // optionally, default save path is '/uploads/attachments/'
        ],
    ],
    // ... other modules definition
],

In config you may define access control to prevent access to the administrative part of the module., (*10)

Also you can define imageResize to create additional sizes for uploaded images., (*11)

In imageResize definitions, also you can optionally define model for which scaling will be applied. Support definition several models as array., (*12)

To use sizes names template you may define sizesNameTemplate option, where %k - key, %s - size. By default - %s;, (*13)

If origResize option defined original image size will be changed. Also you can define models array;, (*14)

Also you can change image driver to imagick., (*15)

By define filesNameBy option you may change files naming style from random string to translit file name, also you can define model attribute too., (*16)

For changing default save path you can define savePath option. The path will be considered from the web directory., (*17)

Usage

Using the module is available as a widget and behavior for the model., (*18)

First, you must configure the behavior of the required models in this way:, (*19)

public function behaviors()
    {
        return [
            [
                'class' => \mix8872\filesAttacher\behaviors\FileAttachBehavior::class,
                'tags' => ['images','videos'],
                'deleteOld' => []
            ],
            // ... other behaviors
        ];
    }

In tags attribute you may define tags for attach files, if you define same tags in delteOld attribute then files loaded with this tags will be rewritten by newly added files., (*20)

Next you may add widget model and echo widget with its config:, (*21)

use mix8872\filesAttacher\widgets\FilesWidget;

// ... you view code

 ['enctype' => 'multipart/form-data']]); // IMPORTANT ?>

 ...

    <?= FilesWidget::widget([
        'model' => $model,
        'tag' => 'videos', // one of the tags listed in the model
        'multiple' => true, // true or false. allow multiple loading
        'filetypes' => ['video/*'], // array of mime types of allowed files
    ]) ?>


IMPORTANT ! you may define multipart/form-data enctype in you form!, (*22)

You can get the model files by calling the method:, (*23)

$files = $model->getFiles('tag'); //array of file objects

public function getFiles(string $tag, bool $single, bool $asQuery), (*24)

$tag - tag of you attachment $single - if true - returns single attachment object $asQuery - if tru - returns ActiveQuery object, (*25)

The Versions

28/07 2018

dev-master

9999999-dev

Module for files attachment

  Sources   Download

MIT

The Requires

 

by Avatar mix8872

28/07 2018

1.1.5

1.1.5.0

Module for files attachment

  Sources   Download

MIT

The Requires

 

by Avatar mix8872

27/07 2018

1.1.4

1.1.4.0

Module for files attachment

  Sources   Download

MIT

The Requires

 

by Avatar mix8872

26/07 2018

1.1.3

1.1.3.0

Module for files attachment

  Sources   Download

MIT

The Requires

 

by Avatar mix8872

04/07 2018

1.1.2

1.1.2.0

Module for files attachment

  Sources   Download

MIT

The Requires

 

by Avatar mix8872