Пару вопросов про Cut, Paste и Select
Added by Сергей Б over 1 year ago
1. ff 3.6.13
По умолчанию при двойном клике мышки на файл выполняется SELECT , но у меня отключено
fileURL => false
и судя по всему я по этому получаю сообщение "Доступ к адресам файлов запрещен настройками коннектора" (для моих задач необходимо отключать URL доступ к файлам), в связи с этим у меня вопрос:
Как изменить дефолтное действие по двойному клику мышки с SELECT на OPEN ??
У меня не работает CUT > PASTE и COPY > PASTE я получаю ошибку "Некорректные параметры"
В elfinder.php4.class.php я нашел function _paste() но не пойму что именно вызывает 'Invalid parameters'
Одно важное дополнение: я в connector.php4.php передаю ID сессии и из нее достаю разные параметры:
..../connector.php4.php?ssid=508689932ba1f7a1d0aa09063a5a632b&cmd=open
для cmd я исправил ?cmd= на &cmd= я подозреваю что проблема в этом же но не могу понять как это профиксить.
Заранее благодарю.
PS Проект просто замечательный, за 3 дня перелопачивания инета и пробуя разные варианты файловых менеджеров, я даже в мыслях не думал что возможно найти этот алмаз в той куче навоза которую я перелопатил за это время, потратив кучу времени. Огромное спасибо всем тем кто приложил свои усилия на создание и поддержку этого проекта.
Replies (7)
RE: Пару вопросов про Cut и Select
-
Added by Dmitry Levashov over 1 year ago
чтобы отследить проблемы с cut/paste воспользуйтесь firebug
Вы используете коннектор для php4 - почему не для 5?
Посмотрите у нас в гите или тут на англоязычном форуме - недавно постили патч для передачи доп параметров коннектру
Ну или дождитесь след версии - она уже в работе )
RE: Пару вопросов про Cut и Select
-
Added by Сергей Б over 1 year ago
ну я использую php4 потому что у меня php4 :)
спасибо за совет покопаюсь еще в англ форуме, благодарю.
RE: Пару вопросов про Cut и Select
-
Added by Сергей Б over 1 year ago
Маленькое дополнение:
с помощью настроек в toolbar и в другие меню можно добавлять и убирать любые компоненты но в elfinder.css для toolbar не описаны некоторые значки такие как cut duplicate archive extract и поэтому они некорректно отображаются если их добавить, может это конечно так и задумано и может эти пункты там и не нужны но ИМХО если есть возможность добавлять пункты то и значки должны быть для них описаны.
в elfinder.css для toolbar отсутствуют вот эти значки:
.el-finder-toolbar ul li.archive { background-position: 3px -583px; }
.el-finder-toolbar ul li.extract { background-position: 3px -583px; }
.el-finder-toolbar ul li.cut { background-position: 3px -631px; }
.el-finder-toolbar ul li.duplicate { background-position: 3px -356px; }
RE: Пару вопросов про Cut и Select
-
Added by Сергей Б over 1 year ago
Сам немного разобрался:
По идее можно было бы в connector.php отключить select
'disabled' => array('select'),
и тогда обработчик dblclick в elfinder.min.js
.bind('dblclick', function(e) {
self.fm.select($(this), true);
self.ui.exec(self.ui.isCmdAllowed('select') ? 'select' : 'open');
})
должен выбирать сам 'open' если 'select' не разрешен, НО видимо проверка на
'fileURL' => false,
стоит раньше и поэтому при отключении 'select' все равно возникает ошибка "Доступ к адресам файлов запрещен настройками коннектора"
Я просто изменил сам обработчик:
.bind('dblclick', function(e) {
self.fm.select($(this), true);
self.ui.exec(self.ui.isCmdAllowed('open') ? 'open' : 'select');
})
RE: Пару вопросов про Cut и Select
-
Added by Dmitry Levashov over 1 year ago
Спасибо - учту этот баг
RE: Пару вопросов про Cut_Paste и Select
-
Added by Сергей Б over 1 year ago
И с PASTE разобрался:
я использую connector.php4.php и elfinder.php4.class.php
Когда выполняется PASTE то методом GET на сервер посылаются:
_ 1296149126055
cmd paste
current e4edf04a86f8762917815fa6f46108f1
cut 1
dst e4edf04a86f8762917815fa6f46108f1
src e5f81643f6415bfa1e61f09503311b39
targets[] a3e7bd1ac333fe59f124c4ae3f74a39c
а в elfinder.php4.class.php в функции _paste() как мы видим проверяются переменные и ожидается не targets[] а files видимо прошлые остатки
Оригинал:
function _paste()
{
if (empty($_GET['current'])
|| false == ($current = $this->_findDir(trim($_GET['current'])))
|| empty($_GET['src'])
|| false == ($src = $this->_findDir(trim($_GET['src'])))
|| empty($_GET['dst'])
|| false == ($dst = $this->_findDir(trim($_GET['dst'])))
|| empty($_GET['files']) || !is_array($_GET['files'])
) {
return $this->_result['error'] = 'Invalid parameters';
}
и далее в функции тоже запрашивается files
Функцию _paste нужно исправить в файлах прикрепленных тут на сайте:
Исправленная функция:
function _paste()
{
if (empty($_GET['current'])
|| false == ($current = $this->_findDir(trim($_GET['current'])))
|| empty($_GET['src'])
|| false == ($src = $this->_findDir(trim($_GET['src'])))
|| empty($_GET['dst'])
|| false == ($dst = $this->_findDir(trim($_GET['dst'])))
|| empty($_GET['targets']) || !is_array($_GET['targets'])
) {
return $this->_result['error'] = 'Invalid parameters';
}
$cut = !empty($_GET['cut']);
$this->_logContext['src'] = array();
$this->_logContext['dest'] = $dst;
$this->_logContext['cut'] = $cut;
if (!$this->_isAllowed($dst, 'write') || !$this->_isAllowed($src, 'read')) {
return $this->_result['error'] = 'Access denied';
}
foreach ($_GET['targets'] as $hash) {
if (false == ($f = $this->_find($hash, $src))) {
return $this->_result['error'] = 'File not found' && $this->_content($current, true);
}
$this->_logContext['src'][] = $f;
$_dst = $dst.DIRECTORY_SEPARATOR.basename($f);
if (0 === strpos($dst, $f)) {
return $this->_result['error'] = 'Unable to copy into itself' && $this->_content($current, true);
} elseif (file_exists($_dst)) {
return $this->_result['error'] = 'File or folder with the same name already exists' && $this->_content($current, true);
} elseif ($cut && !$this->_isAllowed($f, 'rm')) {
return $this->_result['error'] = 'Access denied' && $this->_content($current, true);
}
if ($cut) {
if (!@rename($f, $_dst)) {
return $this->_result['error'] = 'Unable to move files' && $this->_content($current, true);
} elseif (!is_dir($f)) {
$this->_rmTmb($f);
}
} elseif (!$this->_copy($f, $_dst)) {
return $this->_result['error'] = 'Unable to copy files' && $this->_content($current, true);
}
}
$this->_content($current, true);
}
RE: Пару вопросов про Cut_Paste и Select
-
Added by Dmitry Levashov over 1 year ago
Спасибо за такую активную помощь проекту! Если не затруднит - по найденым багам создавайте тикеты http://elrte.org/redmine/projects/elfinder/issues/new
Что, впрочем не отменяет постов на форуме - другим будет понятней, что происходит.
PS коннектор под 4 мы особо не развиваем, но стараемся поддерживать в соответсвии
(1-7/7)