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: elFinder.class.php
}
[4000] Fix | Delete
}
[4001] Fix | Delete
[4002] Fix | Delete
$result = array('files' => $result);
[4003] Fix | Delete
if ($errors) {
[4004] Fix | Delete
$result['warning'] = $errors;
[4005] Fix | Delete
}
[4006] Fix | Delete
return $result;
[4007] Fix | Delete
}
[4008] Fix | Delete
[4009] Fix | Delete
/**
[4010] Fix | Delete
* Return file info (used by client "places" ui)
[4011] Fix | Delete
*
[4012] Fix | Delete
* @param array $args command arguments
[4013] Fix | Delete
*
[4014] Fix | Delete
* @return array
[4015] Fix | Delete
* @throws elFinderAbortException
[4016] Fix | Delete
* @author Dmitry Levashov
[4017] Fix | Delete
*/
[4018] Fix | Delete
protected function info($args)
[4019] Fix | Delete
{
[4020] Fix | Delete
$files = array();
[4021] Fix | Delete
$compare = null;
[4022] Fix | Delete
// long polling mode
[4023] Fix | Delete
if ($args['compare'] && count($args['targets']) === 1) {
[4024] Fix | Delete
$compare = intval($args['compare']);
[4025] Fix | Delete
$hash = $args['targets'][0];
[4026] Fix | Delete
if ($volume = $this->volume($hash)) {
[4027] Fix | Delete
$standby = (int)$volume->getOption('plStandby');
[4028] Fix | Delete
$_compare = false;
[4029] Fix | Delete
if (($syncCheckFunc = $volume->getOption('syncCheckFunc')) && is_callable($syncCheckFunc)) {
[4030] Fix | Delete
$_compare = call_user_func_array($syncCheckFunc, array($volume->realpath($hash), $standby, $compare, $volume, $this));
[4031] Fix | Delete
}
[4032] Fix | Delete
if ($_compare !== false) {
[4033] Fix | Delete
$compare = $_compare;
[4034] Fix | Delete
} else {
[4035] Fix | Delete
$sleep = max(1, (int)$volume->getOption('tsPlSleep'));
[4036] Fix | Delete
$limit = max(1, $standby / $sleep) + 1;
[4037] Fix | Delete
do {
[4038] Fix | Delete
elFinder::extendTimeLimit(30 + $sleep);
[4039] Fix | Delete
$volume->clearstatcache();
[4040] Fix | Delete
if (($info = $volume->file($hash)) != false) {
[4041] Fix | Delete
if ($info['ts'] != $compare) {
[4042] Fix | Delete
$compare = $info['ts'];
[4043] Fix | Delete
break;
[4044] Fix | Delete
}
[4045] Fix | Delete
} else {
[4046] Fix | Delete
$compare = 0;
[4047] Fix | Delete
break;
[4048] Fix | Delete
}
[4049] Fix | Delete
if (--$limit) {
[4050] Fix | Delete
sleep($sleep);
[4051] Fix | Delete
}
[4052] Fix | Delete
} while ($limit);
[4053] Fix | Delete
}
[4054] Fix | Delete
}
[4055] Fix | Delete
} else {
[4056] Fix | Delete
foreach ($args['targets'] as $hash) {
[4057] Fix | Delete
elFinder::checkAborted();
[4058] Fix | Delete
if (($volume = $this->volume($hash)) != false
[4059] Fix | Delete
&& ($info = $volume->file($hash)) != false) {
[4060] Fix | Delete
$info['path'] = $volume->path($hash);
[4061] Fix | Delete
$files[] = $info;
[4062] Fix | Delete
}
[4063] Fix | Delete
}
[4064] Fix | Delete
}
[4065] Fix | Delete
[4066] Fix | Delete
$result = array('files' => $files);
[4067] Fix | Delete
if (!is_null($compare)) {
[4068] Fix | Delete
$result['compare'] = strval($compare);
[4069] Fix | Delete
}
[4070] Fix | Delete
return $result;
[4071] Fix | Delete
}
[4072] Fix | Delete
[4073] Fix | Delete
/**
[4074] Fix | Delete
* Return image dimensions
[4075] Fix | Delete
*
[4076] Fix | Delete
* @param array $args command arguments
[4077] Fix | Delete
*
[4078] Fix | Delete
* @return array
[4079] Fix | Delete
* @throws ImagickException
[4080] Fix | Delete
* @throws elFinderAbortException
[4081] Fix | Delete
* @author Dmitry (dio) Levashov
[4082] Fix | Delete
*/
[4083] Fix | Delete
protected function dim($args)
[4084] Fix | Delete
{
[4085] Fix | Delete
$res = array();
[4086] Fix | Delete
$target = $args['target'];
[4087] Fix | Delete
[4088] Fix | Delete
if (($volume = $this->volume($target)) != false) {
[4089] Fix | Delete
if ($dim = $volume->dimensions($target, $args)) {
[4090] Fix | Delete
if (is_array($dim) && isset($dim['dim'])) {
[4091] Fix | Delete
$res = $dim;
[4092] Fix | Delete
} else {
[4093] Fix | Delete
$res = array('dim' => $dim);
[4094] Fix | Delete
if ($subImgLink = $volume->getSubstituteImgLink($target, explode('x', $dim))) {
[4095] Fix | Delete
$res['url'] = $subImgLink;
[4096] Fix | Delete
}
[4097] Fix | Delete
}
[4098] Fix | Delete
}
[4099] Fix | Delete
}
[4100] Fix | Delete
[4101] Fix | Delete
return $res;
[4102] Fix | Delete
}
[4103] Fix | Delete
[4104] Fix | Delete
/**
[4105] Fix | Delete
* Resize image
[4106] Fix | Delete
*
[4107] Fix | Delete
* @param array command arguments
[4108] Fix | Delete
*
[4109] Fix | Delete
* @return array
[4110] Fix | Delete
* @throws ImagickException
[4111] Fix | Delete
* @throws elFinderAbortException
[4112] Fix | Delete
* @author Dmitry (dio) Levashov
[4113] Fix | Delete
* @author Alexey Sukhotin
[4114] Fix | Delete
*/
[4115] Fix | Delete
protected function resize($args)
[4116] Fix | Delete
{
[4117] Fix | Delete
$target = $args['target'];
[4118] Fix | Delete
$width = (int)$args['width'];
[4119] Fix | Delete
$height = (int)$args['height'];
[4120] Fix | Delete
$x = (int)$args['x'];
[4121] Fix | Delete
$y = (int)$args['y'];
[4122] Fix | Delete
$mode = $args['mode'];
[4123] Fix | Delete
$bg = $args['bg'];
[4124] Fix | Delete
$degree = (int)$args['degree'];
[4125] Fix | Delete
$quality = (int)$args['quality'];
[4126] Fix | Delete
[4127] Fix | Delete
if (($volume = $this->volume($target)) == false
[4128] Fix | Delete
|| ($file = $volume->file($target)) == false) {
[4129] Fix | Delete
return array('error' => $this->error(self::ERROR_RESIZE, '#' . $target, self::ERROR_FILE_NOT_FOUND));
[4130] Fix | Delete
}
[4131] Fix | Delete
[4132] Fix | Delete
if ($mode !== 'rotate' && ($width < 1 || $height < 1)) {
[4133] Fix | Delete
return array('error' => $this->error(self::ERROR_RESIZESIZE));
[4134] Fix | Delete
}
[4135] Fix | Delete
return ($file = $volume->resize($target, $width, $height, $x, $y, $mode, $bg, $degree, $quality))
[4136] Fix | Delete
? (!empty($file['losslessRotate']) ? $file : array('changed' => array($file)))
[4137] Fix | Delete
: array('error' => $this->error(self::ERROR_RESIZE, $volume->path($target), $volume->error()));
[4138] Fix | Delete
}
[4139] Fix | Delete
[4140] Fix | Delete
/**
[4141] Fix | Delete
* Return content URL
[4142] Fix | Delete
*
[4143] Fix | Delete
* @param array $args command arguments
[4144] Fix | Delete
*
[4145] Fix | Delete
* @return array
[4146] Fix | Delete
* @author Naoki Sawada
[4147] Fix | Delete
**/
[4148] Fix | Delete
protected function url($args)
[4149] Fix | Delete
{
[4150] Fix | Delete
$target = $args['target'];
[4151] Fix | Delete
$options = isset($args['options']) ? $args['options'] : array();
[4152] Fix | Delete
if (($volume = $this->volume($target)) != false) {
[4153] Fix | Delete
if (!$volume->commandDisabled('url')) {
[4154] Fix | Delete
$url = $volume->getContentUrl($target, $options);
[4155] Fix | Delete
return $url ? array('url' => $url) : array();
[4156] Fix | Delete
}
[4157] Fix | Delete
}
[4158] Fix | Delete
return array();
[4159] Fix | Delete
}
[4160] Fix | Delete
[4161] Fix | Delete
/**
[4162] Fix | Delete
* Output callback result with JavaScript that control elFinder
[4163] Fix | Delete
* or HTTP redirect to callbackWindowURL
[4164] Fix | Delete
*
[4165] Fix | Delete
* @param array command arguments
[4166] Fix | Delete
*
[4167] Fix | Delete
* @throws elFinderAbortException
[4168] Fix | Delete
* @author Naoki Sawada
[4169] Fix | Delete
*/
[4170] Fix | Delete
protected function callback($args)
[4171] Fix | Delete
{
[4172] Fix | Delete
$checkReg = '/[^a-zA-Z0-9;._-]/';
[4173] Fix | Delete
$node = (isset($args['node']) && !preg_match($checkReg, $args['node'])) ? $args['node'] : '';
[4174] Fix | Delete
$json = (isset($args['json']) && json_decode($args['json'])) ? $args['json'] : '{}';
[4175] Fix | Delete
$bind = (isset($args['bind']) && !preg_match($checkReg, $args['bind'])) ? $args['bind'] : '';
[4176] Fix | Delete
$done = (!empty($args['done']));
[4177] Fix | Delete
[4178] Fix | Delete
while (ob_get_level()) {
[4179] Fix | Delete
if (!ob_end_clean()) {
[4180] Fix | Delete
break;
[4181] Fix | Delete
}
[4182] Fix | Delete
}
[4183] Fix | Delete
[4184] Fix | Delete
if ($done || !$this->callbackWindowURL) {
[4185] Fix | Delete
$script = '';
[4186] Fix | Delete
if ($node) {
[4187] Fix | Delete
if ($bind) {
[4188] Fix | Delete
$trigger = 'elf.trigger(\'' . $bind . '\', data);';
[4189] Fix | Delete
$triggerdone = 'elf.trigger(\'' . $bind . 'done\');';
[4190] Fix | Delete
$triggerfail = 'elf.trigger(\'' . $bind . 'fail\', data);';
[4191] Fix | Delete
} else {
[4192] Fix | Delete
$trigger = $triggerdone = $triggerfail = '';
[4193] Fix | Delete
}
[4194] Fix | Delete
$origin = isset($_SERVER['HTTP_ORIGIN'])? str_replace('\'', '\\\'', $_SERVER['HTTP_ORIGIN']) : '*';
[4195] Fix | Delete
$script .= '
[4196] Fix | Delete
var go = function() {
[4197] Fix | Delete
var w = window.opener || window.parent || window,
[4198] Fix | Delete
close = function(){
[4199] Fix | Delete
window.open("about:blank","_self").close();
[4200] Fix | Delete
return false;
[4201] Fix | Delete
};
[4202] Fix | Delete
try {
[4203] Fix | Delete
var elf = w.document.getElementById(\'' . $node . '\').elfinder;
[4204] Fix | Delete
if (elf) {
[4205] Fix | Delete
var data = ' . $json . ';
[4206] Fix | Delete
if (data.error) {
[4207] Fix | Delete
' . $triggerfail . '
[4208] Fix | Delete
elf.error(data.error);
[4209] Fix | Delete
} else {
[4210] Fix | Delete
data.warning && elf.error(data.warning);
[4211] Fix | Delete
data.removed && data.removed.length && elf.remove(data);
[4212] Fix | Delete
data.added && data.added.length && elf.add(data);
[4213] Fix | Delete
data.changed && data.changed.length && elf.change(data);
[4214] Fix | Delete
' . $trigger . '
[4215] Fix | Delete
' . $triggerdone . '
[4216] Fix | Delete
data.sync && elf.sync();
[4217] Fix | Delete
}
[4218] Fix | Delete
}
[4219] Fix | Delete
} catch(e) {
[4220] Fix | Delete
// for CORS
[4221] Fix | Delete
w.postMessage && w.postMessage(JSON.stringify({bind:\'' . $bind . '\',data:' . $json . '}), \'' . $origin . '\');
[4222] Fix | Delete
}
[4223] Fix | Delete
close();
[4224] Fix | Delete
setTimeout(function() {
[4225] Fix | Delete
var msg = document.getElementById(\'msg\');
[4226] Fix | Delete
msg.style.display = \'inline\';
[4227] Fix | Delete
msg.onclick = close;
[4228] Fix | Delete
}, 100);
[4229] Fix | Delete
};
[4230] Fix | Delete
';
[4231] Fix | Delete
}
[4232] Fix | Delete
[4233] Fix | Delete
$out = '<!DOCTYPE html><html lang="en"><head><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2"><script>' . $script . '</script></head><body><h2 id="msg" style="display:none;"><a href="#">Please close this tab.</a></h2><script>go();</script></body></html>';
[4234] Fix | Delete
[4235] Fix | Delete
header('Content-Type: text/html; charset=utf-8');
[4236] Fix | Delete
header('Content-Length: ' . strlen($out));
[4237] Fix | Delete
header('Cache-Control: private');
[4238] Fix | Delete
header('Pragma: no-cache');
[4239] Fix | Delete
[4240] Fix | Delete
echo $out;
[4241] Fix | Delete
[4242] Fix | Delete
} else {
[4243] Fix | Delete
$url = $this->callbackWindowURL;
[4244] Fix | Delete
$url .= ((strpos($url, '?') === false) ? '?' : '&')
[4245] Fix | Delete
. '&node=' . rawurlencode($node)
[4246] Fix | Delete
. (($json !== '{}') ? ('&json=' . rawurlencode($json)) : '')
[4247] Fix | Delete
. ($bind ? ('&bind=' . rawurlencode($bind)) : '')
[4248] Fix | Delete
. '&done=1';
[4249] Fix | Delete
[4250] Fix | Delete
header('Location: ' . $url);
[4251] Fix | Delete
[4252] Fix | Delete
}
[4253] Fix | Delete
throw new elFinderAbortException();
[4254] Fix | Delete
}
[4255] Fix | Delete
[4256] Fix | Delete
/**
[4257] Fix | Delete
* Error handler for send toast message to client side
[4258] Fix | Delete
*
[4259] Fix | Delete
* @param int $errno
[4260] Fix | Delete
* @param string $errstr
[4261] Fix | Delete
* @param string $errfile
[4262] Fix | Delete
* @param int $errline
[4263] Fix | Delete
*
[4264] Fix | Delete
* @return boolean
[4265] Fix | Delete
*/
[4266] Fix | Delete
protected function toastErrorHandler($errno, $errstr, $errfile, $errline)
[4267] Fix | Delete
{
[4268] Fix | Delete
$proc = false;
[4269] Fix | Delete
if (!(error_reporting() & $errno)) {
[4270] Fix | Delete
return $proc;
[4271] Fix | Delete
}
[4272] Fix | Delete
$toast = array();
[4273] Fix | Delete
$toast['mode'] = $this->toastParams['mode'];
[4274] Fix | Delete
$toast['msg'] = $this->toastParams['prefix'] . $errstr;
[4275] Fix | Delete
$this->toastMessages[] = $toast;
[4276] Fix | Delete
return true;
[4277] Fix | Delete
}
[4278] Fix | Delete
[4279] Fix | Delete
/**
[4280] Fix | Delete
* PHP error handler, catch error types only E_WARNING | E_NOTICE | E_USER_WARNING | E_USER_NOTICE
[4281] Fix | Delete
*
[4282] Fix | Delete
* @param int $errno
[4283] Fix | Delete
* @param string $errstr
[4284] Fix | Delete
* @param string $errfile
[4285] Fix | Delete
* @param int $errline
[4286] Fix | Delete
*
[4287] Fix | Delete
* @return boolean
[4288] Fix | Delete
*/
[4289] Fix | Delete
public static function phpErrorHandler($errno, $errstr, $errfile, $errline)
[4290] Fix | Delete
{
[4291] Fix | Delete
static $base = null;
[4292] Fix | Delete
[4293] Fix | Delete
$proc = false;
[4294] Fix | Delete
[4295] Fix | Delete
if (is_null($base)) {
[4296] Fix | Delete
$base = dirname(__FILE__) . DIRECTORY_SEPARATOR;
[4297] Fix | Delete
}
[4298] Fix | Delete
[4299] Fix | Delete
if (!(error_reporting() & $errno)) {
[4300] Fix | Delete
return $proc;
[4301] Fix | Delete
}
[4302] Fix | Delete
[4303] Fix | Delete
// Do not report real path
[4304] Fix | Delete
if (strpos($errfile, $base) === 0) {
[4305] Fix | Delete
$errfile = str_replace($base, '', $errfile);
[4306] Fix | Delete
} else if ($pos = strrpos($errfile, '/vendor/')) {
[4307] Fix | Delete
$errfile = substr($errfile, $pos + 1);
[4308] Fix | Delete
} else {
[4309] Fix | Delete
$errfile = basename($errfile);
[4310] Fix | Delete
}
[4311] Fix | Delete
[4312] Fix | Delete
switch ($errno) {
[4313] Fix | Delete
case E_WARNING:
[4314] Fix | Delete
case E_USER_WARNING:
[4315] Fix | Delete
elFinder::$phpErrors[] = "WARNING: $errstr in $errfile line $errline.";
[4316] Fix | Delete
$proc = true;
[4317] Fix | Delete
break;
[4318] Fix | Delete
[4319] Fix | Delete
case E_NOTICE:
[4320] Fix | Delete
case E_USER_NOTICE:
[4321] Fix | Delete
elFinder::$phpErrors[] = "NOTICE: $errstr in $errfile line $errline.";
[4322] Fix | Delete
$proc = true;
[4323] Fix | Delete
break;
[4324] Fix | Delete
[4325] Fix | Delete
case E_STRICT:
[4326] Fix | Delete
elFinder::$phpErrors[] = "STRICT: $errstr in $errfile line $errline.";
[4327] Fix | Delete
$proc = true;
[4328] Fix | Delete
break;
[4329] Fix | Delete
[4330] Fix | Delete
case E_RECOVERABLE_ERROR:
[4331] Fix | Delete
elFinder::$phpErrors[] = "RECOVERABLE_ERROR: $errstr in $errfile line $errline.";
[4332] Fix | Delete
$proc = true;
[4333] Fix | Delete
break;
[4334] Fix | Delete
}
[4335] Fix | Delete
[4336] Fix | Delete
if (defined('E_DEPRECATED')) {
[4337] Fix | Delete
switch ($errno) {
[4338] Fix | Delete
case E_DEPRECATED:
[4339] Fix | Delete
case E_USER_DEPRECATED:
[4340] Fix | Delete
elFinder::$phpErrors[] = "DEPRECATED: $errstr in $errfile line $errline.";
[4341] Fix | Delete
$proc = true;
[4342] Fix | Delete
break;
[4343] Fix | Delete
}
[4344] Fix | Delete
}
[4345] Fix | Delete
[4346] Fix | Delete
return $proc;
[4347] Fix | Delete
}
[4348] Fix | Delete
[4349] Fix | Delete
/***************************************************************************/
[4350] Fix | Delete
/* utils */
[4351] Fix | Delete
/***************************************************************************/
[4352] Fix | Delete
[4353] Fix | Delete
/**
[4354] Fix | Delete
* Return root - file's owner
[4355] Fix | Delete
*
[4356] Fix | Delete
* @param string file hash
[4357] Fix | Delete
*
[4358] Fix | Delete
* @return elFinderVolumeDriver|boolean (false)
[4359] Fix | Delete
* @author Dmitry (dio) Levashov
[4360] Fix | Delete
**/
[4361] Fix | Delete
protected function volume($hash)
[4362] Fix | Delete
{
[4363] Fix | Delete
foreach ($this->volumes as $id => $v) {
[4364] Fix | Delete
if (strpos('' . $hash, $id) === 0) {
[4365] Fix | Delete
return $this->volumes[$id];
[4366] Fix | Delete
}
[4367] Fix | Delete
}
[4368] Fix | Delete
return false;
[4369] Fix | Delete
}
[4370] Fix | Delete
[4371] Fix | Delete
/**
[4372] Fix | Delete
* Return files info array
[4373] Fix | Delete
*
[4374] Fix | Delete
* @param array $data one file info or files info
[4375] Fix | Delete
*
[4376] Fix | Delete
* @return array
[4377] Fix | Delete
* @author Dmitry (dio) Levashov
[4378] Fix | Delete
**/
[4379] Fix | Delete
protected function toArray($data)
[4380] Fix | Delete
{
[4381] Fix | Delete
return isset($data['hash']) || !is_array($data) ? array($data) : $data;
[4382] Fix | Delete
}
[4383] Fix | Delete
[4384] Fix | Delete
/**
[4385] Fix | Delete
* Return fils hashes list
[4386] Fix | Delete
*
[4387] Fix | Delete
* @param array $files files info
[4388] Fix | Delete
*
[4389] Fix | Delete
* @return array
[4390] Fix | Delete
* @author Dmitry (dio) Levashov
[4391] Fix | Delete
**/
[4392] Fix | Delete
protected function hashes($files)
[4393] Fix | Delete
{
[4394] Fix | Delete
$ret = array();
[4395] Fix | Delete
foreach ($files as $file) {
[4396] Fix | Delete
$ret[] = $file['hash'];
[4397] Fix | Delete
}
[4398] Fix | Delete
return $ret;
[4399] Fix | Delete
}
[4400] Fix | Delete
[4401] Fix | Delete
/**
[4402] Fix | Delete
* Remove from files list hidden files and files with required mime types
[4403] Fix | Delete
*
[4404] Fix | Delete
* @param array $files files info
[4405] Fix | Delete
*
[4406] Fix | Delete
* @return array
[4407] Fix | Delete
* @author Dmitry (dio) Levashov
[4408] Fix | Delete
**/
[4409] Fix | Delete
protected function filter($files)
[4410] Fix | Delete
{
[4411] Fix | Delete
$exists = array();
[4412] Fix | Delete
foreach ($files as $i => $file) {
[4413] Fix | Delete
if (isset($file['hash'])) {
[4414] Fix | Delete
if (isset($exists[$file['hash']]) || !empty($file['hidden']) || !$this->default->mimeAccepted($file['mime'])) {
[4415] Fix | Delete
unset($files[$i]);
[4416] Fix | Delete
}
[4417] Fix | Delete
$exists[$file['hash']] = true;
[4418] Fix | Delete
}
[4419] Fix | Delete
}
[4420] Fix | Delete
return array_values($files);
[4421] Fix | Delete
}
[4422] Fix | Delete
[4423] Fix | Delete
protected function utime()
[4424] Fix | Delete
{
[4425] Fix | Delete
$time = explode(" ", microtime());
[4426] Fix | Delete
return (double)$time[1] + (double)$time[0];
[4427] Fix | Delete
}
[4428] Fix | Delete
[4429] Fix | Delete
/**
[4430] Fix | Delete
* Return Network mount volume unique ID
[4431] Fix | Delete
*
[4432] Fix | Delete
* @param array $netVolumes Saved netvolumes array
[4433] Fix | Delete
* @param string $prefix Id prefix
[4434] Fix | Delete
*
[4435] Fix | Delete
* @return string|false
[4436] Fix | Delete
* @author Naoki Sawada
[4437] Fix | Delete
**/
[4438] Fix | Delete
protected function getNetVolumeUniqueId($netVolumes = null, $prefix = 'nm')
[4439] Fix | Delete
{
[4440] Fix | Delete
if (is_null($netVolumes)) {
[4441] Fix | Delete
$netVolumes = $this->getNetVolumes();
[4442] Fix | Delete
}
[4443] Fix | Delete
$ids = array();
[4444] Fix | Delete
foreach ($netVolumes as $vOps) {
[4445] Fix | Delete
if (isset($vOps['id']) && strpos($vOps['id'], $prefix) === 0) {
[4446] Fix | Delete
$ids[$vOps['id']] = true;
[4447] Fix | Delete
}
[4448] Fix | Delete
}
[4449] Fix | Delete
if (!$ids) {
[4450] Fix | Delete
$id = $prefix . '1';
[4451] Fix | Delete
} else {
[4452] Fix | Delete
$i = 0;
[4453] Fix | Delete
while (isset($ids[$prefix . ++$i]) && $i < 10000) ;
[4454] Fix | Delete
$id = $prefix . $i;
[4455] Fix | Delete
if (isset($ids[$id])) {
[4456] Fix | Delete
$id = false;
[4457] Fix | Delete
}
[4458] Fix | Delete
}
[4459] Fix | Delete
return $id;
[4460] Fix | Delete
}
[4461] Fix | Delete
[4462] Fix | Delete
/**
[4463] Fix | Delete
* Is item locked?
[4464] Fix | Delete
*
[4465] Fix | Delete
* @param string $hash
[4466] Fix | Delete
*
[4467] Fix | Delete
* @return boolean
[4468] Fix | Delete
*/
[4469] Fix | Delete
protected function itemLocked($hash)
[4470] Fix | Delete
{
[4471] Fix | Delete
if (!elFinder::$commonTempPath) {
[4472] Fix | Delete
return false;
[4473] Fix | Delete
}
[4474] Fix | Delete
$lock = elFinder::$commonTempPath . DIRECTORY_SEPARATOR . self::filenameDecontaminate($hash) . '.lock';
[4475] Fix | Delete
if (file_exists($lock)) {
[4476] Fix | Delete
if (filemtime($lock) + $this->itemLockExpire < time()) {
[4477] Fix | Delete
unlink($lock);
[4478] Fix | Delete
return false;
[4479] Fix | Delete
}
[4480] Fix | Delete
return true;
[4481] Fix | Delete
}
[4482] Fix | Delete
[4483] Fix | Delete
return false;
[4484] Fix | Delete
}
[4485] Fix | Delete
[4486] Fix | Delete
/**
[4487] Fix | Delete
* Do lock target item
[4488] Fix | Delete
*
[4489] Fix | Delete
* @param array|string $hashes
[4490] Fix | Delete
* @param boolean $autoUnlock
[4491] Fix | Delete
*
[4492] Fix | Delete
* @return void
[4493] Fix | Delete
*/
[4494] Fix | Delete
protected function itemLock($hashes, $autoUnlock = true)
[4495] Fix | Delete
{
[4496] Fix | Delete
if (!elFinder::$commonTempPath) {
[4497] Fix | Delete
return;
[4498] Fix | Delete
}
[4499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function