2016-05-01 4 views
0

Ich habe gerade ELFinder integriert und es funktioniert super. Ich benutze the codeigniter implementation, womit ich das meiste von dem bekommen habe, was ich unten habe. Meine Frage ist, dass ich dies in verschiedenen Ansichten verwenden möchte, also wie kann ich den Ordner wählen, den Elfinder öffnet, wenn er die Ansicht lädt? Ich habe gelesen auf startPath, aber ich verwende es möglicherweise nicht richtig. In einer Ansicht kann es zum Beispiel notwendig sein, um den "Stuff" -Ordner zu öffnen, in einer anderen Ansicht kann ich es brauchen, um den "Something" -Ordner zu öffnen.Elfinder/Codeigntier benutze startPath in Sicht

Dies ist die Methode, die ich in meinen Dateien Controller habe wie das Tutorial weist darauf hin (Controller/Files.php):

function elfinder_init($startPath = '') 
    { 
     $this->load->helper('path'); 
     $opts = array(
     'debug' => true, 
     'roots' => array(
      array( 
      'driver' => 'LocalFileSystem', 
      'path' => set_realpath('assets/uploads'), 
      'startPath' => $startPath, 
      'URL' => site_url('assets/uploads') . '/' 
      // more elFinder options here 
     ) 
     ) 
    ); 
     $this->load->library('elfinder_lib', $opts); 
    } 

Und dann sagen sie mir eine "Stuff" -Ansicht (views/Sachen erstellen. php) mit:

<script type="text/javascript" charset="utf-8"> 
jQuery(document).ready(function($) { 
    var elf = $('#elfinder').elfinder({ 
     // lang: 'ru',    // language (OPTIONAL) 
     sync: 1000, 
     defaultView: 'list', 
     customData: {'startPath': 'stuff'}, 
     url : '<?php echo site_url("Files/elfinder_init"); ?>', // connector URL (REQUIRED) 

    }).elfinder('instance');    
}); 
</script> 

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

ich habe auch versucht url : '<?php echo site_url("Files/elfinder_init"); ?>/stuff' aber kein Glück

Hier ist meine Bibliotheksdatei (Elfinder_lib.php):

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elfinder/elFinderConnector.class.php'; 
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elfinder/elFinder.class.php'; 
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elfinder/elFinderVolumeDriver.class.php'; 
include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elfinder/elFinderVolumeLocalFileSystem.class.php'; 

class Elfinder_lib 
{ 
    public function __construct($opts) 
    { 
    $connector = new elFinderConnector(new elFinder($opts)); 
    $connector->run(); 
    } 
} 
+0

'Files' ist Name Klasse oder einen Ordner? –

+0

@HendraNucleo Ja, es ist der Name der Datei und Klasse. – Derek

+0

Nicht unter dem Unterordner? –

Antwort

0

Ich musste meine Files.php-Controller-Datei bearbeiten, um nach der $ _GET-Anfrage zu suchen, wie unten gezeigt.

function elfinder_init() 
    { 
     $this->load->helper('path'); 

     $filePath = 'assets/uploads'; 
     $startPath = $filePath; 
     if(isset($_GET['startPath']) && !empty($_GET['startPath'])) { 
      $startPath .= '/'.$_GET['startPath']; 
     } 

     $opts = array(
     'debug' => true, 
     'roots' => array(
      array( 
      'driver' => 'LocalFileSystem', 
      'path' => set_realpath($filePath), 
      'URL' => site_url('assets/uploads') . '/', 
      'startPath' => $startPath 
      // more elFinder options here 
     ) 
     ) 
     ); 
     $this->load->library('elfinder_lib', $opts); 
    } 

Dann konnte ich die Option custom meiner Ansicht Datei verwenden, wenn wir so geladen elfinder:

<script type="text/javascript" charset="utf-8"> 
jQuery(document).ready(function($) { 
    var elf = $('#elfinder').elfinder({ 
     // lang: 'ru',    // language (OPTIONAL) 
     sync: 1000, 
     defaultView: 'list', 
     customData: {'startPath': 'something'}, 
     rememberLastDir: false, 
     url : '<?php echo site_url("Files/elfinder_init"); ?>', // connector URL (REQUIRED) 
    }).elfinder('instance');    
}); 
</script> 

Custom Data Reference & External Links to Subfolders

+0

Wie geht es dann? –

+0

Alles funktioniert :) Vielen Dank für Ihre Hilfe – Derek

+0

Toll, viel Glück dann. –