在 Ckfinder 3 中打开特定文件夹

问题描述 投票:0回答:1

我在将 var 传递给 Ckfinder 以便它打开与当前编辑页面匹配的文件夹时遇到困难。

想要的文件夹与我的数据库字段“画廊”同名,我可以通过这种方式传入 url :

$url_edit = 'modifier-' . $_GET['page'] . '-' . $data["id"] . '-' . $data['gallery'] . '';
// RewriteRule ^modifier-(.*)-([0-9]+)-(.*)$ admin.php?modif=$1&id=$2&dir=$3 [L]

我认为 Ckfinder 的 config.php 的这一部分可能是传递我的 var

$_GET['dir']
并指向特定文件夹(默认:“照片”)的最佳位置:

if(isset($_GET['dir'])) {
    die(var_dump('DEBUG')); // DEBUG
    $galleryDir = '/' . $_GET['dir'];
}

$config['resourceTypes'][] = array(
    'name'              => 'Photos',
    'directory'         => 'photos' . $galleryDir . '' ,
    'maxSize'           => 0,
    'allowedExtensions' => 'bmp,gif,jpeg,jpg,png',
    'deniedExtensions'  => '',
    'backend'           => 'default'
);

我使用官方文档中的代码将 Ckfinder 作为模式打开(我没有更改它,因为我不习惯 Javascript):

var button1 = document.getElementById( 'ckfinder-galerie' );

button1.onclick = function() {
    selectFileWithCKFinder( 'ckfinder-input-1' );
};

function selectFileWithCKFinder( elementId ) {
    CKFinder.modal( {
        chooseFiles: true,
        width: 800,
        height: 600,
        onInit: function( finder ) {
            finder.on( 'files:choose', function( evt ) {
                var file = evt.data.files.first();
                var output = document.getElementById( elementId );
                output.value = file.getUrl();
            } );

            finder.on( 'file:choose:resizedImage', function( evt ) {
                var output = document.getElementById( elementId );
                output.value = evt.data.resizedUrl;
            } );
        }
    } );
}

问题:

$_GET['dir']
似乎没有通过模态传递,因此它当前不会创建所需的
$galleryDir
变量(也没有用于调试的
die()
函数)。我在这里做错了什么吗?如果这个方法不如我想象的那么好,我也愿意接受其他方法。

感谢您以后的帮助!

php ckfinder
1个回答
0
投票

感谢 CBroe 的指导,我找到了传递变量的方法。不是 100% 有效,但足以满足我的需求:

在加载 Ckfinder 之前在会话中传递 var :

if(isset($_GET['dir'])) { $_SESSION['dir'] = $_GET['dir']; }
然后在 Ckfinder 的 config.php 中检索它以动态创建新的目录变量:

if(isset($_SESSION['dir'])) { $galleryDir = '/' . $_SESSION['dir']; } $config['resourceTypes'][] = array( 'name' => 'Photos', 'directory' => 'photos' . $galleryDir . '' , 'maxSize' => 0, 'allowedExtensions' => 'bmp,gif,jpeg,jpg,png', 'deniedExtensions' => '', 'backend' => 'default' );
它工作得很好:模式专注于与编辑页面匹配的所需文件夹。传递特定的目录 url 不允许浏览文件夹,尽管“目录”var 将自己视为根文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.