syablonskiy/yii2-attachfile

Package for attaching files using ajax

Installs: 15

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-extension

1.0.1 2018-09-09 12:18 UTC

This package is not auto-updated.

Last update: 2024-10-08 17:32:00 UTC


README

Данный модуль предназначен для приклепления файла(ов) к моделям ActiveRecord.

Установка

  1. Установите расширение с помощью Composer выполните в терминале composer require syablonskiy/yii2-attachfile "^1" либо добавьте в секцию require в файле composer.json "syablonskiy/yii2-attachfile": "^1"

  2. Добавьте модуль в конфигурацию вашего web-приложения

'modules' => [
        ...
        'attachfile' => [
            'class' => syablonskiy\attachfile\Module::className(),
            'storePath' => 'path/to/upload/folder', //default '@app/uploads'
            'rules' => [
                'extensions' => 'jpg, zip, mp4',
                'maxSize' => 1024*1024,
            ],
            'maxFiles' => 2, //default  '3'
            'tableName' => 'your_table_name', //default 'attachment'
        ],
        ...
]
  1. Выполните миграцию php yii migrate --migrationPath=@syablonskiy/attachfile/migrations

  2. Прикрепите поведение к вашей ActiveRecord модели

    public function behaviors()
    {
        return [
           \syablonskiy\attachfile\behaviors\AttachmentBehavior::className()
        ];
    }
  1. Удаление неактуальных файлов В конфигурацию консольного приложения добавьте
'modules' => [
        ...
        'attachfile' => [
            'class' => syablonskiy\attachfile\Module::className(),
            'controllerNamespace' => 'syablonskiy\attachfile\commands',
        ],
        ...
]

И добавьте в планировщик Cron подобную строку */30 * * * * cd /path/to/your/app && /usr/bin/php yii attachfile/cron/delete-files >/dev/null После этого каждые полчаса будут удаляться загруженные, но неприкрепленные к модели файлы.

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

  1. Для прикрепления файлов, к создаваемой модели, передайте в виджет текущий экземпляр [[yii\widgets\ActiveForm]]
<?= \syablonskiy\attachfile\widgets\InputWidget::widget(['form' => $form]) ?>
  1. Отображение прикреплённых файлов модели $model
<?= \syablonskiy\attachfile\widgets\FilesListWidget::widget(
        [
            'model' => $model,
            'allowDeletion' => true //default 'false'
        ]
    ) ?>

Опция 'allowDeletion' добавляет возможность отмечать файлы для удаления