Skip to content
elFinder 2.x Yii extension
PHP
Pull request Compare This branch is 32 commits ahead, 4 commits behind zxbodya:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
vendor
views
.gitignore
ElFinderConnectorAction.php
ElFinderHelper.php
ElFinderWidget.php
LICENSE
README.md
ServerFileInput.php
ServerFileInputElFinderPopupAction.php
TinyMceElFinder.php
TinyMceElFinderPopupAction.php
composer.json

README.md

elFinder 2.0 Yii extension

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' => array(
        '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 array(
                // main action for elFinder connector
                'connector' => array(
                    'class' => 'ext.elFinder.ElFinderConnectorAction',
                    // elFinder connector configuration
                    // https://github.com/Studio-42/elFinder/wiki/Connector-configuration-options
                    'settings' => array(
                        'roots' => array(
                            array(
                                'driver' => 'LocalFileSystem',
                                'path' => Yii::getPathOfAlias('webroot') . '/files/',
                                'URL' => Yii::app()->baseUrl . '/files/',
                                'alias' => 'Root Alias',
                                'acceptedName' => '/^[^\.].*$/', // disable creating dotfiles
                                'attributes' => array(
                                    array(
                                        'pattern' => '/\/[.].*$/', // hide dotfiles
                                        'read' => false,
                                        'write' => false,
                                        'hidden' => true,
                                    ),
                                ),
                            )
                        ),
                    )
                ),
                // action for TinyMCE popup with elFinder widget
                'elfinderTinyMce' => array(
                    'class' => 'ext.elFinder.TinyMceElFinderPopupAction',
                    'connectorRoute' => 'connector', // main connector action id
                ),
                // action for file input popup with elFinder widget
                'elfinderFileInput' => array(
                    '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', array(
        'model' => $model,
        'attribute' => 'field_name',
        'popupConnectorRoute' => 'elfinder/elfinderFileInput', // relative route for file input action
        // ability to customize "Browse" button
    //  'customButton' => TbHtml::button('Browse images', array(
    //      'id' => TbHtml::getIdByName(TbHtml::activeName($model, 'field_name')) . 'browse',
    //      'class' => 'btn', 'color' => TbHtml::BUTTON_COLOR_DEFAULT,
    //      'size' => TbHtml::BUTTON_SIZE_DEFAULT, 'style' => 'margin-left:10px;')),
        // title for popup window (optional)
        'popupTitle' => 'Files',
    ));
  4. ElFinderWidget - use this widget to manage files

    $this->widget('ext.elFinder.ElFinderWidget', array(
        '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', array(
        'model' => $model,
        'attribute' => 'content',
        'fileManager' => array(
            'class' => 'ext.elFinder.TinyMceElFinder',
            'popupConnectorRoute' => 'elfinder/elfinderTinyMce', // relative route for TinyMCE popup action
            // title for popup window (optional)
            'popupTitle' => "Files",
        ),
    ));
Something went wrong with that request. Please try again.