2017 © Pedro Peláez
 

yii2-extension yii2-media

Extension for file uploading and attaching to the models with functions for handling media

image

sampa/yii2-media

Extension for file uploading and attaching to the models with functions for handling media

  • Wednesday, May 3, 2017
  • by Sampa
  • Repository
  • 1 Watchers
  • 0 Stars
  • 7 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Yii2 attachments

Latest Stable Version License Build Status Code Coverage Scrutinizer Code Quality Total Downloads, (*1)

Extension for file uploading and attaching to the models, (*2)

Demo

You can see the demo on the krajee website, (*3)

Installation

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

    Either run, (*5)

    php composer.phar require nemmo/yii2-attachments "~1.0.0"
    

    or add, (*6)

    "nemmo/yii2-attachments": "~1.0.0"
    

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

  2. Add module to common/config/main.php, (*8)

    'modules' => [
        ...
        'attachments' => [
            'class' => nemmo\attachments\Module::className(),
            'tempPath' => '@app/uploads/temp',
            'storePath' => '@app/uploads/store',
            'rules' => [ // Rules according to the FileValidator
                'maxFiles' => 10, // Allow to upload maximum 3 files, default to 3
                'mimeTypes' => 'image/png', // Only png images
                'maxSize' => 1024 * 1024 // 1 MB
            ],
            'tableName' => '{{%attachments}}' // Optional, default to 'attach_file'
        ]
        ...
    ]
    
  3. Apply migrations, (*9)

        'controllerMap' => [
        ...
        'migrate' => [
            'class' => 'yii\console\controllers\MigrateController',
            'migrationNamespaces' => [
                'nemmo\attachments\migrations',
            ],
        ],
        ...
        ],
    
    php yii migrate/up
    
  4. Attach behavior to your model (be sure that your model has "id" property), (*10)

    public function behaviors()
    {
        return [
            ...
            'fileBehavior' => [
                'class' => \nemmo\attachments\behaviors\FileBehavior::className()
            ]
            ...
        ];
    }
    
  5. Make sure that you have added 'enctype' => 'multipart/form-data' to the ActiveForm options, (*11)

  6. Make sure that you specified maxFiles in module rules and maxFileCount on AttachmentsInput to the number that you want, (*12)

Usage

  1. In the form.php of your model add file input, (*13)

    <?= \nemmo\attachments\components\AttachmentsInput::widget([
        'id' => 'file-input', // Optional
        'model' => $model,
        'options' => [ // Options of the Kartik's FileInput widget
            'multiple' => true, // If you want to allow multiple upload, default to false
        ],
        'pluginOptions' => [ // Plugin options of the Kartik's FileInput widget 
            'maxFileCount' => 10 // Client max files
        ]
    ]) ?>
    
  2. Use widget to show all attachments of the model in the view.php, (*14)

    <?= \nemmo\attachments\components\AttachmentsTable::widget(['model' => $model]) ?>
    
  3. (Deprecated) Add onclick action to your submit button that uploads all files before submitting form, (*15)

    <?= Html::submitButton($model->isNewRecord ? 'Create' : 'Update', [
        'class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary',
        'onclick' => "$('#file-input').fileinput('upload');"
    ]) ?>
    
  4. You can get all attached files by calling $model->files, for example:, (*16)

    foreach ($model->files as $file) {
        echo $file->path;
    }
    

Change log

  • Dec 7, 2016 - Migration namespace coming with Yii 2.0.10. Release 1.0.0-beta.3.
  • Apr 19, 2016 - Refactoring and testing. Ajax removing. Release 1.0.0-beta.2.
  • Aug 17, 2015 - Support for prefix on table - you can specify the table name before migrating
  • Jul 9, 2015 - Fixed automatic submitting form
  • Jun 19, 2015 - Fixed uploading only files without submitting whole form and submitting form with ignoring upload errors
  • May 1, 2015 - Fixed uploading when connection is slow or uploading time is long. Now onclick event on submit button is deprecated
  • Apr 16, 2015 - Allow users to have a custom behavior class inheriting from FileBehavior.
  • Apr 4, 2015 - Now all temp uploaded files will be deleted on every new form opened.
  • Mar 16, 2015 - Fix: error in generating initial preview. Add: Getting path of the attached file by calling $file->path.
  • Mar 5, 2015 - Fix: restrictions for the number of maximum uploaded files.
  • Mar 4, 2015 - Added restrictions for number of maximum uploaded files.
  • Mar 3, 2015 - Fix of the file-input widget id.
  • Feb 13, 2015 - Added restrictions to files (see point 1 in the Usage section), now use AttachmentsInput widget on the form view instead of FileInput
  • Feb 11, 2015 - Added preview of uploaded but not saved files and tableOptions property for widget
  • Feb 2, 2015 - Fix: all attached files will be deleted with the model.
  • Feb 1, 2015 - AJAX or basic upload.
  • Jan 30, 2015 - Several previews of images and other files, fix of required packages.
  • Jan 29, 2015 - First version with basic uploading and previews.

The Versions

03/05 2017

dev-master

9999999-dev https://github.com/Sampa/yii2-attachments

Extension for file uploading and attaching to the models with functions for handling media

  Sources   Download

BSD-4-Clause

The Requires

 

The Development Requires

file extension yii2 upload media