Giter Club home page Giter Club logo

yii2-elfinder's Introduction

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

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

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

mihaildev/yii2-elfinder-flysystem - https://github.com/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.

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

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

или добавить

"mihaildev/yii2-elfinder": "*"

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

Настройка

'controllerMap' => [
        'elfinder' => [
            'class' => 'mihaildev\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' => 'mihaildev\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' => 'mihaildev\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 хранилища (mihaildev\elfinder\volume\Local и mihaildev\elfinder\volume\UserPath) для использования остальных вам прийдётся всё настраивать через mihaildev\elfinder\volume\Base также добавленно расширение https://github.com/MihailDev/yii2-elfinder-flysystem/ это дополнение позволяет интегрировать Flysystem хранилища такие как Local Azure AWS S3 V2 AWS S3 V3 Copy.com Dropbox FTP GridFS Memory Null / Test Rackspace ReplicateAdapter SFTP WebDAV PHPCR ZipArchive

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

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

список событий - https://github.com/Studio-42/elFinder/wiki/Client-event-API#event-list

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

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

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

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

'controllerMap' => [
        'elfinder' => [
            'class' => 'mihaildev\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 mihaildev\elfinder\InputFile;
use mihaildev\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'      => '<div class="input-group">{input}<span class="input-group-btn">{button}</span></div>',
    '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

use mihaildev\elfinder\InputFile;
use mihaildev\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'      => '<div class="input-group">{input}<span class="input-group-btn">{button}</span></div>',
    '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

use mihaildev\elfinder\ElFinder;

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

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

use mihaildev\elfinder\ElFinder;

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

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

use mihaildev\ckeditor\CKEditor;
use mihaildev\elfinder\ElFinder;

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

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

use mihaildev\ckeditor\CKEditor;
use mihaildev\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 Решение - добавляем в шаблон запись

mihaildev\elfinder\Assets::noConflict($this);

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

ElFinder Wiki - https://github.com/Studio-42/elFinder/wiki

Flysystem

https://github.com/MihailDev/yii2-elfinder-flysystem/

https://github.com/barryvdh/elfinder-flysystem-driver

https://github.com/creocoder/yii2-flysystem

http://flysystem.thephpleague.com/

yii2-elfinder's People

Contributors

besnovatyj avatar degger80 avatar elaps avatar jordanlex avatar kravalg avatar kvush avatar mihaildev avatar pavlinter avatar ragaga avatar rdeanar avatar scorpsan avatar siarheivolkau avatar upiksaleh avatar uran1980 avatar vstaheev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yii2-elfinder's Issues

путь к frontend из backend в advanced

ДОбрый день, установил, все работает. Но хотелось бы чтобы изображения складывались и показывались не из backend директории, а из frontend, шаблон advanced. Все перепробовал, ничего не помогает

Нет перевода на русский

Установил ваш пакет
В виде использую

use mihaildev\elfinder\ElFinder;
use yii\web\JsExpression;

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

файл менеджер отображается, только вот без перевода на русский
в консоли можно увидеть следующее
2014-10-23_15-31-11

Абсолютные пути

Собственно, существуюет ли возможность использования абсолютных путей в ссылках?
Или единственный вариант указать имя хоста в baseUrl?

Проблемы с подключением в модуле

Я подключила ElFinder к вашему же расширению CKEditor в модуле admin

    <? echo $form->field($model, 'descr')->widget(CKEditor::className(), [
        'editorOptions' => ElFinder::ckeditorOptions('elfinder',[
            'preset' => 'full',
            //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать
            'inline' => false,
            //по умолчанию false
        ]),
    ]); ?>

все работает.
но при вызове файлового менеджера возникает ошибка 404
Проблема связана с UrlManager
Ведь когда я оставляю стандартные правила -

'<_c:[\w\-]+>/<id:\d+>' => '<_c>/view',
                    '<_c:[\w\-]+>' => '<_c>/index',
                    '<_c:[\w\-]+>/<_a:[\w\-]+>/<id:\d+>' => '<_c>/<_a>',

то всё работает.
А если я заменяю на правила для модульной структуры, то возникает вышеупомянутая ошибка

                    '<_m:[\w\-]+>/<_c:[\w\-]+>/<id:\d+>' => '<_m>/<_c>/view',
                    '<_m:[\w\-]+>/<_c:[\w\-]+>/<_a:[\w\-]+>/<id:\d+>' => '<_m>/<_c>/<_a>',
                    '<_m:[\w\-]+>' => '<_m>/default/index',
                    '<_m:[\w\-]+>/<_c:[\w\-]+>' => '<_m>/<_c>/index',

Возможно это можно исправить как то в настройках подключения ElFinder ?

Не могу настроить, получаю сплошные ошибки

Доброго времени суток! Такая проблема. Решил поставить файловый менеджер на свой самописный сайт, но что-то видимо пошло не так...

.htaccess запрещает индексирование директорий, отдаёт 403 на запросы к файлам с расширением htaccess и html (из адресной строки), а дальше ЧПУ:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?q=$1 [QSA]

index.php делает session_start(), загружает настройки и route.php
route.php парсит запрос и загружает нужную страницу из папки /modules. В случае запроса http://domain.com/filemanager он загружает /modules/filemanager.html, который в свою очередь загружает шапку (/modules/head.html), размещает div id="elfinder", и в конце загружает подвал.

Все файлы файлового менеджера лежат по адресу /modules/filemanager/

Внутри тегов head подключается всё, что нужно, используя абсолютные пути.

Фрагменты $opts['roots'] из \modules\filemanager\php\connector.minimal.php:
'path' => $_SERVER['HTTP_HOST'],
'URL' => 'http://'.$_SERVER['HTTP_HOST'].'/'
Пробовал и прямо прописать адрес адрес сайта, и $_SERVER['DOCUMENT_ROOT'], и dirname($_SERVER['PHP_SELF']), но всё равно получаю ошибку "Ошибка Некорректный ответ сервера. Данные не формате JSON.", либо про то, что нет файлов и директорий, доступных для чтения.

Очень-очень прошу сказать, где что подправить, чтобы заработало, ибо файловый менеджер нравится! (работал с ним на хостингере)

Спасибо за уделённое время!

оптимизация работы с настройками папок

на основе запроса #15

есть предложенеи о передаче настроек в виде параметра в ссылке но опять же возникает множество вопросов как лучеш это сделать:
мне видется один из вариантов такой
при настройке папок выдавать им идентификаторы
тогда можно передавать идентификатор и допустим какойто внутренний путь чтот типа такого
elfinder?id=articles&folder=sub/folder/in/articles

то есть получаем настройки для идентификатора articles и добавляем в него под папку sub/folder/in/articles тогда допустим при редактировании статей в мэнеджере откроется не весь список доступных папок а именно указанная

Поддержка i18n

Если в настройках указываю 'language'=>'ru-Ru', то elfinder не переводится на русский.
При 'language'=>'ru', переводится.

PathController и относительные пути

Настроил PathController.
Все работает.
Начал проводить известные приемы ).

  1. Подключил к папке @web/uploads
  2. Path в виджете указал images
  3. Отобразилось все в iframe
  4. Открыл iframe в отдельном окне
  5. написал в адресной строке site.ru/elfinder/manager?lang=ru&path=../../../
  6. получил доступ к корню всего проекта

нужна проверка - есть ли в path относительный путь (..) и закрывать доступ, если есть.
А лучше даже закодировать путь (mcrypt_encrypt + salt из конфига)

p.s. никак не могу понять, как подключить FM без iframe, чтобы там "поэксперементировать"
в инструкции только сказано, как избавиться от конфликта с bootstrap.js...

Транслитерация

Как возможно использовать транслитерацию имен изображений при загрузке?

Unable to resolve the request: elfinder/sounds/rm.wav

Hi.
I am working with pretty urls on and using InputFile::widget
When I delete file from elfinder modal window I got into logs the next error:

'yii\base\InvalidRouteException' with message 'Unable to resolve the request: elfinder/sounds/rm.wav' in C:\WWW\htdocs\yii_mywebsite\vendor\yiisoft\yii2\base\Controller.php:122

Amazon S3 connection failing

After full configuration of Amazon keys XHR in File Browser returns this:

{"error":["errConf","errNoVolumes"],"debug":["Driver "elFinderVolumeS3" : curl_setopt_array(): CURLOPT_SSL_VERIFYHOST no longer accepts the value 1, value 2 will be used instead"]}

How it can be fixed? Thanks!

callbackFunction option error

Unknown Property – yii\base\UnknownPropertyException

Setting unknown property: mihaildev\elfinder\InputFile::callbackFunction

'zh_CN', 'controller' => 'elfinder', 'filter' => 'image', 'template' => '{button}', 'options' => ['class' => 'form-control'], 'buttonOptions' => ['class' => 'btn btn-default'], 'path' => '', 'multiple' => 1, 'callbackFunction' => new JsExpression('function(file, id){ console.dir(file);}') // add this line cause error

Не могу выставить attributes

Привет.
Мне надо скрыть некие папки чтобы они не показывались.
делаю так:

                'roots' => [
                    [
                        'baseUrl'=>'http://www.mysite.ru',
                        'basePath'=>'@webroot',
                        'path' => 'uploads',
                        'name' => 'Global',
                        'options' => [
                            'attributes' => [
                                [
                                    'pattern' => '#^forbidden$#', //
                                    'hidden'  => true
                                ]
                            ],        
                        ],
                    ],
                ],

хочу чтобы папка forbidden не показывалась в списке, но она показывается. Что не так?

thumbnails size

Is it possible to configure some way thumbnail images size and/or create few different size versions of images?
ElFinder itself has config value 'tmbSize' but I can't realize how to set it up via yii2-elfinder extention.
saving thumbnails not in asset (sub)folders and managing them also will be great!
TIA

Empty language

Если не задать язык то $this->language == false

if(empty($this->language))
            $this->language = self::getSupportedLanguage(Yii::$app->language); //return false;

Connect To AWS S3

Hello. I think it would be better to open a new thread for this issue. Based on previous thread : #29, this is my config :

'controllerMap' => [
'elfinder' => [
'class' => 'mihaildev\elfinder\Controller',
'access' => ['@'], //глобальный доступ к фаил менеджеру @ - для авторизорованных , ? - для гостей , чтоб открыть всем ['@', '?']
'disabledCommands' => ['netmount'], //отключение ненужных команд https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#commands
'roots' => [
[
'class' => 'mihaildev\elfinder\S3Path',
'name' => 'AWS S3',
'accessKey' => '_',
'secretKey' => '
_',
'bucket' => '***'
],
],
'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
]
]
],

It throws err "Invalid backend configuration.Readable volumes not available.". Am I correct in my config ? Please help, thank you.

Подскажите пожалуйста.

Добрый день. Осваиваю YII. И в качестве контент едитора решил поставить ваше расширение CKEditor. Чтобы загружать фото в тело контента хочу поставить elfinder. И мне честно не понятно эта часть.
use mihaildev\ckeditor\CKEditor;
use mihaildev\elfinder\ElFinder;

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

Подскажите где мне указать для загрузчика куда помещать все фото. И можно ли как то будет их отделить друг от друга (Posts, Pages) по моделям к примеру.

Ранее ни CKeditor, не Elfinder не использовал, по этому мне много не понятно. Спасибо за ответ.

enableStrictParsing true (not found)

Здравствуйте!

При enableStrictParsing = true выдается NotFoundHttpException (404)
Если enableStrictParsing = false то все работает.

Использую PathController и подключаю к CKeditor

<?php
 'controllerMap' => [
        'elfinder' => [
            'class' => 'mihaildev\elfinder\PathController',
            'access' => ['@'],
            'root' => [
                'path' => '/data/content',
                'name' => 'Files'
            ],
        ]
    ]
?>
<?= $form->field($model, 'desc')->widget(CKEditor::className(), [
    'editorOptions' => ElFinder::ckeditorOptions(['elfinder'],[
        'language' => 'ru',
        'preset' => 'full',
    ]),
]);?>

установка elFinder через composer

Доброго времени суток!
Хотел интегрировать это расширение с barryvdh/elfinder-flysystem-driver и столкнулся с такой проблемой:

barryvdh/elfinder-flysystem-driver имеет в зависимостях studio-42/elfinder и после установки автозагрузчик подтягивает для класса elFinder и аналогичных отсюда

'elFinder' => $vendorDir . '/studio-42/elfinder/php/elFinder.class.php',

Чтобы не было конфликтов я предлагаю удалить из расширения Nightly версию и устанавливать её через композер

PathController и CKEditor

Подключаю

    <?=  $form->field($model, 'body')->widget(CKEditor::className(),[
        'editorOptions' => ElFinder::ckeditorOptions('elfinder',[
            'preset' => 'basic', // редактор реагирует на настройки basic, standard, full
            'path' => 'img', //тут путь не передается
        ]),
    ]); ?>

но папка path не открывается. В адресной строке нет переменной path

Source code indentation problem

Hi, I found there are many indentation problems in source code.

Mix of TAB and white-space, lead to misaligned,hope that the author can fix it, thanks.

Undefined index: path

Включил вывод всех ошибок. Получил нотис

PHP Notice 'yii\base\ErrorException' with message 'Undefined index: path'
in X:\domains\gin.yii\vendor\mihaildev\yii2-elfinder\PathController.php:59

screenshot 2016-06-29 001

Google cloud plataform

Congratulations, very good extension.

Is possible you make a class to google cloud plataform seems you did to S3.

Thanks for all.

Alexandre

Class 'Phar' not found

Помогите разобраться пож.
вот мои настройки

'controllerMap'=>[
        'elfinder' => [
            'class' => '\mihaildev\elfinder\PathController',
            'access' => ['@', '?'], //глобальный доступ к фаил менеджеру @ - для авторизорованных , ? - для гостей , чтоб открыть всем ['@', '?']
            'disabledCommands' => ['netmount'], //отключение ненужных команд https://github.com/Studio-42/elFinder/wiki/Client-configuration-options#commands
            'root' => [
                'baseUrl' => '../',
                'basePath' => '@webroot',
                'path' => 'files/',
            ]
        ]
    ]

В результате получаю вот такую ошибку

1. in /home/tvmecykf/new/vendor/mihaildev/elfinder/volume/aws.phar at line 17
891011121314151617181920212223242526 *
 * http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
 
Phar::mapPhar('aws.phar');
 
define('AWS_PHAR', true);
 
require_once 'phar://aws.phar/vendor/symfony/class-loader/Symfony/Component/ClassLoader/UniversalClassLoader.php';
 
$classLoader = new Symfony\Component\ClassLoader\UniversalClassLoader();
$classLoader->registerNamespaces(array(
    'Aws'      => 'phar://aws.phar/src',
    'Guzzle'   => 'phar://aws.phar/vendor/guzzle/guzzle/src',

Url: ../elfinder/connect?path=image&csrf=NmtDZlRDVi1sPAorGQQgcgcBLgsFdRhGVF4HERUCGG8HPDISEnQyTg%3D%3D&mimes%5B%5D=image&cmd=open&target=&init=1&tree=1&=1453123595408

to set basUrl and basePath

Hi,
I am using yii2 advanced template. i can access http://localhost/devtuts
and http://localhost/devtuts/backend.I have configured controllerMap in backend/main.php
like this
'controllerMap' => [
'elfinder' => [
'class' => 'mihaildev\elfinder\PathController',
'access' => ['@'],
'root' => [
'baseUrl'=>'@web',
'basePath'=>'@webroot',
'path' => 'files',
'name' => 'Files'
],
...
My question is how can i set baseUrl and basePath by which i can store files inside
http://localhost/devtuts/files folder from backend to frontend

Without iframe

Можно ли иницелизировать без iframa?

кавычки менятяються на &quot;

Доброго времени суток!
Помогите пожалуйста, есть самописный сайт. Туда интегрировал elfinder 2.0. Но есть один нюанс, после сохранения файлов все кавычки в файле меняются на " как это побороть не знаю. Заранее спасибо!

Access in PathController

Михаил, подскажите, как указать права доступа в PathController по операциям. Как в Вашем примере для 'mihaildev\elfinder\Controller'

                [
                    'path'   => 'files/some',
                    'name'   => ['category' => 'my','message' => 'Some Name'], // Yii::t($category, $message)
                    'access' => ['read' => '*', 'write' => 'UserFilesAccess'] // * - для всех, иначе проверка доступа в даааном примере все могут видет а редактировать могут пользователи только с правами UserFilesAccess
                ]

вставлял блок в разные места, пробовал разные комбинации... все равно могу редактировать, загружать и удалять...

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

Здравствуйте, Михаил.
Увидел ваше расширение в связке с ckeditor и хотел бы прояснить один момент:
Можно ли (и как ?) для редактора в модуле указать по умолчанию папку для загрузки файлов через elfinder.

Раньше в yii 1.15 я такое собирал по отдельности.

  • например: модуль articles. В нем определял свойство класса $this->elf_folder='articles'; // папка для изображений к статьям
  • в виде в настройках ckeditor передавал эту папку для подключения elfinder
                $this->widget('ext.editme.widgets.ExtEditMe', array(
                     'model' => $model,
                                          ...
                     'value' => $model->text,
                     'ckeConfig' => array(
                          'filebrowserImageBrowseUrl' => CHtml::normalizeUrl(array('/' . $this->module->id . '/elfinder/', $this->elf_folder)),
                     ),
                ));
  • затем эту папку передавал для подключения самого виджета ElfinderController
    public function actionIndex() {
        $this->render('index', array(
             'folder' => $_GET[0]));
    }
  • инициализировал коннетор в виде виджетом
$this->widget('application.extensions.elfinder.ElFinderWidget', array(
      'connectorRoute' => Yii::app()->controller->createUrl('connector', array('folder'=>$folder)),
       'settings'=> array(
         'getFileCallback'=>'js:function(file) {
                var funcNum = window.location.search.replace(/^.*CKEditorFuncNum=(\d+).*$/, "$1");
                    // console.log(file);
               window.opener.CKEDITOR.tools.callFunction(funcNum, file["url"]);
               window.close();}',  
           'height' => '600px',
           )
    )
  );
  • В ElfinderController ловил эту переменную $_GET['folder'] и предавал в настройки
    'path' => Yii::getPathOfAlias('webroot') . '/'.Yii::app()->params['upload_dir'].$_GET['folder'],
    public function actions() {
        return array(
             'connector' => array(
                  'class' => 'ext.elfinder.ElFinderConnectorAction',
                  'settings' => array(
                        'roots' => array(
                             array(
                                  'driver' => 'LocalFileSystem',
                                  'path' => Yii::getPathOfAlias('webroot') . '/'.Yii::app()->params['upload_dir'].$_GET['folder'],
                                  'URL' => Yii::app()->baseUrl . '/'.Yii::app()->params['upload_dir'].$_GET['folder'],
                                  'alias' => 'Home',
                                  'acceptedName' => '/^[^\.].*$/', // disable creating dotfiles
                                  'attributes' => array(
                                        array(
                                             'pattern' => '/\/[.].*$/', // hide dotfiles
                                             'read' => TRUE,
                                             'write' => TRUE,
                                             'hidden' => TRUE,
                                        ),
                                  ),
                             )
                        ),
                  ),
             ),
             // action for file input popup with elFinder widget
             'elfinderFileInput' => array(
                  'class' => 'ext.elfinder.ServerFileInputElFinderPopupAction',
                  'connectorRoute' => 'connector', // main connector action id
             ),
        );
    }
  • Если не определено свойство $this->elf_folder в модуле, тогда изображения загружаются в корень Yii::app()->params['upload_dir']
  • Как по мне - это очень удобно - давать доступ к редактированию статей, чтобы модераторы видели только папку с файлами статей, а не блога, аватарок и тп....

Заранее благодарю за ответ.

not found Assets

With the changes to the Asset manager in yii2, there is an error now with the package because
'yii\jui\ThemeAsset', 'yii\jui\EffectAsset', 'yii\jui\ResizableAsset', 'yii\jui\DraggableAsset', 'yii\jui\DroppableAsset', 'yii\jui\SelectableAsset'

do not exist anymore. If you replace them all with 'yii\jui\JuiAsset' then it all works again.

Свои настройки контроллера.

Как добавить свои настройки в контроллер?
Думаю надо сделать переменную которая будет сливатся с private $_options;
и так же не мог добавить настройки в actionManager!

Folder Options for widgets

Практическое продолжение темы с папками...)
Итак, создал контроллер, унаследовался от вашего, прописал нужные настройки.

<?php

namespace backend\controllers;

use Yii;

class ElfinderController extends \mihaildev\elfinder\Controller
{
    public $folder = 'test';
    public $access = ['manager'];
    public $roots = [];
    public $disabledCommands = ['netmount'];

    public function init()
    {
        $this->roots = [
            [
                'baseUrl' => '@storageUrl',
                'basePath' => '@storage',
                'path' => '/' . $this->folder,
                'name' => ['category' => 'backend', 'message' => $this->folder], // Yii::t($category, $message)
                'access' => ['read' => '*', 'write' => '*'],
                'options' => [
                    'driver'     => 'LocalFileSystem',
                    'tmbSize' => '48',
                    'acceptedName' => '/^[0-9a-z_\-.]+$/i', // i любой регистр только англ
                    'imgLib' => 'gd',
                    'attributes' => [
                        [
                            'pattern' => '/.tmb|.quarantine/',
                            'hidden'  => true,
                            'read'    => true,
                            'write'   => true,
                            'locked'  => false
                        ]
                    ]
                ]
            ]
        ];
        parent::init();
    }
}

при обращении из виджета корректно открывается папка 'test'.
в виджете добавил параметр folder

       echo \mihaildev\elfinder\ElFinder::widget([
            'controller'       => 'elfinder',
            'frameOptions' => ['style'=>'min-height: 500px; width: 100%;  border: 0;'],
....
            'folder' => 'content' // новое свойства folder
            ]);

В самом виджете добавил по сле языка

        if(!empty($this->language))
            $managerOptions['lang'] = $this->language;

        if(!empty($this->folder))
            $managerOptions['folder'] = $this->folder;

        $this->frameOptions['src'] = $this->getManagerUrl($this->controller, $managerOptions);

Кодировка загружаемых имен файлов

Доброго времени суток! Использую Windows 10 + OpenServer elfinder при загрузке показывает нормальные имена файлов, но в Windows Explorer они отображаются как "кракозябры" из-за этого не работаю ссылки на них. Подскажите пожалуйста в каком направлении копать, чтоб имена файлов корректно отображались.

iframe unable to find jquery-ui

I get the following error within the iframe

The file or directory to be published does not exist: /Applications/MAMP/htdocs/advanced_4/_protected/vendor/bower/jquery-ui

Could you shed any light on why I may be getting this error/how to fix it?

Thanks :)

Проблема с выводом во вкладках

Приветствую! Пытаюсь вывести 2 формы для разных языков во вкладках, используя bootstrap\tabs - ничего не получается. Редактор отображается, а файловый менеджер не подтягивается, хотя js код прописывается вроде как и должен..

Вот пример кода

    foreach($languages as $language) {
        $items[$language->name] = [
            'label' => $language->name,
            'active' => Yii::$app->language == $language->url,
            'content' =>
                    $form->field($model, 'title_'.$language->url)->textInput(['maxlength' => 512]).
                    $form->field($model, 'content_'.$language->url)->widget(CKEditor::className(), [
                        'editorOptions' => [
                            ElFinder::ckeditorOptions(['elfinder']),
                            'language' => Yii::$app->language,
                        ]
                    ])
        ];
    }
    echo Tabs::widget(['items' => $items]);  

В чем может быть поблема?

При попытке загрузить картинку (elfinder) всплывает пустое окно

Ранее устанавливал расширение - работало все как надо. При нажатии на кнопку "загрузить на сервер" открывалось окно с фотками, что уже загружены в указанную папку и т..п (basic приложение)..

Установил недавно на advensed. Эдитор работает корректно, а elfinder открывается, но там пустой экран и только несколько иконок в ряд. Мне кажется, что не подключается asset

Yii2 + elFinder + Flysystem Dropbox

У меня сейчас работает связка elFinder + Flysystem Dropbox, хотел бы мигрировать этот модуль к yii2, чтобы удобнее было пользоваться правами доступа.
Может ли в таком режиме работать ваше расширение?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.