/**
* Return fileinfo
*
* @param string $path file cache
* @return array
* @author Dmitry (dio) Levashov
**/
protected function stat($path)
{
if ($path === false || is_null($path)) {
return false;
}
$is_root = $path == $this->root;
if ($is_root) {
$rootKey = md5($path);
if (!isset($this->sessionCache['rootstat'])) {
$this->sessionCache['rootstat'] = array();
}
if (!$this->isMyReload()) {
// need $path as key for netmount/netunmount
if (isset($this->sessionCache['rootstat'][$rootKey])) {
if ($ret = elFinder::sessionDataDecode($this->sessionCache['rootstat'][$rootKey], 'array')) {
return $ret;
}
}
}
}
$ret = isset($this->cache[$path]) ? $this->cache[$path] : $this->updateCache($path, $this->convEncOut($this->_stat($this->convEncIn($path))));
if ($is_root) {
$this->sessionRestart();
$this->sessionCache['rootstat'][$rootKey] = elFinder::sessionDataEncode($ret);
elFinder::sessionWrite();
}
return $ret;
}