PHPackages                             aik27/yii2-elfinder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. aik27/yii2-elfinder

ActiveYii2-extension[File &amp; Storage](/categories/file-storage)

aik27/yii2-elfinder
===================

Yii2 ElFinder

1.4.1(5y ago)07BSD-3-ClausePHP

Since Jan 25Pushed 5y agoCompare

[ Source](https://github.com/aik27/yii2-elfinder)[ Packagist](https://packagist.org/packages/aik27/yii2-elfinder)[ Docs](https://github.com/aik27/yii2-elfinder)[ RSS](/packages/aik27-yii2-elfinder/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (17)Used By (0)

ElFinder Расширение для Yii 2
=============================

[](#elfinder-расширение-для-yii-2)

ElFinder — файловый менеджер для сайта.

Поддерживаемые хранилища
------------------------

[](#поддерживаемые-хранилища)

mihaildev/yii2-elfinder-flysystem -

```
    Local
    Azure
    AWS S3 V2
    AWS S3 V3
    Copy.com
    Dropbox
    FTP
    GridFS
    Memory
    Null / Test
    Rackspace
    ReplicateAdapter
    SFTP
    WebDAV
    PHPCR
    ZipArchive

```

Установка
---------

[](#установка)

Удобнее всего установить это расширение через [composer](http://getcomposer.org/download/).

Либо запустить

```
php composer.phar require --prefer-dist aik27/yii2-elfinder "*"

```

или добавить

```
"aik27/yii2-elfinder": "*"
```

в разделе `require` вашего composer.json файла.

Настройка
---------

[](#настройка)

```
'controllerMap' => [
        'elfinder' => [
            'class' => 'aik27\elfinder\Controller',
            'access' => ['@'], //глобальный доступ к фаил менеджеру @ - для авторизорованных , ? - для гостей , чтоб открыть всем ['@', '?']
            'disabledCommands' => ['netmount'], //отключение ненужных команд https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#commands
            'roots' => [
                [
                    'baseUrl'=>'@web',
                    'basePath'=>'@webroot',
                    'path' => 'files/global',
                    'name' => 'Global'
                ],
                [
                    'class' => 'aik27\elfinder\volume\UserPath',
                    'path'  => 'files/user_{id}',
                    'name'  => 'My Documents'
                ],
                [
                    'path' => 'files/some',
                    'name' => ['category' => 'my','message' => 'Some Name'] //перевод Yii::t($category, $message)
                ],
                [
                    'path'   => 'files/some',
                    'name'   => ['category' => 'my','message' => 'Some Name'], // Yii::t($category, $message)
                    'access' => ['read' => '*', 'write' => 'UserFilesAccess'] // * - для всех, иначе проверка доступа в даааном примере все могут видет а редактировать могут пользователи только с правами UserFilesAccess
                ]
            ],
            'watermark' => [
            		'source'         => __DIR__.'/logo.png', // Path to Water mark image
                     'marginRight'    => 5,          // Margin right pixel
                     'marginBottom'   => 5,          // Margin bottom pixel
                     'quality'        => 95,         // JPEG image save quality
                     'transparency'   => 70,         // Water mark image transparency ( other than PNG )
                     'targetType'     => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field )
                     'targetMinPixel' => 200         // Target image minimum pixel size
            ]
        ]
    ],
```

```
'controllerMap' => [
        'elfinder' => [
			'class' => 'aik27\elfinder\PathController',
			'access' => ['@'],
			'root' => [
				'path' => 'files',
				'name' => 'Files'
			],
			'watermark' => [
						'source'         => __DIR__.'/logo.png', // Path to Water mark image
						 'marginRight'    => 5,          // Margin right pixel
						 'marginBottom'   => 5,          // Margin bottom pixel
						 'quality'        => 95,         // JPEG image save quality
						 'transparency'   => 70,         // Water mark image transparency ( other than PNG )
						 'targetType'     => IMG_GIF|IMG_JPG|IMG_PNG|IMG_WBMP, // Target image formats ( bit-field )
						 'targetMinPixel' => 200         // Target image minimum pixel size
			]
		]
    ],
```

Разница между PathController и Controller в том что PathController работает только с одной папкой также имеет доп возможность передать в запросе на открытие под деритории

На данный момент реализованно использование только LocalFileSystem хранилища (aik27\\elfinder\\volume\\Local и aik27\\elfinder\\volume\\UserPath) для использования остальных вам прийдётся всё настраивать через aik27\\elfinder\\volume\\Base также добавленно расширение  это дополнение позволяет интегрировать Flysystem хранилища такие как Local Azure AWS S3 V2 AWS S3 V3 Copy.com Dropbox FTP GridFS Memory Null / Test Rackspace ReplicateAdapter SFTP WebDAV PHPCR ZipArchive

Настройка callback-ов для событий
---------------------------------

[](#настройка-callback-ов-для-событий)

```
'controllerMap' => [
        'elfinder' => [
            ...
            'managerOptions' => [
                ...
                'handlers' => [
                    'select' => 'function(event, elfinderInstance) {
                                    console.log(event.data);
                                    console.log(event.data.selected);
                                }',
                    'open' => 'function(event, elfinderInstance) {...}',
                ],
                ...
            ],
            ...
        ]
    ],
```

список событий -

Настройка Плагинов
------------------

[](#настройка-плагинов)

Изза сложной настройки была переделанна работа плагинов но возможность использовать старые плагины присутствует

```
'controllerMap' => [
        'elfinder' => [
            'class' => 'aik27\elfinder\Controller',
            //'plugin' => ['\aik27\elfinder\plugin\Sluggable'],
            'plugin' => [
                [
                    'class'=>'\aik27\elfinder\plugin\Sluggable',
                    'lowercase' => true,
                    'replacement' => '-'
                ]
             ],
             'roots' => [
                             [
                                 'baseUrl'=>'@web',
                                 'basePath'=>'@webroot',
                                 'path' => 'files/global',
                                 'name' => 'Global',
                                 'plugin' => [
                                        'Sluggable' => [
                                            'lowercase' => false,
                                        ]
                                 ]
                             ],
                         ]
```

Настройка старого плагина (на примере плагина Sanitizer)

```
'controllerMap' => [
        'elfinder' => [
            'class' => 'aik27\elfinder\Controller',
            'connectOptions' => [
                'bind' => [
                    'upload.pre mkdir.pre mkfile.pre rename.pre archive.pre ls.pre' => array(
                        'Plugin.Sanitizer.cmdPreprocess'
                    ),
                    'ls' => array(
                        'Plugin.Sanitizer.cmdPostprocess'
                    ),
                    'upload.presave' => array(
                        'Plugin.Sanitizer.onUpLoadPreSave'
                    )
                ],
                'plugin' => [
                    'Sanitizer' => array(
                        'enable' => true,
                        'targets'  => array('\\','/',':','*','?','"','','|'), // target chars
                        'replace'  => '_'    // replace to this
                    )
                ],
            ],

             'roots' => [
                             [
                                 'baseUrl'=>'@web',
                                 'basePath'=>'@webroot',
                                 'path' => 'files/global',
                                 'name' => 'Global',
                                 'plugin' => [
                                        'Sanitizer' => array(
                                                                'enable' => true,
                                                                'targets'  => array('\\','/',':','*','?','"','','|'), // target chars
                                                                'replace'  => '_'    // replace to this
                                                            )
                                 ]
                             ],
                         ]
```

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

[](#использование)

```
use aik27\elfinder\InputFile;
use aik27\elfinder\ElFinder;
use yii\web\JsExpression;

echo InputFile::widget([
    'language'   => 'ru',
    'controller' => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
    'filter'     => 'image',    // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#wiki-onlyMimes
    'name'       => 'myinput',
    'value'      => '',
]);

echo $form->field($model, 'attribute')->widget(InputFile::className(), [
    'language'      => 'ru',
    'controller'    => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
    'filter'        => 'image',    // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#wiki-onlyMimes
    'template'      => '{input}{button}',
    'options'       => ['class' => 'form-control'],
    'buttonOptions' => ['class' => 'btn btn-default'],
    'multiple'      => false       // возможность выбора нескольких файлов
]);

echo ElFinder::widget([
    'language'         => 'ru',
    'controller'       => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
    'filter'           => 'image',    // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#wiki-onlyMimes
    'callbackFunction' => new JsExpression('function(file, id){}') // id - id виджета
]);
```

Использование при работе с PathController
-----------------------------------------

[](#использование-при-работе-с-pathcontroller)

```
use aik27\elfinder\InputFile;
use aik27\elfinder\ElFinder;
use yii\web\JsExpression;

echo InputFile::widget([
    'language'   => 'ru',
    'controller' => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
    'path' => 'image', // будет открыта папка из настроек контроллера с добавлением указанной под деритории
    'filter'     => 'image',    // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#wiki-onlyMimes
    'name'       => 'myinput',
    'value'      => '',
]);

echo $form->field($model, 'attribute')->widget(InputFile::className(), [
    'language'      => 'ru',
    'controller'    => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
    'path' => 'image', // будет открыта папка из настроек контроллера с добавлением указанной под деритории
    'filter'        => 'image',    // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#wiki-onlyMimes
    'template'      => '{input}{button}',
    'options'       => ['class' => 'form-control'],
    'buttonOptions' => ['class' => 'btn btn-default'],
    'multiple'      => false       // возможность выбора нескольких файлов
]);

echo ElFinder::widget([
    'language'         => 'ru',
    'controller'       => 'elfinder', // вставляем название контроллера, по умолчанию равен elfinder
    'path' => 'image', // будет открыта папка из настроек контроллера с добавлением указанной под деритории
    'filter'           => 'image',    // фильтр файлов, можно задать массив фильтров https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#wiki-onlyMimes
    'callbackFunction' => new JsExpression('function(file, id){}') // id - id виджета
]);
```

CKEditor
--------

[](#ckeditor)

```
use aik27\elfinder\ElFinder;

$ckeditorOptions = ElFinder::ckeditorOptions($controller,[/* Some CKEditor Options */]);
```

Для указания подкаталога (при использовании PathController)

```
use aik27\elfinder\ElFinder;

$ckeditorOptions = ElFinder::ckeditorOptions([$controller, 'path' => 'some/sub/path'],[/* Some CKEditor Options */]);
```

Использование совместно с приложением "mihaildev/yii2-ckeditor" ()

```
use aik27\ckeditor\CKEditor;
use aik27\elfinder\ElFinder;

$form->field($model, 'attribute')->widget(CKEditor::className(), [
  ...
  'editorOptions' => ElFinder::ckeditorOptions('elfinder',[/* Some CKEditor Options */]),
  ...
]);
```

Для указания подкаталога (при использовании PathController)

```
use aik27\ckeditor\CKEditor;
use aik27\elfinder\ElFinder;

$form->field($model, 'attribute')->widget(CKEditor::className(), [
  ...
  'editorOptions' => ElFinder::ckeditorOptions(['elfinder', 'path' => 'some/sub/path'],[/* Some CKEditor Options */]),
  ...
]);
```

Проблемы
--------

[](#проблемы)

При встраивание без iframe возможен конфликт с bootstrap.js. [Studio-42/elFinder#740](https://github.com/Studio-42/elFinder/issues/740)Решение - добавляем в шаблон запись

```
aik27\elfinder\Assets::noConflict($this);
```

Полезные ссылки
---------------

[](#полезные-ссылки)

ElFinder Wiki -

Flysystem

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 81.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~174 days

Recently: every ~433 days

Total

16

Last Release

1868d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2b35bd841879b9c1d030bdf263e870b9c24a7d2b9bd4dff94dba930a804602ed?d=identicon)[aik27](/maintainers/aik27)

---

Top Contributors

[![MihailDev](https://avatars.githubusercontent.com/u/2392194?v=4)](https://github.com/MihailDev "MihailDev (80 commits)")[![degger80](https://avatars.githubusercontent.com/u/785423?v=4)](https://github.com/degger80 "degger80 (3 commits)")[![kvush](https://avatars.githubusercontent.com/u/12866266?v=4)](https://github.com/kvush "kvush (2 commits)")[![pavlinter](https://avatars.githubusercontent.com/u/6838002?v=4)](https://github.com/pavlinter "pavlinter (2 commits)")[![upiksaleh](https://avatars.githubusercontent.com/u/27196513?v=4)](https://github.com/upiksaleh "upiksaleh (2 commits)")[![rdeanar](https://avatars.githubusercontent.com/u/1760493?v=4)](https://github.com/rdeanar "rdeanar (1 commits)")[![scorpsan](https://avatars.githubusercontent.com/u/32801067?v=4)](https://github.com/scorpsan "scorpsan (1 commits)")[![SiarheiVolkau](https://avatars.githubusercontent.com/u/9957833?v=4)](https://github.com/SiarheiVolkau "SiarheiVolkau (1 commits)")[![besnovatyj](https://avatars.githubusercontent.com/u/1440158?v=4)](https://github.com/besnovatyj "besnovatyj (1 commits)")[![vstaheev](https://avatars.githubusercontent.com/u/1925328?v=4)](https://github.com/vstaheev "vstaheev (1 commits)")[![elaps](https://avatars.githubusercontent.com/u/10044204?v=4)](https://github.com/elaps "elaps (1 commits)")[![jordanLex](https://avatars.githubusercontent.com/u/6469256?v=4)](https://github.com/jordanLex "jordanLex (1 commits)")[![Kravalg](https://avatars.githubusercontent.com/u/9444106?v=4)](https://github.com/Kravalg "Kravalg (1 commits)")[![Ragaga](https://avatars.githubusercontent.com/u/1582216?v=4)](https://github.com/Ragaga "Ragaga (1 commits)")

---

Tags

yiifilemanagerelfinder

### Embed Badge

![Health badge](/badges/aik27-yii2-elfinder/health.svg)

```
[![Health](https://phpackages.com/badges/aik27-yii2-elfinder/health.svg)](https://phpackages.com/packages/aik27-yii2-elfinder)
```

###  Alternatives

[mihaildev/yii2-elfinder

Yii2 ElFinder

169658.8k52](/packages/mihaildev-yii2-elfinder)[helios-ag/fm-elfinder-bundle

ElFinder bundle, adds ElFinder file manager to your Symfony project

2814.8M27](/packages/helios-ag-fm-elfinder-bundle)[barryvdh/laravel-elfinder

A Laravel Package to integrate elFinder 2

7542.7M45](/packages/barryvdh-laravel-elfinder)[barryvdh/elfinder-flysystem-driver

A Flysystem Driver for elFinder

1864.7M31](/packages/barryvdh-elfinder-flysystem-driver)[mdmsoft/yii2-upload-file

Yii2 upload file tools

7333.4k](/packages/mdmsoft-yii2-upload-file)[zxbodya/yii2-elfinder

Extension to use elFinder 1.x file manager in Yii2 application

1035.7k3](/packages/zxbodya-yii2-elfinder)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
