https://github.com/ignatenkovnikita/yii2-imagemanager
https://github.com/ignatenkovnikita/yii2-imagemanager
imagemanager yii2-extension yii2-modules
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/ignatenkovnikita/yii2-imagemanager
- Owner: ignatenkovnikita
- Created: 2017-10-21T21:39:13.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-05T17:49:38.000Z (almost 3 years ago)
- Last Synced: 2025-02-24T10:44:16.385Z (3 months ago)
- Topics: imagemanager, yii2-extension, yii2-modules
- Language: PHP
- Size: 8.79 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Yii2 Image Manager
==================
Yii2 Image Manager[](https://packagist.org/packages/ignatenkovnikita/yii2-imagemanager)
[](https://packagist.org/packages/ignatenkovnikita/yii2-imagemanager)
[](https://packagist.org/packages/ignatenkovnikita/yii2-imagemanager)
[](https://packagist.org/packages/ignatenkovnikita/yii2-imagemanager)Installation
------------The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```
composer require --prefer-dist ignatenkovnikita/yii2-imagemanager "*"
```or add
```
"ignatenkovnikita/yii2-imagemanager": "*"
```to the require section of your `composer.json` file.
Apply migration
```bash
php yii migrate --migrationPath=vendor/ignatenkovnikita/yii2-imagemanager/migrations/
```Usage
-----
Example use on product preview and attachmentsAdd in model Product
```php
public $attachments;
public $attachment;const NAME_ATTACHMENTS = 'product.attachments';
const NAME_ATTACHMENT = 'product.attachment';
public function rules()
{
return ArrayHelper::merge(parent::rules(), [
[['attachments', 'attachment'], 'safe'],
]);
}public function behaviors()
{
return ArrayHelper::merge(parent::behaviors(), [
[
'class' => \ignatenkovnikita\imagemanager\behaviors\UploadBehavior::className(),
'attribute' => 'attachments',
'multiple' => true,
'tag' => self::NAME_ATTACHMENTS,
'pathAttribute' => 'path',
'uploadRelation' => 'productAttachments',
'baseUrlAttribute' => 'base_url',
'orderAttribute' => 'order',
'typeAttribute' => 'type',
'sizeAttribute' => 'size',
'nameAttribute' => 'name',
],
[
'class' => \ignatenkovnikita\imagemanager\behaviors\UploadBehavior::className(),
'attribute' => 'attachment',
'multiple' => false,
'tag' => self::NAME_ATTACHMENT,
'uploadRelation' => 'productAttachment',
'pathAttribute' => 'path',
'baseUrlAttribute' => 'base_url',
'orderAttribute' => 'order',
'typeAttribute' => 'type',
'sizeAttribute' => 'size',
'nameAttribute' => 'name',
],
]);
}/**
* @return \yii\db\ActiveQuery
* @throws \Exception
*/
public function getProductAttachments()
{
return $this->hasMany(ImageManager::class, ['owner_id' => 'id'])->andWhere(['tag' => self::NAME_ATTACHMENTS]);
}/**
* @return \yii\db\ActiveQuery
* @throws \Exception
*/
public function getProductAttachment()
{
return $this->hasOne(ImageManager::class, ['owner_id' => 'id'])->andWhere(['tag' => self::NAME_ATTACHMENT]);
}```
Add widget on view
```phpfield($model, 'attachment')->widget(
Upload::className(),
[
'url' => ['/file-storage/upload'],
'maxFileSize' => 5000000, // 5 MiB
]);
?>field($model, 'attachments')->widget(
Upload::className(),
[
'url' => ['/file-storage/upload'],
'sortable' => true,
'maxFileSize' => 10000000, // 10 MiB
'maxNumberOfFiles' => 10
]);
?>
```