public static function genPathHash($path)
{
if (DIRECTORY_SEPARATOR != '/') {
$path = str_replace('/', DIRECTORY_SEPARATOR, $path);
}
if (preg_match('/^@(\\d+)/', $path, $match)) {
$volume = $match[1];
$path = ltrim(substr($path, strlen($match[0])), DIRECTORY_SEPARATOR);
if (empty($path)) {
$path = DIRECTORY_SEPARATOR;
}
} else {
$volume = 1;
}
$hash = rtrim(strtr(base64_encode($path), '+/=', '-_.'), '.');
return 'elf_fls' . $volume . '_' . $hash;
}
public function init() { parent::init(); if (empty($this->language)) { $this->language = ElFinder::getSupportedLanguage(\Yii::$app->language); } if (empty($this->options['id'])) { $this->options['id'] = $this->getId(); } else { $this->setId($this->options['id']); } $managerOptions = []; if (!empty($this->filter)) { $managerOptions['filter'] = $this->filter; } $managerOptions['callback'] = $this->getId() . "_manager"; if (!empty($this->language)) { $managerOptions['lang'] = $this->language; } if (!empty($this->path)) { $managerOptions['path'] = $this->path; } $params = $managerOptions; if (!empty($this->startPath)) { $params['#'] = ElFinder::genPathHash($this->startPath); } $this->_managerOptions['url'] = ElFinder::getManagerUrl($this->controller, $params); $this->_managerOptions['width'] = $this->width; $this->_managerOptions['height'] = $this->height; $this->_managerOptions['id'] = $managerOptions['callback']; }