Awesome
Yii2 Media Manager Module
This module provides a Media Manager integration to your Yii2 application. It is still in its early stages, but feel free to use it, report bugs, and contribute.
Demo
https://www.iutbayonne.univ-pau.fr/~klevron/mm/
Installation
The preferred way to install this module is through composer.
Either run
composer require "iutbay/yii2-mm" "*"
or add
"iutbay/yii2-mm" : "*"
to the require section of your application's composer.json
file.
Configuration
Add the following lines in your application configuration :
'components' => [
// ...
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'thumbs/<path:.*>' => 'mm/thumb/thumb',
// ...
],
],
// ...
'fs' => [
'class' => 'creocoder\flysystem\LocalFilesystem',
'path' => '@webroot/upload',
],
],
'modules' => [
// ...
'mm' => [
'class' => 'iutbay\yii2\mm\Module',
],
],
About Flysystem
This module use Flysystem (via creocoder/yii2-flysystem), a filesystem abstraction which allows you to easily swap out a local filesystem for a remote one.
You can use a local filesystem as described previously, you should then create an upload
folder in the web folder of your Yii2 application. You can also use any adapter provided by Flysystem, take a look at Flysystem and creocoder/yii2-flysystem.
WARNING : Actually, this module has only been tested with local, ftp and sftp adapters.
About image thumbnails
This module use Imagine (via yii2-imagine) to generate image thumbnails on demand, you should create a thumbs
folder in the web folder of your application.
Usage
MediaManagerInput
use iutbay\yii2\mm\widgets\MediaManagerInput;
echo MediaManagerInput::widget([
'name' => 'test', // input name
'multiple' => false,
'clientOptions' => [
'api' => [
'listUrl' => Url::to(['/mm/api/list']),
// 'uploadUrl' => Url::to(['/mm/api/upload']),
// 'downloadUrl' => Url::to(['/mm/api/download']),
],
],
]);
MediaManagerModal
use iutbay\yii2\mm\widgets\MediaManagerInputModal;
echo MediaManagerInputModal::widget([
'name' => 'test', // input name
'clientOptions' => [
'api' => [
'listUrl' => Url::to(['/mm/api/list']),
// 'uploadUrl' => Url::to(['/mm/api/upload']),
// 'downloadUrl' => Url::to(['/mm/api/download']),
],
],
]);