Elfinder/Codeigntier在视图中使用startPath



我刚刚集成了ELFinder,它运行得很好。我正在使用codeigniter实现,这就是我获得下面大部分内容的方式。我的问题是,我计划在不同的视图中使用它,那么在加载视图时,我如何选择Elfinder打开的文件夹?我在startPath上阅读,但可能没有正确使用它。例如,在一个视图中,我可能需要它来打开"Stuff"文件夹,在另一个视图中将需要它来开启"Something"文件夹。

正如教程所指出的,这是我在Files控制器中的方法(controllers/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);
    }

然后假设我用创建了一个"Stuff"视图(views/Stuff.php)

<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>

我也试过url : '<?php echo site_url("Files/elfinder_init"); ?>/stuff',但没有运气

这是我的库文件(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();
  }
}

我需要编辑Files.php控制器文件来检查$_GET请求,如下所示。

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);
    }

然后,当我们像这样加载elfinder时,我可以在我的视图文件中使用customData选项:

<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>

自定义数据引用&子文件夹的外部链接

相关内容

  • 没有找到相关文章

最新更新