Я использую elfinder, и у меня есть проблема. Я хочу получить текущий каталог в elfinder, но я не могу.
EDITED: это мой коннектор. состоят из my_function, вызвавшего после загрузки, переименования или mkdir-команд, и я хочу получить путь к загруженным файлам в указанном месте:
<?php error_reporting(0); // Set E_ALL for debuging include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderConnector.class.php'; include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinder.class.php'; include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeDriver.class.php'; include_once dirname(__FILE__).DIRECTORY_SEPARATOR.'elFinderVolumeLocalFileSystem.class.php'; function access($attr, $path, $data, $volume) { return strpos(basename($path), '.') === 0 // if file/folder begins with '.' (dot) ? !($attr == 'read' || $attr == 'write') // set read+write to false, other (locked+hidden) set to true : null; // else elFinder decide it itself } function my_function($cmd, $result, $args, $elfinder) { // how to get current path here? } $opts = array( 'bind' => array('upload rename mkdir' => 'my_function'), // 'debug' => true, 'roots' => array( array( 'driver' => 'LocalFileSystem', // driver for accessing file system (REQUIRED) 'path' => '../files/', // path to files (REQUIRED) 'URL' => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED) 'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL) ), ) ); // run elFinder $connector = new elFinderConnector(new elFinder($opts)); $connector->run();
Вы можете получить URL-адрес товаров.
function my_function($cmd, $result, $args, $elfinder) { // how to get current path here? foreach ($result['added'] as $file) { if (!empty($file['url']) && $file['url'] != 1) { $url = $file['url']; } } }
или Сделать собственный класс ex elFinderVolumeMyLocalFileSystem
class elFinderVolumeMyLocalFileSystem extends elFinderVolumeLocalFileSystem { public function decode($hash) { return parent::decode($hash); } } function my_function($cmd, $result, $args, $elfinder) { // how to get current path here? foreach ($result['added'] as $file) { if ($volume = $elfinder->getVolume($file['hash'])) { $dir = $volume->decode($file['phash']); } } } $opts = array( 'bind' => array('upload rename mkdir' => 'my_function'), // 'debug' => true, 'roots' => array( array( 'driver' => 'MyLocalFileSystem', // driver for accessing file system (REQUIRED) 'path' => '../files/', // path to files (REQUIRED) 'URL' => dirname($_SERVER['PHP_SELF']) . '/../files/', // URL to files (REQUIRED) 'accessControl' => 'access' // disable and hide dot starting files (OPTIONAL) ), ) );