forked from Studio-42/elFinder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
elFinderVolumeTrash.class.php
51 lines (46 loc) · 1.55 KB
/
elFinderVolumeTrash.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
/**
* elFinder driver for trash bin at local filesystem.
*
* @author NaokiSawada
**/
class elFinderVolumeTrash extends elFinderVolumeLocalFileSystem
{
/**
* Driver id
* Must be started from letter and contains [a-z0-9]
* Used as part of volume id.
*
* @var string
**/
protected $driverId = 't';
public function __construct()
{
parent::__construct();
// original option of the Trash
$this->options['lockEverything'] = false; // Lock all items in the trash to disable delete, move, rename.
// common options as the volume driver
$this->options['alias'] = 'Trash';
$this->options['quarantine'] = '';
$this->options['rootCssClass'] = 'elfinder-navbar-root-trash';
$this->options['copyOverwrite'] = false;
$this->options['uiCmdMap'] = array('paste' => 'hidden', 'mkdir' => 'hidden', 'copy' => 'restore');
$this->options['disabled'] = array('archive', 'duplicate', 'edit', 'extract', 'mkfile', 'places', 'put', 'rename', 'resize', 'upload');
}
public function mount(array $opts)
{
if ($this->options['lockEverything']) {
if (!is_array($opts['attributes'])) {
$opts['attributes'] = array();
}
$attr = array(
'pattern' => '/./',
'locked' => true,
);
array_unshift($opts['attributes'], $attr);
}
// force set `copyJoin` to true
$opts['copyJoin'] = true;
return parent::mount($opts);
}
}