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
// Header to use to accelerate sending local files to clients (e.g. 'X-Sendfile', 'X-Accel-Redirect')
[500] Fix | Delete
'xsendfile' => '',
[501] Fix | Delete
// Root path to xsendfile target. Probably, this is required for 'X-Accel-Redirect' on Nginx.
[502] Fix | Delete
'xsendfilePath' => ''
[503] Fix | Delete
);
[504] Fix | Delete
[505] Fix | Delete
/**
[506] Fix | Delete
* Defaults permissions
[507] Fix | Delete
*
[508] Fix | Delete
* @var array
[509] Fix | Delete
**/
[510] Fix | Delete
protected $defaults = array(
[511] Fix | Delete
'read' => true,
[512] Fix | Delete
'write' => true,
[513] Fix | Delete
'locked' => false,
[514] Fix | Delete
'hidden' => false
[515] Fix | Delete
);
[516] Fix | Delete
[517] Fix | Delete
/**
[518] Fix | Delete
* Access control function/class
[519] Fix | Delete
*
[520] Fix | Delete
* @var mixed
[521] Fix | Delete
**/
[522] Fix | Delete
protected $attributes = array();
[523] Fix | Delete
[524] Fix | Delete
/**
[525] Fix | Delete
* Access control function/class
[526] Fix | Delete
*
[527] Fix | Delete
* @var mixed
[528] Fix | Delete
**/
[529] Fix | Delete
protected $access = null;
[530] Fix | Delete
[531] Fix | Delete
/**
[532] Fix | Delete
* Mime types allowed to upload
[533] Fix | Delete
*
[534] Fix | Delete
* @var array
[535] Fix | Delete
**/
[536] Fix | Delete
protected $uploadAllow = array();
[537] Fix | Delete
[538] Fix | Delete
/**
[539] Fix | Delete
* Mime types denied to upload
[540] Fix | Delete
*
[541] Fix | Delete
* @var array
[542] Fix | Delete
**/
[543] Fix | Delete
protected $uploadDeny = array();
[544] Fix | Delete
[545] Fix | Delete
/**
[546] Fix | Delete
* Order to validate uploadAllow and uploadDeny
[547] Fix | Delete
*
[548] Fix | Delete
* @var array
[549] Fix | Delete
**/
[550] Fix | Delete
protected $uploadOrder = array();
[551] Fix | Delete
[552] Fix | Delete
/**
[553] Fix | Delete
* Maximum allowed upload file size.
[554] Fix | Delete
* Set as number or string with unit - "10M", "500K", "1G"
[555] Fix | Delete
*
[556] Fix | Delete
* @var int|string
[557] Fix | Delete
**/
[558] Fix | Delete
protected $uploadMaxSize = 0;
[559] Fix | Delete
[560] Fix | Delete
/**
[561] Fix | Delete
* Run time setting of overwrite items on upload
[562] Fix | Delete
*
[563] Fix | Delete
* @var string
[564] Fix | Delete
*/
[565] Fix | Delete
protected $uploadOverwrite = true;
[566] Fix | Delete
[567] Fix | Delete
/**
[568] Fix | Delete
* Maximum allowed get file size.
[569] Fix | Delete
* Set as number or string with unit - "10M", "500K", "1G"
[570] Fix | Delete
*
[571] Fix | Delete
* @var int|string
[572] Fix | Delete
**/
[573] Fix | Delete
protected $getMaxSize = -1;
[574] Fix | Delete
[575] Fix | Delete
/**
[576] Fix | Delete
* Mimetype detect method
[577] Fix | Delete
*
[578] Fix | Delete
* @var string
[579] Fix | Delete
**/
[580] Fix | Delete
protected $mimeDetect = 'auto';
[581] Fix | Delete
[582] Fix | Delete
/**
[583] Fix | Delete
* Flag - mimetypes from externail file was loaded
[584] Fix | Delete
*
[585] Fix | Delete
* @var bool
[586] Fix | Delete
**/
[587] Fix | Delete
private static $mimetypesLoaded = false;
[588] Fix | Delete
[589] Fix | Delete
/**
[590] Fix | Delete
* Finfo resource for mimeDetect == 'finfo'
[591] Fix | Delete
*
[592] Fix | Delete
* @var resource
[593] Fix | Delete
**/
[594] Fix | Delete
protected $finfo = null;
[595] Fix | Delete
[596] Fix | Delete
/**
[597] Fix | Delete
* List of disabled client's commands
[598] Fix | Delete
*
[599] Fix | Delete
* @var array
[600] Fix | Delete
**/
[601] Fix | Delete
protected $disabled = array();
[602] Fix | Delete
[603] Fix | Delete
/**
[604] Fix | Delete
* overwrite extensions/mimetypes to mime.types
[605] Fix | Delete
*
[606] Fix | Delete
* @var array
[607] Fix | Delete
**/
[608] Fix | Delete
protected static $mimetypes = array(
[609] Fix | Delete
// applications
[610] Fix | Delete
'exe' => 'application/x-executable',
[611] Fix | Delete
'jar' => 'application/x-jar',
[612] Fix | Delete
// archives
[613] Fix | Delete
'gz' => 'application/x-gzip',
[614] Fix | Delete
'tgz' => 'application/x-gzip',
[615] Fix | Delete
'tbz' => 'application/x-bzip2',
[616] Fix | Delete
'rar' => 'application/x-rar',
[617] Fix | Delete
// texts
[618] Fix | Delete
'php' => 'text/x-php',
[619] Fix | Delete
'js' => 'text/javascript',
[620] Fix | Delete
'rtfd' => 'application/rtfd',
[621] Fix | Delete
'py' => 'text/x-python',
[622] Fix | Delete
'rb' => 'text/x-ruby',
[623] Fix | Delete
'sh' => 'text/x-shellscript',
[624] Fix | Delete
'pl' => 'text/x-perl',
[625] Fix | Delete
'xml' => 'text/xml',
[626] Fix | Delete
'c' => 'text/x-csrc',
[627] Fix | Delete
'h' => 'text/x-chdr',
[628] Fix | Delete
'cpp' => 'text/x-c++src',
[629] Fix | Delete
'hh' => 'text/x-c++hdr',
[630] Fix | Delete
'md' => 'text/x-markdown',
[631] Fix | Delete
'markdown' => 'text/x-markdown',
[632] Fix | Delete
'yml' => 'text/x-yaml',
[633] Fix | Delete
// images
[634] Fix | Delete
'bmp' => 'image/x-ms-bmp',
[635] Fix | Delete
'tga' => 'image/x-targa',
[636] Fix | Delete
'xbm' => 'image/xbm',
[637] Fix | Delete
'pxm' => 'image/pxm',
[638] Fix | Delete
//audio
[639] Fix | Delete
'wav' => 'audio/wav',
[640] Fix | Delete
// video
[641] Fix | Delete
'dv' => 'video/x-dv',
[642] Fix | Delete
'wm' => 'video/x-ms-wmv',
[643] Fix | Delete
'ogm' => 'video/ogg',
[644] Fix | Delete
'm2ts' => 'video/MP2T',
[645] Fix | Delete
'mts' => 'video/MP2T',
[646] Fix | Delete
'ts' => 'video/MP2T',
[647] Fix | Delete
'm3u8' => 'application/x-mpegURL',
[648] Fix | Delete
'mpd' => 'application/dash+xml'
[649] Fix | Delete
);
[650] Fix | Delete
[651] Fix | Delete
/**
[652] Fix | Delete
* Directory separator - required by client
[653] Fix | Delete
*
[654] Fix | Delete
* @var string
[655] Fix | Delete
**/
[656] Fix | Delete
protected $separator = DIRECTORY_SEPARATOR;
[657] Fix | Delete
[658] Fix | Delete
/**
[659] Fix | Delete
* Directory separator for decode/encode hash
[660] Fix | Delete
*
[661] Fix | Delete
* @var string
[662] Fix | Delete
**/
[663] Fix | Delete
protected $separatorForHash = '';
[664] Fix | Delete
[665] Fix | Delete
/**
[666] Fix | Delete
* System Root path (Unix like: '/', Windows: '\', 'C:\' or 'D:\'...)
[667] Fix | Delete
*
[668] Fix | Delete
* @var string
[669] Fix | Delete
**/
[670] Fix | Delete
protected $systemRoot = DIRECTORY_SEPARATOR;
[671] Fix | Delete
[672] Fix | Delete
/**
[673] Fix | Delete
* Mimetypes allowed to display
[674] Fix | Delete
*
[675] Fix | Delete
* @var array
[676] Fix | Delete
**/
[677] Fix | Delete
protected $onlyMimes = array();
[678] Fix | Delete
[679] Fix | Delete
/**
[680] Fix | Delete
* Store files moved or overwrited files info
[681] Fix | Delete
*
[682] Fix | Delete
* @var array
[683] Fix | Delete
**/
[684] Fix | Delete
protected $removed = array();
[685] Fix | Delete
[686] Fix | Delete
/**
[687] Fix | Delete
* Store files added files info
[688] Fix | Delete
*
[689] Fix | Delete
* @var array
[690] Fix | Delete
**/
[691] Fix | Delete
protected $added = array();
[692] Fix | Delete
[693] Fix | Delete
/**
[694] Fix | Delete
* Cache storage
[695] Fix | Delete
*
[696] Fix | Delete
* @var array
[697] Fix | Delete
**/
[698] Fix | Delete
protected $cache = array();
[699] Fix | Delete
[700] Fix | Delete
/**
[701] Fix | Delete
* Cache by folders
[702] Fix | Delete
*
[703] Fix | Delete
* @var array
[704] Fix | Delete
**/
[705] Fix | Delete
protected $dirsCache = array();
[706] Fix | Delete
[707] Fix | Delete
/**
[708] Fix | Delete
* You should use `$this->sessionCache['subdirs']` instead
[709] Fix | Delete
*
[710] Fix | Delete
* @var array
[711] Fix | Delete
* @deprecated
[712] Fix | Delete
*/
[713] Fix | Delete
protected $subdirsCache = array();
[714] Fix | Delete
[715] Fix | Delete
/**
[716] Fix | Delete
* This volume session cache
[717] Fix | Delete
*
[718] Fix | Delete
* @var array
[719] Fix | Delete
*/
[720] Fix | Delete
protected $sessionCache;
[721] Fix | Delete
[722] Fix | Delete
/**
[723] Fix | Delete
* Session caching item list
[724] Fix | Delete
*
[725] Fix | Delete
* @var array
[726] Fix | Delete
*/
[727] Fix | Delete
protected $sessionCaching = array('rootstat' => true, 'subdirs' => true);
[728] Fix | Delete
[729] Fix | Delete
/**
[730] Fix | Delete
* elFinder session wrapper object
[731] Fix | Delete
*
[732] Fix | Delete
* @var elFinderSessionInterface
[733] Fix | Delete
*/
[734] Fix | Delete
protected $session;
[735] Fix | Delete
[736] Fix | Delete
/**
[737] Fix | Delete
* Search start time
[738] Fix | Delete
*
[739] Fix | Delete
* @var int
[740] Fix | Delete
*/
[741] Fix | Delete
protected $searchStart;
[742] Fix | Delete
[743] Fix | Delete
/**
[744] Fix | Delete
* Current query word on doSearch
[745] Fix | Delete
*
[746] Fix | Delete
* @var array
[747] Fix | Delete
**/
[748] Fix | Delete
protected $doSearchCurrentQuery = array();
[749] Fix | Delete
[750] Fix | Delete
/**
[751] Fix | Delete
* Is root modified (for clear root stat cache)
[752] Fix | Delete
*
[753] Fix | Delete
* @var bool
[754] Fix | Delete
*/
[755] Fix | Delete
protected $rootModified = false;
[756] Fix | Delete
[757] Fix | Delete
/**
[758] Fix | Delete
* Is disable of command `url`
[759] Fix | Delete
*
[760] Fix | Delete
* @var string
[761] Fix | Delete
*/
[762] Fix | Delete
protected $disabledGetUrl = false;
[763] Fix | Delete
[764] Fix | Delete
/**
[765] Fix | Delete
* Accepted filename validator
[766] Fix | Delete
*
[767] Fix | Delete
* @var string | callable
[768] Fix | Delete
*/
[769] Fix | Delete
protected $nameValidator;
[770] Fix | Delete
[771] Fix | Delete
/**
[772] Fix | Delete
* Accepted dirname validator
[773] Fix | Delete
*
[774] Fix | Delete
* @var string | callable
[775] Fix | Delete
*/
[776] Fix | Delete
protected $dirnameValidator;
[777] Fix | Delete
[778] Fix | Delete
/**
[779] Fix | Delete
* This request require online state
[780] Fix | Delete
*
[781] Fix | Delete
* @var boolean
[782] Fix | Delete
*/
[783] Fix | Delete
protected $needOnline;
[784] Fix | Delete
[785] Fix | Delete
/*********************************************************************/
[786] Fix | Delete
/* INITIALIZATION */
[787] Fix | Delete
/*********************************************************************/
[788] Fix | Delete
[789] Fix | Delete
/**
[790] Fix | Delete
* Sets the need online.
[791] Fix | Delete
*
[792] Fix | Delete
* @param boolean $state The state
[793] Fix | Delete
*/
[794] Fix | Delete
public function setNeedOnline($state = null)
[795] Fix | Delete
{
[796] Fix | Delete
if ($state !== null) {
[797] Fix | Delete
$this->needOnline = (bool)$state;
[798] Fix | Delete
return;
[799] Fix | Delete
}
[800] Fix | Delete
[801] Fix | Delete
$need = false;
[802] Fix | Delete
$arg = $this->ARGS;
[803] Fix | Delete
$id = $this->id;
[804] Fix | Delete
[805] Fix | Delete
$target = !empty($arg['target'])? $arg['target'] : (!empty($arg['dst'])? $arg['dst'] : '');
[806] Fix | Delete
$targets = !empty($arg['targets'])? $arg['targets'] : array();
[807] Fix | Delete
if (!is_array($targets)) {
[808] Fix | Delete
$targets = array($targets);
[809] Fix | Delete
}
[810] Fix | Delete
[811] Fix | Delete
if ($target && strpos($target, $id) === 0) {
[812] Fix | Delete
$need = true;
[813] Fix | Delete
} else if ($targets) {
[814] Fix | Delete
foreach($targets as $t) {
[815] Fix | Delete
if ($t && strpos($t, $id) === 0) {
[816] Fix | Delete
$need = true;
[817] Fix | Delete
break;
[818] Fix | Delete
}
[819] Fix | Delete
}
[820] Fix | Delete
}
[821] Fix | Delete
[822] Fix | Delete
$this->needOnline = $need;
[823] Fix | Delete
}
[824] Fix | Delete
[825] Fix | Delete
/**
[826] Fix | Delete
* Prepare driver before mount volume.
[827] Fix | Delete
* Return true if volume is ready.
[828] Fix | Delete
*
[829] Fix | Delete
* @return bool
[830] Fix | Delete
* @author Dmitry (dio) Levashov
[831] Fix | Delete
**/
[832] Fix | Delete
protected function init()
[833] Fix | Delete
{
[834] Fix | Delete
return true;
[835] Fix | Delete
}
[836] Fix | Delete
[837] Fix | Delete
/**
[838] Fix | Delete
* Configure after successfull mount.
[839] Fix | Delete
* By default set thumbnails path and image manipulation library.
[840] Fix | Delete
*
[841] Fix | Delete
* @return void
[842] Fix | Delete
* @throws elFinderAbortException
[843] Fix | Delete
* @author Dmitry (dio) Levashov
[844] Fix | Delete
*/
[845] Fix | Delete
protected function configure()
[846] Fix | Delete
{
[847] Fix | Delete
// set thumbnails path
[848] Fix | Delete
$path = $this->options['tmbPath'];
[849] Fix | Delete
if ($path) {
[850] Fix | Delete
if (!file_exists($path)) {
[851] Fix | Delete
if (mkdir($path)) {
[852] Fix | Delete
chmod($path, $this->options['tmbPathMode']);
[853] Fix | Delete
} else {
[854] Fix | Delete
$path = '';
[855] Fix | Delete
}
[856] Fix | Delete
}
[857] Fix | Delete
[858] Fix | Delete
if (is_dir($path) && is_readable($path)) {
[859] Fix | Delete
$this->tmbPath = $path;
[860] Fix | Delete
$this->tmbPathWritable = is_writable($path);
[861] Fix | Delete
}
[862] Fix | Delete
}
[863] Fix | Delete
// set resouce path
[864] Fix | Delete
if (!is_dir($this->options['resourcePath'])) {
[865] Fix | Delete
$this->options['resourcePath'] = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'resources';
[866] Fix | Delete
}
[867] Fix | Delete
[868] Fix | Delete
// set image manipulation library
[869] Fix | Delete
$type = preg_match('/^(imagick|gd|convert|auto|none)$/i', $this->options['imgLib'])
[870] Fix | Delete
? strtolower($this->options['imgLib'])
[871] Fix | Delete
: 'auto';
[872] Fix | Delete
[873] Fix | Delete
if ($type === 'none') {
[874] Fix | Delete
$this->imgLib = '';
[875] Fix | Delete
} else {
[876] Fix | Delete
if (($type === 'imagick' || $type === 'auto') && extension_loaded('imagick')) {
[877] Fix | Delete
$this->imgLib = 'imagick';
[878] Fix | Delete
} else if (($type === 'gd' || $type === 'auto') && function_exists('gd_info')) {
[879] Fix | Delete
$this->imgLib = 'gd';
[880] Fix | Delete
} else {
[881] Fix | Delete
$convertCache = 'imgLibConvert';
[882] Fix | Delete
if (($convertCmd = $this->session->get($convertCache, false)) !== false) {
[883] Fix | Delete
$this->imgLib = $convertCmd;
[884] Fix | Delete
} else {
[885] Fix | Delete
$this->imgLib = ($this->procExec(ELFINDER_CONVERT_PATH . ' -version') === 0) ? 'convert' : '';
[886] Fix | Delete
$this->session->set($convertCache, $this->imgLib);
[887] Fix | Delete
}
[888] Fix | Delete
}
[889] Fix | Delete
if ($type !== 'auto' && $this->imgLib === '') {
[890] Fix | Delete
// fallback
[891] Fix | Delete
$this->imgLib = extension_loaded('imagick') ? 'imagick' : (function_exists('gd_info') ? 'gd' : '');
[892] Fix | Delete
}
[893] Fix | Delete
}
[894] Fix | Delete
[895] Fix | Delete
// check video to img converter
[896] Fix | Delete
if (!empty($this->options['imgConverter']) && is_array($this->options['imgConverter'])) {
[897] Fix | Delete
foreach ($this->options['imgConverter'] as $_type => $_converter) {
[898] Fix | Delete
if (isset($_converter['func'])) {
[899] Fix | Delete
$this->imgConverter[strtolower($_type)] = $_converter;
[900] Fix | Delete
}
[901] Fix | Delete
}
[902] Fix | Delete
}
[903] Fix | Delete
if (!isset($this->imgConverter['video'])) {
[904] Fix | Delete
$videoLibCache = 'videoLib';
[905] Fix | Delete
if (($videoLibCmd = $this->session->get($videoLibCache, false)) === false) {
[906] Fix | Delete
$videoLibCmd = ($this->procExec(ELFINDER_FFMPEG_PATH . ' -version') === 0) ? 'ffmpeg' : '';
[907] Fix | Delete
$this->session->set($videoLibCache, $videoLibCmd);
[908] Fix | Delete
}
[909] Fix | Delete
if ($videoLibCmd) {
[910] Fix | Delete
$this->imgConverter['video'] = array(
[911] Fix | Delete
'func' => array($this, $videoLibCmd . 'ToImg'),
[912] Fix | Delete
'maxlen' => $this->options['tmbVideoConvLen']
[913] Fix | Delete
);
[914] Fix | Delete
}
[915] Fix | Delete
}
[916] Fix | Delete
[917] Fix | Delete
// check onetimeUrl
[918] Fix | Delete
if (strtolower($this->options['onetimeUrl']) === 'auto') {
[919] Fix | Delete
$this->options['onetimeUrl'] = elFinder::getStaticVar('commonTempPath')? true : false;
[920] Fix | Delete
}
[921] Fix | Delete
[922] Fix | Delete
// check archivers
[923] Fix | Delete
if (empty($this->archivers['create'])) {
[924] Fix | Delete
$this->disabled[] = 'archive';
[925] Fix | Delete
}
[926] Fix | Delete
if (empty($this->archivers['extract'])) {
[927] Fix | Delete
$this->disabled[] = 'extract';
[928] Fix | Delete
}
[929] Fix | Delete
$_arc = $this->getArchivers();
[930] Fix | Delete
if (empty($_arc['create'])) {
[931] Fix | Delete
$this->disabled[] = 'zipdl';
[932] Fix | Delete
}
[933] Fix | Delete
[934] Fix | Delete
if ($this->options['maxArcFilesSize']) {
[935] Fix | Delete
$this->options['maxArcFilesSize'] = elFinder::getIniBytes('', $this->options['maxArcFilesSize']);
[936] Fix | Delete
}
[937] Fix | Delete
self::$maxArcFilesSize = $this->options['maxArcFilesSize'];
[938] Fix | Delete
[939] Fix | Delete
// check 'statOwner' for command `chmod`
[940] Fix | Delete
if (empty($this->options['statOwner'])) {
[941] Fix | Delete
$this->disabled[] = 'chmod';
[942] Fix | Delete
}
[943] Fix | Delete
[944] Fix | Delete
// check 'mimeMap'
[945] Fix | Delete
if (!is_array($this->options['mimeMap'])) {
[946] Fix | Delete
$this->options['mimeMap'] = array();
[947] Fix | Delete
}
[948] Fix | Delete
if (is_array($this->options['staticMineMap']) && $this->options['staticMineMap']) {
[949] Fix | Delete
$this->options['mimeMap'] = array_merge($this->options['mimeMap'], $this->options['staticMineMap']);
[950] Fix | Delete
}
[951] Fix | Delete
if (is_array($this->options['additionalMimeMap']) && $this->options['additionalMimeMap']) {
[952] Fix | Delete
$this->options['mimeMap'] = array_merge($this->options['mimeMap'], $this->options['additionalMimeMap']);
[953] Fix | Delete
}
[954] Fix | Delete
[955] Fix | Delete
// check 'url' in disabled commands
[956] Fix | Delete
if (in_array('url', $this->disabled)) {
[957] Fix | Delete
$this->disabledGetUrl = true;
[958] Fix | Delete
}
[959] Fix | Delete
[960] Fix | Delete
// set run time setting uploadOverwrite
[961] Fix | Delete
$this->uploadOverwrite = $this->options['uploadOverwrite'];
[962] Fix | Delete
}
[963] Fix | Delete
[964] Fix | Delete
/**
[965] Fix | Delete
* @deprecated
[966] Fix | Delete
*/
[967] Fix | Delete
protected function sessionRestart()
[968] Fix | Delete
{
[969] Fix | Delete
$this->sessionCache = $this->session->start()->get($this->id, array());
[970] Fix | Delete
return true;
[971] Fix | Delete
}
[972] Fix | Delete
[973] Fix | Delete
/*********************************************************************/
[974] Fix | Delete
/* PUBLIC API */
[975] Fix | Delete
/*********************************************************************/
[976] Fix | Delete
[977] Fix | Delete
/**
[978] Fix | Delete
* Return driver id. Used as a part of volume id.
[979] Fix | Delete
*
[980] Fix | Delete
* @return string
[981] Fix | Delete
* @author Dmitry (dio) Levashov
[982] Fix | Delete
**/
[983] Fix | Delete
public function driverId()
[984] Fix | Delete
{
[985] Fix | Delete
return $this->driverId;
[986] Fix | Delete
}
[987] Fix | Delete
[988] Fix | Delete
/**
[989] Fix | Delete
* Return volume id
[990] Fix | Delete
*
[991] Fix | Delete
* @return string
[992] Fix | Delete
* @author Dmitry (dio) Levashov
[993] Fix | Delete
**/
[994] Fix | Delete
public function id()
[995] Fix | Delete
{
[996] Fix | Delete
return $this->id;
[997] Fix | Delete
}
[998] Fix | Delete
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function