ccc

CKEditor: elfinder

a) Descargar ckeditor
b) Descargar elfinder
modificar js/elfinder/elfinder.html:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>elFinder 2.0</title>

        <!-- jQuery and jQuery UI (REQUIRED) -->
        <link rel="stylesheet" type="text/css" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>

        <!-- elFinder CSS (REQUIRED) -->
        <link rel="stylesheet" type="text/css" href="css/elfinder.min.css">
        <link rel="stylesheet" type="text/css" href="css/theme.css">

        <!-- elFinder JS (REQUIRED) -->
        <script src="js/elfinder.min.js"></script>

        <!-- elFinder translation (OPTIONAL) -->
        <script src="js/i18n/elfinder.es.js"></script>

        <!-- elFinder initialization (REQUIRED) -->
        <script type="text/javascript" charset="utf-8">
            function getUrlParam(paramName) {
                var reParam = new RegExp('(?:[\?&]|&amp;)' + paramName + '=([^&]+)', 'i') ;
                var match = window.location.search.match(reParam) ;
               
                return (match && match.length > 1) ? match[1] : '' ;
            }
               
            $().ready(function() {
                var funcNum = getUrlParam('CKEditorFuncNum');
                var mode = getUrlParam('mode');

                var elf = $('#elfinder').elfinder({
                    url : 'php/connector.php?mode=' + mode,  // connector URL (REQUIRED)
                    getFileCallback : function(file) {
                        // window.opener.CKEDITOR.tools.callFunction(funcNum, file);
                        window.opener.CKEDITOR.tools.callFunction(funcNum, "js/elfinder/files/"+file.name);
                        window.close();
                    },
                    resizable: false
                }).elfinder('instance');
            });
           
           
        </script>
    </head>
    <body>

        <!-- Element where elFinder will be created (REQUIRED) -->
        <div id="elfinder"></div>

    </body>
</html>


Modificar js/elfinder/php/connector.php:
<?php

error_reporting(0); // Set E_ALL for debuging

include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderConnector.class.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinder.class.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeDriver.class.php';
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeLocalFileSystem.class.php';
// Required for MySQL storage connector
// include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeMySQL.class.php';
// Required for FTP connector support
// include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeFTP.class.php';


/**
 * Simple function to demonstrate how to control file access using "accessControl" callback.
 * This method will disable accessing files/folders starting from  '.' (dot)
 *
 * @param  string  $attr  attribute name (read|write|locked|hidden)
 * @param  string  $path  file path relative to volume root directory started with directory separator
 * @return bool|null
 **/
function access($attr, $path, $data, $volume) {
    return strpos(basename($path), '.') === 0       // if file/folder begins with '.' (dot)
        ? !($attr == 'read' || $attr == 'write')    // set read+write to false, other (locked+hidden) set to true
        :  null;                                    // else elFinder decide it itself
}

$opts = array(
    // 'debug' => true,
    'roots' => array(
            array(
                'driver'        => 'LocalFileSystem',   // driver for accessing file system (REQUIRED)
                'path'          => '../files/',         // path to files (REQUIRED)
                'URL'           => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED)
                'accessControl' => 'access',           // disable and hide dot starting files (OPTIONAL)
                'attributes' => array(
                    array(
                        // 'pattern' => '/GALERIAS/',
                        'read'    => true,
                        'write'   => false,
                        'locked'  => true
                    )
                )
            )
    )
);

$connector = new elFinderConnector(new elFinder($opts));
$connector->run();

El fichero que queremos usarlo (ej: mod_noticia.php):
CKEDITOR.replace( 'texto', {
        filebrowserBrowseUrl : 'js/elfinder/elfinder.html', // eg. 'includes/elFinder/elfinder.html'
        uiColor : '#9AB8F3'
    });

No hay comentarios:

Publicar un comentario