显示空文件夹的不同图标

时间:2016-09-08 11:04:10

标签: elfinder

有一种方法可以为空文件夹显示不同的图标吗?

实际上,当插入或移动操作后文件夹变为非空时,我可以使用后端代码添加favicon.ico文件,并在移动或删除操作后文件夹变空时删除它们

但这听起来是一个复杂的过程。

1 个答案:

答案 0 :(得分:1)

  

https://github.com/Studio-42/elFinder/issues/1643

连接器主选项bind可以实现这一点。

e.g。 - 将CSS类名elfinder-dir-empty添加到LocalFileSystem卷的空文件夹中。

function setEmptyFolderCssName($cmd, &$result, $args, $elfinder, $volume) {
    if ($volume && $volume instanceof elFinderVolumeLocalFileSystem && $result) {
        $key = '';
        if (! empty($result['files'])) {
            $key = 'files';
        } else if (! empty($result['tree'])) {
            $key = 'tree';
        } else if (! empty($result['added'])) {
            $key = 'added';
        }
        if ($key) {
            foreach($result[$key] as $i => $file) {
                if (isset($file['mime']) && $file['mime'] === 'directory') {
                    $path = $volume->getPath($file['hash']);
                    if (($items = scandir($path)) && count($items) === 2) {
                        $result[$key][$i]['csscls'] = 'elfinder-dir-empty';
                    }
                }
            }
        }
    }
}
$opts = array(
    'lbind' => array( 'open tree parent mkdir' => array( 'setEmptyFolderCssName' ) ),
    'roots'  => array(
        array(
            'driver' => 'LocalFileSystem',
            'path'   => '/path/to/files/',
            'URL'    => 'http://localhost/to/files/'
        )
    )
);

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