This extension integrates the jQuery elFinder into yii2 framework (the yii way: with elFinder component, behaviors, configurable objects, events etc.). Additionally it prevents jui/elfinder css from loading and provides it's own styles for elfinder (bootstrap3 / fontawesome scss based style).
The preferred way to install this extension is through composer.
Either run
$ php composer.phar require --prefer-dist simialbi/yii2-elfinder
or add
"simialbi/yii2-elfinder": "*"
to the require
section of your composer.json
Add the module elfinder
to the modules section of your configuration file:
'modules' => [
'elfinder' => [
'class' => 'simialbi\yii2\elfinder\Module',
'options' => [
'default' => [
'class' => 'simialbi\yii2\elfinder\ElFinderOptions',
'locale' => 'de_DE.UTF-8',
'maxTargets' => 0
]
],
'connectionSets' => [
'default' => [ // like elfinder roots
[
'class' => 'simialbi\yii2\elfinder\ElFinderConfigurationLocalFileSystem',
'path' => '@webroot/files',
'URL' => '@web/files'
]
]
],
'volumeBehaviors' => [
'default' => [ // like elfinder plugins, add behaviors
'as resizer' => [
'class' => 'simialbi\yii2\elfinder\behaviors\ImageResizeBehavior',
'maxWidth' => 1920,
'maxHeight' => 1080,
'quality' => 70
],
'as optimizer' => [
'class' => 'simialbi\yii2\elfinder\behaviors\ImageOptimizeBehavior'
]
]
]
]
]
To include an elfinder instance in one of your pages, call the elfinder widget like this:
<?php
/* @var $this yii\web\View */
use simialbi\yii2\elfinder\widgets\ElFinder;
$this->title = 'elFinder';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="my-elfinder">
<?php
// @see https://github.com/Studio-42/elFinder/wiki/Client-configuration-options-2.1
echo ElFinder::widget([
'instanceName' => 'default' // from module connectionSets/volumeBehaviors configuration (array key)
]);
?>
</div>
All options from elfinder client configuration options
and instanceName
can be used to configure the widget.
To include an elfinder input field widget, call the input widget like this:
<?php
/* @var $this yii\web\View */
use simialbi\yii2\elfinder\widgets\ElFinderInput;
$this->title = 'elFinder';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="my-elfinder">
<?php
// @see https://github.com/Studio-42/elFinder/wiki/Client-configuration-options-2.1
echo ElFinderInput::widget([
'name' => 'my-file',
'value' => '/path/to/my/file.ext',
'instanceName' => 'default'
]);
// or model like usage
/* @var $form \yii\widgets\ActiveForm */
/* @var $model \yii\base\Model */
echo $form->field($model, 'my-file')->widget(
ElFinderInput::className(),
[
'instanceName' => 'default'
]
);
?>
</div>
yii2-elfinder is released under MIT license. See bundled LICENSE for details.