rob006/yii-elfinder2

Extension to use elFinder 2.x file manager in yii application

Installs: 15

Dependents: 0

Watchers: 1

Forks: 5

Open Issues: 1

Language: JavaScript

1.0.1 2014-04-16 09:00 UTC

README

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
  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",
        ),
    ));