Skip to content
elFinder 2.x Yii extension
PHP
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
vendor
views
.gitignore
CHANGELOG.md
ElFinderConnectorAction.php
ElFinderHelper.php
ElFinderPopupAction.php
ElFinderWidget.php
LICENSE
README.md
ServerFileInput.php
ServerFileInputElFinderPopupAction.php
TinyMceElFinder.php
TinyMceElFinderPopupAction.php
composer.json

README.md

elFinder 2.1 integration for Yii 1.1

Based on https://bitbucket.org/z_bodya/yii-elfinder with updated elFinder and some code improvements.

How to use

  1. Checkout source code to your project to ext.elFinder. You can use custom elFinder code, just set elFindervendor alias to point your elFinder code directory.

    'aliases' => [
        'elFindervendor' => 'vendor.myCystomElFinder',
    ],

    You can get elFinder from https://github.com/Studio-42/elFinder/releases - remember to move css, img, js and sounds directories to assets directory, so elFinder source will look like:

  2. Create controller for connector action, and configure it params

    class ElfinderController extends Controller {
    
        // don't forget configure access rules
    
        public function actions() {
            return [
                // main action for elFinder connector
                'connector' => [
                    'class' => 'ext.elFinder.ElFinderConnectorAction',
                    // elFinder connector configuration
                    // https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options
                    'settings' => [
                        'roots' => [
                            [
                                'driver' => 'LocalFileSystem',
                                'path' => Yii::getPathOfAlias('webroot') . '/files/',
                                'URL' => Yii::app()->baseUrl . '/files/',
                                'alias' => 'Root Alias',
                                'acceptedName' => '/^[^\.].*$/', // disable creating dotfiles
                                'attributes' => [
                                    [
                                        'pattern' => '/\/[.].*$/', // hide dotfiles
                                        'read' => false,
                                        'write' => false,
                                        'hidden' => true,
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
                // action for TinyMCE popup with elFinder widget
                'elfinderTinyMce' => [
                    'class' => 'ext.elFinder.TinyMceElFinderPopupAction',
                    'connectorRoute' => 'connector', // main connector action id
                ],
                // action for file input popup with elFinder widget
                'elfinderFileInput' => [
                    'class' => 'ext.elFinder.ServerFileInputElFinderPopupAction',
                    'connectorRoute' => 'connector', // main connector action id
                ],
            ];
        }
    }
  3. ServerFileInput - use this widget to choose file on server using elFinder pop-up

    $this->widget('ext.elFinder.ServerFileInput', [
        'model' => $model,
        'attribute' => 'field_name',
        'popupConnectorRoute' => 'elfinder/elfinderFileInput', // relative route for file input action
        // ability to customize "Browse" button
    //	'customButton' => CHtml::button('Browse images', [
    //		'id' => CHtml::getIdByName(CHtml::activeName($model, 'field_name')) . 'browse',
    //		'class' => 'btn', 'style' => 'margin-left:10px',
    //	]),
        // title for popup window (optional)
        'popupTitle' => 'Files',
    ]);
  4. ElFinderWidget - use this widget to manage files

    $this->widget('ext.elFinder.ElFinderWidget', [
        'connectorRoute' => 'elfinder/connector', // relative route for elFinder connector action
    ]);
  5. TinyMceElFinder - use this widget to integrate elFinder with yii-tinymce

    $this->widget('ext.tinymce.TinyMce', [
        'model' => $model,
        'attribute' => 'content',
        'fileManager' => [
            'class' => 'ext.elFinder.TinyMceElFinder',
            'popupConnectorRoute' => 'elfinder/elfinderTinyMce', // relative route for TinyMCE popup action
            // title for popup window (optional)
            'popupTitle' => 'Files',
        ],
    ]);
You can’t perform that action at this time.