Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wp-file-.../lib/php
File: elFinderVolumeDriver.class.php
/**
[1000] Fix | Delete
* Assign elFinder session wrapper object
[1001] Fix | Delete
*
[1002] Fix | Delete
* @param $session elFinderSessionInterface
[1003] Fix | Delete
*/
[1004] Fix | Delete
public function setSession($session)
[1005] Fix | Delete
{
[1006] Fix | Delete
$this->session = $session;
[1007] Fix | Delete
}
[1008] Fix | Delete
[1009] Fix | Delete
/**
[1010] Fix | Delete
* Get elFinder sesson wrapper object
[1011] Fix | Delete
*
[1012] Fix | Delete
* @return object The session object
[1013] Fix | Delete
*/
[1014] Fix | Delete
public function getSession()
[1015] Fix | Delete
{
[1016] Fix | Delete
return $this->session;
[1017] Fix | Delete
}
[1018] Fix | Delete
[1019] Fix | Delete
/**
[1020] Fix | Delete
* Save session cache data
[1021] Fix | Delete
* Calls this function before umount this volume on elFinder::exec()
[1022] Fix | Delete
*
[1023] Fix | Delete
* @return void
[1024] Fix | Delete
*/
[1025] Fix | Delete
public function saveSessionCache()
[1026] Fix | Delete
{
[1027] Fix | Delete
$this->session->set($this->id, $this->sessionCache);
[1028] Fix | Delete
}
[1029] Fix | Delete
[1030] Fix | Delete
/**
[1031] Fix | Delete
* Return debug info for client
[1032] Fix | Delete
*
[1033] Fix | Delete
* @return array
[1034] Fix | Delete
* @author Dmitry (dio) Levashov
[1035] Fix | Delete
**/
[1036] Fix | Delete
public function debug()
[1037] Fix | Delete
{
[1038] Fix | Delete
return array(
[1039] Fix | Delete
'id' => $this->id(),
[1040] Fix | Delete
'name' => strtolower(substr(get_class($this), strlen('elfinderdriver'))),
[1041] Fix | Delete
'mimeDetect' => $this->mimeDetect,
[1042] Fix | Delete
'imgLib' => $this->imgLib
[1043] Fix | Delete
);
[1044] Fix | Delete
}
[1045] Fix | Delete
[1046] Fix | Delete
/**
[1047] Fix | Delete
* chmod a file or folder
[1048] Fix | Delete
*
[1049] Fix | Delete
* @param string $hash file or folder hash to chmod
[1050] Fix | Delete
* @param string $mode octal string representing new permissions
[1051] Fix | Delete
*
[1052] Fix | Delete
* @return array|false
[1053] Fix | Delete
* @author David Bartle
[1054] Fix | Delete
**/
[1055] Fix | Delete
public function chmod($hash, $mode)
[1056] Fix | Delete
{
[1057] Fix | Delete
if ($this->commandDisabled('chmod')) {
[1058] Fix | Delete
return $this->setError(elFinder::ERROR_PERM_DENIED);
[1059] Fix | Delete
}
[1060] Fix | Delete
[1061] Fix | Delete
if (!($file = $this->file($hash))) {
[1062] Fix | Delete
return $this->setError(elFinder::ERROR_FILE_NOT_FOUND);
[1063] Fix | Delete
}
[1064] Fix | Delete
[1065] Fix | Delete
if (!$this->options['allowChmodReadOnly']) {
[1066] Fix | Delete
if (!$this->attr($this->decode($hash), 'write', null, ($file['mime'] === 'directory'))) {
[1067] Fix | Delete
return $this->setError(elFinder::ERROR_PERM_DENIED, $file['name']);
[1068] Fix | Delete
}
[1069] Fix | Delete
}
[1070] Fix | Delete
[1071] Fix | Delete
$path = $this->decode($hash);
[1072] Fix | Delete
$write = $file['write'];
[1073] Fix | Delete
[1074] Fix | Delete
if ($this->convEncOut(!$this->_chmod($this->convEncIn($path), $mode))) {
[1075] Fix | Delete
return $this->setError(elFinder::ERROR_PERM_DENIED, $file['name']);
[1076] Fix | Delete
}
[1077] Fix | Delete
[1078] Fix | Delete
$this->clearstatcache();
[1079] Fix | Delete
if ($path == $this->root) {
[1080] Fix | Delete
$this->rootModified = true;
[1081] Fix | Delete
}
[1082] Fix | Delete
[1083] Fix | Delete
if ($file = $this->stat($path)) {
[1084] Fix | Delete
$files = array($file);
[1085] Fix | Delete
if ($file['mime'] === 'directory' && $write !== $file['write']) {
[1086] Fix | Delete
foreach ($this->getScandir($path) as $stat) {
[1087] Fix | Delete
if ($this->mimeAccepted($stat['mime'])) {
[1088] Fix | Delete
$files[] = $stat;
[1089] Fix | Delete
}
[1090] Fix | Delete
}
[1091] Fix | Delete
}
[1092] Fix | Delete
return $files;
[1093] Fix | Delete
} else {
[1094] Fix | Delete
return $this->setError(elFinder::ERROR_FILE_NOT_FOUND);
[1095] Fix | Delete
}
[1096] Fix | Delete
}
[1097] Fix | Delete
[1098] Fix | Delete
/**
[1099] Fix | Delete
* stat a file or folder for elFinder cmd exec
[1100] Fix | Delete
*
[1101] Fix | Delete
* @param string $hash file or folder hash to chmod
[1102] Fix | Delete
*
[1103] Fix | Delete
* @return array
[1104] Fix | Delete
* @author Naoki Sawada
[1105] Fix | Delete
**/
[1106] Fix | Delete
public function fstat($hash)
[1107] Fix | Delete
{
[1108] Fix | Delete
$path = $this->decode($hash);
[1109] Fix | Delete
return $this->stat($path);
[1110] Fix | Delete
}
[1111] Fix | Delete
[1112] Fix | Delete
/**
[1113] Fix | Delete
* Clear PHP stat cache & all of inner stat caches
[1114] Fix | Delete
*/
[1115] Fix | Delete
public function clearstatcache()
[1116] Fix | Delete
{
[1117] Fix | Delete
clearstatcache();
[1118] Fix | Delete
$this->clearcache();
[1119] Fix | Delete
}
[1120] Fix | Delete
[1121] Fix | Delete
/**
[1122] Fix | Delete
* Clear inner stat caches for target hash
[1123] Fix | Delete
*
[1124] Fix | Delete
* @param string $hash
[1125] Fix | Delete
*/
[1126] Fix | Delete
public function clearcaches($hash = null)
[1127] Fix | Delete
{
[1128] Fix | Delete
if ($hash === null) {
[1129] Fix | Delete
$this->clearcache();
[1130] Fix | Delete
} else {
[1131] Fix | Delete
$path = $this->decode($hash);
[1132] Fix | Delete
unset($this->cache[$path], $this->dirsCache[$path]);
[1133] Fix | Delete
}
[1134] Fix | Delete
}
[1135] Fix | Delete
[1136] Fix | Delete
/**
[1137] Fix | Delete
* "Mount" volume.
[1138] Fix | Delete
* Return true if volume available for read or write,
[1139] Fix | Delete
* false - otherwise
[1140] Fix | Delete
*
[1141] Fix | Delete
* @param array $opts
[1142] Fix | Delete
*
[1143] Fix | Delete
* @return bool
[1144] Fix | Delete
* @throws elFinderAbortException
[1145] Fix | Delete
* @author Dmitry (dio) Levashov
[1146] Fix | Delete
* @author Alexey Sukhotin
[1147] Fix | Delete
*/
[1148] Fix | Delete
public function mount(array $opts)
[1149] Fix | Delete
{
[1150] Fix | Delete
$this->options = array_merge($this->options, $opts);
[1151] Fix | Delete
[1152] Fix | Delete
if (!isset($this->options['path']) || $this->options['path'] === '') {
[1153] Fix | Delete
return $this->setError('Path undefined.');
[1154] Fix | Delete
}
[1155] Fix | Delete
[1156] Fix | Delete
if (!$this->session) {
[1157] Fix | Delete
return $this->setError('Session wrapper dose not set. Need to `$volume->setSession(elFinderSessionInterface);` before mount.');
[1158] Fix | Delete
}
[1159] Fix | Delete
if (!($this->session instanceof elFinderSessionInterface)) {
[1160] Fix | Delete
return $this->setError('Session wrapper instance must be "elFinderSessionInterface".');
[1161] Fix | Delete
}
[1162] Fix | Delete
[1163] Fix | Delete
// set driverId
[1164] Fix | Delete
if (!empty($this->options['driverId'])) {
[1165] Fix | Delete
$this->driverId = $this->options['driverId'];
[1166] Fix | Delete
}
[1167] Fix | Delete
[1168] Fix | Delete
$this->id = $this->driverId . (!empty($this->options['id']) ? $this->options['id'] : elFinder::$volumesCnt++) . '_';
[1169] Fix | Delete
$this->root = $this->normpathCE($this->options['path']);
[1170] Fix | Delete
$this->separator = isset($this->options['separator']) ? $this->options['separator'] : DIRECTORY_SEPARATOR;
[1171] Fix | Delete
if (!empty($this->options['winHashFix'])) {
[1172] Fix | Delete
$this->separatorForHash = ($this->separator !== '/') ? '/' : '';
[1173] Fix | Delete
}
[1174] Fix | Delete
$this->systemRoot = isset($this->options['systemRoot']) ? $this->options['systemRoot'] : $this->separator;
[1175] Fix | Delete
[1176] Fix | Delete
// set ARGS
[1177] Fix | Delete
$this->ARGS = $_SERVER['REQUEST_METHOD'] === 'POST' ? $_POST : $_GET;
[1178] Fix | Delete
[1179] Fix | Delete
$argInit = !empty($this->ARGS['init']);
[1180] Fix | Delete
[1181] Fix | Delete
// set $this->needOnline
[1182] Fix | Delete
if (!is_bool($this->needOnline)) {
[1183] Fix | Delete
$this->setNeedOnline();
[1184] Fix | Delete
}
[1185] Fix | Delete
[1186] Fix | Delete
// session cache
[1187] Fix | Delete
if ($argInit) {
[1188] Fix | Delete
$this->session->set($this->id, array());
[1189] Fix | Delete
}
[1190] Fix | Delete
$this->sessionCache = $this->session->get($this->id, array());
[1191] Fix | Delete
[1192] Fix | Delete
// default file attribute
[1193] Fix | Delete
$this->defaults = array(
[1194] Fix | Delete
'read' => isset($this->options['defaults']['read']) ? !!$this->options['defaults']['read'] : true,
[1195] Fix | Delete
'write' => isset($this->options['defaults']['write']) ? !!$this->options['defaults']['write'] : true,
[1196] Fix | Delete
'locked' => isset($this->options['defaults']['locked']) ? !!$this->options['defaults']['locked'] : false,
[1197] Fix | Delete
'hidden' => isset($this->options['defaults']['hidden']) ? !!$this->options['defaults']['hidden'] : false
[1198] Fix | Delete
);
[1199] Fix | Delete
[1200] Fix | Delete
// root attributes
[1201] Fix | Delete
$this->attributes[] = array(
[1202] Fix | Delete
'pattern' => '~^' . preg_quote($this->separator) . '$~',
[1203] Fix | Delete
'locked' => true,
[1204] Fix | Delete
'hidden' => false
[1205] Fix | Delete
);
[1206] Fix | Delete
// set files attributes
[1207] Fix | Delete
if (!empty($this->options['attributes']) && is_array($this->options['attributes'])) {
[1208] Fix | Delete
[1209] Fix | Delete
foreach ($this->options['attributes'] as $a) {
[1210] Fix | Delete
// attributes must contain pattern and at least one rule
[1211] Fix | Delete
if (!empty($a['pattern']) || (is_array($a) && count($a) > 1)) {
[1212] Fix | Delete
$this->attributes[] = $a;
[1213] Fix | Delete
}
[1214] Fix | Delete
}
[1215] Fix | Delete
}
[1216] Fix | Delete
[1217] Fix | Delete
if (!empty($this->options['accessControl']) && is_callable($this->options['accessControl'])) {
[1218] Fix | Delete
$this->access = $this->options['accessControl'];
[1219] Fix | Delete
}
[1220] Fix | Delete
[1221] Fix | Delete
$this->today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
[1222] Fix | Delete
$this->yesterday = $this->today - 86400;
[1223] Fix | Delete
[1224] Fix | Delete
if (!$this->init()) {
[1225] Fix | Delete
return false;
[1226] Fix | Delete
}
[1227] Fix | Delete
[1228] Fix | Delete
// set server encoding
[1229] Fix | Delete
if (!empty($this->options['encoding']) && strtoupper($this->options['encoding']) !== 'UTF-8') {
[1230] Fix | Delete
$this->encoding = $this->options['encoding'];
[1231] Fix | Delete
} else {
[1232] Fix | Delete
$this->encoding = null;
[1233] Fix | Delete
}
[1234] Fix | Delete
[1235] Fix | Delete
// check some options is arrays
[1236] Fix | Delete
$this->uploadAllow = isset($this->options['uploadAllow']) && is_array($this->options['uploadAllow'])
[1237] Fix | Delete
? $this->options['uploadAllow']
[1238] Fix | Delete
: array();
[1239] Fix | Delete
[1240] Fix | Delete
$this->uploadDeny = isset($this->options['uploadDeny']) && is_array($this->options['uploadDeny'])
[1241] Fix | Delete
? $this->options['uploadDeny']
[1242] Fix | Delete
: array();
[1243] Fix | Delete
[1244] Fix | Delete
$this->options['uiCmdMap'] = (isset($this->options['uiCmdMap']) && is_array($this->options['uiCmdMap']))
[1245] Fix | Delete
? $this->options['uiCmdMap']
[1246] Fix | Delete
: array();
[1247] Fix | Delete
[1248] Fix | Delete
if (is_string($this->options['uploadOrder'])) { // telephat_mode on, compatibility with 1.x
[1249] Fix | Delete
$parts = explode(',', isset($this->options['uploadOrder']) ? $this->options['uploadOrder'] : 'deny,allow');
[1250] Fix | Delete
$this->uploadOrder = array(trim($parts[0]), trim($parts[1]));
[1251] Fix | Delete
} else { // telephat_mode off
[1252] Fix | Delete
$this->uploadOrder = !empty($this->options['uploadOrder']) ? $this->options['uploadOrder'] : array('deny', 'allow');
[1253] Fix | Delete
}
[1254] Fix | Delete
[1255] Fix | Delete
if (!empty($this->options['uploadMaxSize'])) {
[1256] Fix | Delete
$this->uploadMaxSize = elFinder::getIniBytes('', $this->options['uploadMaxSize']);
[1257] Fix | Delete
}
[1258] Fix | Delete
// Set maximum to PHP_INT_MAX
[1259] Fix | Delete
if (!defined('PHP_INT_MAX')) {
[1260] Fix | Delete
define('PHP_INT_MAX', 2147483647);
[1261] Fix | Delete
}
[1262] Fix | Delete
if ($this->uploadMaxSize < 1 || $this->uploadMaxSize > PHP_INT_MAX) {
[1263] Fix | Delete
$this->uploadMaxSize = PHP_INT_MAX;
[1264] Fix | Delete
}
[1265] Fix | Delete
[1266] Fix | Delete
// Set to get maximum size to 50% of memory_limit
[1267] Fix | Delete
$memLimit = elFinder::getIniBytes('memory_limit') / 2;
[1268] Fix | Delete
if ($memLimit > 0) {
[1269] Fix | Delete
$this->getMaxSize = empty($this->options['getMaxSize']) ? $memLimit : min($memLimit, elFinder::getIniBytes('', $this->options['getMaxSize']));
[1270] Fix | Delete
} else {
[1271] Fix | Delete
$this->getMaxSize = -1;
[1272] Fix | Delete
}
[1273] Fix | Delete
[1274] Fix | Delete
$this->disabled = isset($this->options['disabled']) && is_array($this->options['disabled'])
[1275] Fix | Delete
? array_values(array_diff($this->options['disabled'], array('open'))) // 'open' is required
[1276] Fix | Delete
: array();
[1277] Fix | Delete
[1278] Fix | Delete
$this->cryptLib = $this->options['cryptLib'];
[1279] Fix | Delete
$this->mimeDetect = $this->options['mimeDetect'];
[1280] Fix | Delete
[1281] Fix | Delete
// find available mimetype detect method
[1282] Fix | Delete
$regexp = '/text\/x\-(php|c\+\+)/';
[1283] Fix | Delete
$auto_types = array();
[1284] Fix | Delete
[1285] Fix | Delete
if (class_exists('finfo', false)) {
[1286] Fix | Delete
$tmpFileInfo = explode(';', finfo_file(finfo_open(FILEINFO_MIME), __FILE__));
[1287] Fix | Delete
if ($tmpFileInfo && preg_match($regexp, array_shift($tmpFileInfo))) {
[1288] Fix | Delete
$auto_types[] = 'finfo';
[1289] Fix | Delete
}
[1290] Fix | Delete
}
[1291] Fix | Delete
[1292] Fix | Delete
if (function_exists('mime_content_type')) {
[1293] Fix | Delete
$_mimetypes = explode(';', mime_content_type(__FILE__));
[1294] Fix | Delete
if (preg_match($regexp, array_shift($_mimetypes))) {
[1295] Fix | Delete
$auto_types[] = 'mime_content_type';
[1296] Fix | Delete
}
[1297] Fix | Delete
}
[1298] Fix | Delete
[1299] Fix | Delete
$auto_types[] = 'internal';
[1300] Fix | Delete
[1301] Fix | Delete
$type = strtolower($this->options['mimeDetect']);
[1302] Fix | Delete
if (!in_array($type, $auto_types)) {
[1303] Fix | Delete
$type = 'auto';
[1304] Fix | Delete
}
[1305] Fix | Delete
[1306] Fix | Delete
if ($type == 'auto') {
[1307] Fix | Delete
$type = array_shift($auto_types);
[1308] Fix | Delete
}
[1309] Fix | Delete
[1310] Fix | Delete
$this->mimeDetect = $type;
[1311] Fix | Delete
[1312] Fix | Delete
if ($this->mimeDetect == 'finfo') {
[1313] Fix | Delete
$this->finfo = finfo_open(FILEINFO_MIME);
[1314] Fix | Delete
} else if ($this->mimeDetect == 'internal' && !elFinderVolumeDriver::$mimetypesLoaded) {
[1315] Fix | Delete
// load mimes from external file for mimeDetect == 'internal'
[1316] Fix | Delete
// based on Alexey Sukhotin idea and patch: http://elrte.org/redmine/issues/163
[1317] Fix | Delete
// file must be in file directory or in parent one
[1318] Fix | Delete
elFinderVolumeDriver::loadMimeTypes(!empty($this->options['mimefile']) ? $this->options['mimefile'] : '');
[1319] Fix | Delete
}
[1320] Fix | Delete
$this->rootName = empty($this->options['alias']) ? $this->basenameCE($this->root) : $this->options['alias'];
[1321] Fix | Delete
[1322] Fix | Delete
// This get's triggered if $this->root == '/' and alias is empty.
[1323] Fix | Delete
// Maybe modify _basename instead?
[1324] Fix | Delete
if ($this->rootName === '') $this->rootName = $this->separator;
[1325] Fix | Delete
[1326] Fix | Delete
$this->_checkArchivers();
[1327] Fix | Delete
[1328] Fix | Delete
$root = $this->stat($this->root);
[1329] Fix | Delete
[1330] Fix | Delete
if (!$root) {
[1331] Fix | Delete
return $this->setError('Root folder does not exist.');
[1332] Fix | Delete
}
[1333] Fix | Delete
if (!$root['read'] && !$root['write']) {
[1334] Fix | Delete
return $this->setError('Root folder has not read and write permissions.');
[1335] Fix | Delete
}
[1336] Fix | Delete
[1337] Fix | Delete
if ($root['read']) {
[1338] Fix | Delete
if ($argInit) {
[1339] Fix | Delete
// check startPath - path to open by default instead of root
[1340] Fix | Delete
$startPath = $this->options['startPath'] ? $this->normpathCE($this->options['startPath']) : '';
[1341] Fix | Delete
if ($startPath) {
[1342] Fix | Delete
$start = $this->stat($startPath);
[1343] Fix | Delete
if (!empty($start)
[1344] Fix | Delete
&& $start['mime'] == 'directory'
[1345] Fix | Delete
&& $start['read']
[1346] Fix | Delete
&& empty($start['hidden'])
[1347] Fix | Delete
&& $this->inpathCE($startPath, $this->root)) {
[1348] Fix | Delete
$this->startPath = $startPath;
[1349] Fix | Delete
if (substr($this->startPath, -1, 1) == $this->options['separator']) {
[1350] Fix | Delete
$this->startPath = substr($this->startPath, 0, -1);
[1351] Fix | Delete
}
[1352] Fix | Delete
}
[1353] Fix | Delete
}
[1354] Fix | Delete
}
[1355] Fix | Delete
} else {
[1356] Fix | Delete
$this->options['URL'] = '';
[1357] Fix | Delete
$this->options['tmbURL'] = '';
[1358] Fix | Delete
$this->options['tmbPath'] = '';
[1359] Fix | Delete
// read only volume
[1360] Fix | Delete
array_unshift($this->attributes, array(
[1361] Fix | Delete
'pattern' => '/.*/',
[1362] Fix | Delete
'read' => false
[1363] Fix | Delete
));
[1364] Fix | Delete
}
[1365] Fix | Delete
$this->treeDeep = $this->options['treeDeep'] > 0 ? (int)$this->options['treeDeep'] : 1;
[1366] Fix | Delete
$this->tmbSize = $this->options['tmbSize'] > 0 ? (int)$this->options['tmbSize'] : 48;
[1367] Fix | Delete
$this->URL = $this->options['URL'];
[1368] Fix | Delete
if ($this->URL && preg_match("|[^/?&=]$|", $this->URL)) {
[1369] Fix | Delete
$this->URL .= '/';
[1370] Fix | Delete
}
[1371] Fix | Delete
[1372] Fix | Delete
$dirUrlOwn = strtolower($this->options['dirUrlOwn']);
[1373] Fix | Delete
if ($dirUrlOwn === 'auto') {
[1374] Fix | Delete
$this->options['dirUrlOwn'] = $this->URL ? false : true;
[1375] Fix | Delete
} else if ($dirUrlOwn === 'hide') {
[1376] Fix | Delete
$this->options['dirUrlOwn'] = 'hide';
[1377] Fix | Delete
} else {
[1378] Fix | Delete
$this->options['dirUrlOwn'] = (bool)$this->options['dirUrlOwn'];
[1379] Fix | Delete
}
[1380] Fix | Delete
[1381] Fix | Delete
$this->tmbURL = !empty($this->options['tmbURL']) ? $this->options['tmbURL'] : '';
[1382] Fix | Delete
if ($this->tmbURL && $this->tmbURL !== 'self' && preg_match("|[^/?&=]$|", $this->tmbURL)) {
[1383] Fix | Delete
$this->tmbURL .= '/';
[1384] Fix | Delete
}
[1385] Fix | Delete
[1386] Fix | Delete
$this->nameValidator = !empty($this->options['acceptedName']) && (is_string($this->options['acceptedName']) || is_callable($this->options['acceptedName']))
[1387] Fix | Delete
? $this->options['acceptedName']
[1388] Fix | Delete
: '';
[1389] Fix | Delete
[1390] Fix | Delete
$this->dirnameValidator = !empty($this->options['acceptedDirname']) && (is_callable($this->options['acceptedDirname']) || (is_string($this->options['acceptedDirname']) && preg_match($this->options['acceptedDirname'], '') !== false))
[1391] Fix | Delete
? $this->options['acceptedDirname']
[1392] Fix | Delete
: $this->nameValidator;
[1393] Fix | Delete
[1394] Fix | Delete
// enabling archivers['create'] with options['useRemoteArchive']
[1395] Fix | Delete
if ($this->options['useRemoteArchive'] && empty($this->archivers['create']) && $this->getTempPath()) {
[1396] Fix | Delete
$_archivers = $this->getArchivers();
[1397] Fix | Delete
$this->archivers['create'] = $_archivers['create'];
[1398] Fix | Delete
}
[1399] Fix | Delete
[1400] Fix | Delete
// manual control archive types to create
[1401] Fix | Delete
if (!empty($this->options['archiveMimes']) && is_array($this->options['archiveMimes'])) {
[1402] Fix | Delete
foreach ($this->archivers['create'] as $mime => $v) {
[1403] Fix | Delete
if (!in_array($mime, $this->options['archiveMimes'])) {
[1404] Fix | Delete
unset($this->archivers['create'][$mime]);
[1405] Fix | Delete
}
[1406] Fix | Delete
}
[1407] Fix | Delete
}
[1408] Fix | Delete
[1409] Fix | Delete
// manualy add archivers
[1410] Fix | Delete
if (!empty($this->options['archivers']['create']) && is_array($this->options['archivers']['create'])) {
[1411] Fix | Delete
foreach ($this->options['archivers']['create'] as $mime => $conf) {
[1412] Fix | Delete
if (strpos($mime, 'application/') === 0
[1413] Fix | Delete
&& !empty($conf['cmd'])
[1414] Fix | Delete
&& isset($conf['argc'])
[1415] Fix | Delete
&& !empty($conf['ext'])
[1416] Fix | Delete
&& !isset($this->archivers['create'][$mime])) {
[1417] Fix | Delete
$this->archivers['create'][$mime] = $conf;
[1418] Fix | Delete
}
[1419] Fix | Delete
}
[1420] Fix | Delete
}
[1421] Fix | Delete
[1422] Fix | Delete
if (!empty($this->options['archivers']['extract']) && is_array($this->options['archivers']['extract'])) {
[1423] Fix | Delete
foreach ($this->options['archivers']['extract'] as $mime => $conf) {
[1424] Fix | Delete
if (strpos($mime, 'application/') === 0
[1425] Fix | Delete
&& !empty($conf['cmd'])
[1426] Fix | Delete
&& isset($conf['argc'])
[1427] Fix | Delete
&& !empty($conf['ext'])
[1428] Fix | Delete
&& !isset($this->archivers['extract'][$mime])) {
[1429] Fix | Delete
$this->archivers['extract'][$mime] = $conf;
[1430] Fix | Delete
}
[1431] Fix | Delete
}
[1432] Fix | Delete
}
[1433] Fix | Delete
[1434] Fix | Delete
if (!empty($this->options['noSessionCache']) && is_array($this->options['noSessionCache'])) {
[1435] Fix | Delete
foreach ($this->options['noSessionCache'] as $_key) {
[1436] Fix | Delete
$this->sessionCaching[$_key] = false;
[1437] Fix | Delete
unset($this->sessionCache[$_key]);
[1438] Fix | Delete
}
[1439] Fix | Delete
}
[1440] Fix | Delete
if ($this->sessionCaching['subdirs']) {
[1441] Fix | Delete
if (!isset($this->sessionCache['subdirs'])) {
[1442] Fix | Delete
$this->sessionCache['subdirs'] = array();
[1443] Fix | Delete
}
[1444] Fix | Delete
}
[1445] Fix | Delete
[1446] Fix | Delete
[1447] Fix | Delete
$this->configure();
[1448] Fix | Delete
[1449] Fix | Delete
// Normalize disabled (array_merge`for type array of JSON)
[1450] Fix | Delete
$this->disabled = array_values(array_unique($this->disabled));
[1451] Fix | Delete
[1452] Fix | Delete
// fix sync interval
[1453] Fix | Delete
if ($this->options['syncMinMs'] !== 0) {
[1454] Fix | Delete
$this->options['syncMinMs'] = max($this->options[$this->options['syncChkAsTs'] ? 'tsPlSleep' : 'lsPlSleep'] * 1000, intval($this->options['syncMinMs']));
[1455] Fix | Delete
}
[1456] Fix | Delete
[1457] Fix | Delete
// ` copyJoin` is required for the trash function
[1458] Fix | Delete
if ($this->options['trashHash'] && empty($this->options['copyJoin'])) {
[1459] Fix | Delete
$this->options['trashHash'] = '';
[1460] Fix | Delete
}
[1461] Fix | Delete
[1462] Fix | Delete
// set tmpLinkPath
[1463] Fix | Delete
if (elFinder::$tmpLinkPath && !$this->options['tmpLinkPath']) {
[1464] Fix | Delete
if (is_writeable(elFinder::$tmpLinkPath)) {
[1465] Fix | Delete
$this->options['tmpLinkPath'] = elFinder::$tmpLinkPath;
[1466] Fix | Delete
} else {
[1467] Fix | Delete
elFinder::$tmpLinkPath = '';
[1468] Fix | Delete
}
[1469] Fix | Delete
}
[1470] Fix | Delete
if ($this->options['tmpLinkPath'] && is_writable($this->options['tmpLinkPath'])) {
[1471] Fix | Delete
$this->tmpLinkPath = realpath($this->options['tmpLinkPath']);
[1472] Fix | Delete
} else if (!$this->tmpLinkPath && $this->tmbURL && $this->tmbPath) {
[1473] Fix | Delete
$this->tmpLinkPath = $this->tmbPath;
[1474] Fix | Delete
$this->options['tmpLinkUrl'] = $this->tmbURL;
[1475] Fix | Delete
} else if (!$this->options['URL'] && is_writable('../files/.tmb')) {
[1476] Fix | Delete
$this->tmpLinkPath = realpath('../files/.tmb');
[1477] Fix | Delete
$this->options['tmpLinkUrl'] = '';
[1478] Fix | Delete
if (!elFinder::$tmpLinkPath) {
[1479] Fix | Delete
elFinder::$tmpLinkPath = $this->tmpLinkPath;
[1480] Fix | Delete
elFinder::$tmpLinkUrl = '';
[1481] Fix | Delete
}
[1482] Fix | Delete
}
[1483] Fix | Delete
[1484] Fix | Delete
// set tmpLinkUrl
[1485] Fix | Delete
if (elFinder::$tmpLinkUrl && !$this->options['tmpLinkUrl']) {
[1486] Fix | Delete
$this->options['tmpLinkUrl'] = elFinder::$tmpLinkUrl;
[1487] Fix | Delete
}
[1488] Fix | Delete
if ($this->options['tmpLinkUrl']) {
[1489] Fix | Delete
$this->tmpLinkUrl = $this->options['tmpLinkUrl'];
[1490] Fix | Delete
}
[1491] Fix | Delete
if ($this->tmpLinkPath && !$this->tmpLinkUrl) {
[1492] Fix | Delete
$cur = realpath('./');
[1493] Fix | Delete
$i = 0;
[1494] Fix | Delete
while ($cur !== $this->systemRoot && strpos($this->tmpLinkPath, $cur) !== 0) {
[1495] Fix | Delete
$i++;
[1496] Fix | Delete
$cur = dirname($cur);
[1497] Fix | Delete
}
[1498] Fix | Delete
list($req) = explode('?', $_SERVER['REQUEST_URI']);
[1499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function