RESPONSIVE filemanager для Modx Evo (upd. 23.07.17)

Есть такой достойный бесплатный web file manager — RESPONSIVE filemanager. Сайт официальный сайт.
Чем он лучше kcfinder? сразу спросите вы.
Да много чем. Адаптивный под разные экраны, всякие фичи с редактированием картинок, аяксы и прочие плюшки, фильтр, сортировка, можно скрыть нужные папки и тд… Проще посмотреть демо на офф. сайте. Там же почитать GREAT FEATURES. Я нашел только один недостаток, нет массового выделения файлов для удаления. Но зато есть хороший фильтр.



Я его немного допилил для Evo. Добавил проверку на авторизацию менеджера, прикрутил работу с TinyMCE 4, чтобы в Tiny при клике на ссылку можно было выбирать файлы из папки files, а при клике на иконку добавления картинки можно было выбирать картинку из папки images.

Установка несложная, но ручная(только для Tiny MCE 4).

скачать архив

1. В скачиваемом архиве папка filemanager. Копируем эту папку в /manager/media/browser/
и создаем плагин для совместимости работы файл-менеджера с EVO. За что респект человеку 64j

плагин — ResponsiveFileManager

//события 
/*
OnDocFormRender
OnRichTextEditorInit
OnUserFormRender
OnWUsrFormRender
OnModFormRender
*/

// author - 64j
$e = &$modx->Event;
switch($e->name) {
	case 'OnUserFormRender':
	case 'OnWUsrFormRender':
		
		if($modx->config['which_browser'] == 'filemanager') {

			$output = '
				<script>
					function BrowseServer() {
						var w = screen.width * 0.5;
						var h = screen.height * 0.5;
						document.userform.photo.id = "photo";
						OpenServerBrowser(\'' . MODX_MANAGER_URL . 'media/browser/' . $modx->config['which_browser'] . '/browser.php?Type=images&field_id=photo&popup=1&relative_url=1\', w, h);
					}
				</script>
				';

			$e->output($output);
		}
		
		break;
		
	case 'OnModFormRender':
		
		if($modx->config['which_browser'] == 'filemanager') {

			$output = '
				<script>
					function BrowseServer() {
						var w = screen.width * 0.5;
						var h = screen.height * 0.5;
						document.mutate.icon.id = "icon";
						OpenServerBrowser(\'' . MODX_MANAGER_URL . 'media/browser/' . $modx->config['which_browser'] . '/browser.php?Type=images&field_id=icon&popup=1&relative_url=1\', w, h);
					}
				</script>
				';

			$e->output($output);
		}
		
		break;
		
	case 'OnDocFormRender':

		if($modx->config['which_browser'] == 'filemanager') {

			$output = '
				<script>

					function OpenServerBrowser(url, width, height ) {
						var iLeft = (screen.width  - width) / 2 ;
						var iTop  = (screen.height - height) / 2 ;

						var sOptions = \'toolbar=no,status=no,resizable=yes,dependent=yes\' ;
						sOptions += \',width=\' + width ;
						sOptions += \',height=\' + height ;
						sOptions += \',left=\' + iLeft ;
						sOptions += \',top=\' + iTop ;

						var oWindow = window.open( url, \'FCKBrowseWindow\', sOptions ) ;
					}

					function BrowseServer(ctrl) {
						lastImageCtrl = ctrl;
						var w = screen.width * 0.5;
						var h = screen.height * 0.5;
						OpenServerBrowser(\'' . MODX_MANAGER_URL . 'media/browser/' . $modx->config['which_browser'] . '/browser.php?Type=images&field_id=\'+ctrl+\'&popup=1&relative_url=1\', w, h);
					}

					function BrowseFileServer(ctrl) {
						lastFileCtrl = ctrl;
						var w = screen.width * 0.5;
						var h = screen.height * 0.5;
						OpenServerBrowser(\'' . MODX_MANAGER_URL . 'media/browser/' . $modx->config['which_browser'] . '/browser.php?Type=files&field_id=\'+ctrl+\'&popup=1&relative_url=1\', w, h);
					}

					function responsive_filemanager_callback (a) {
						var el = document.getElementById(a);
						if(el) {
							SetUrlChange(el)
						}
					}

				</script>
				';

			$e->output($output);
		}

		break;

	case 'OnRichTextEditorInit':

		if($modx->config['which_browser'] == 'filemanager') {

			$output = '
				<script>
					if(config_tinymce4_custom) {
						config_tinymce4_custom.external_filemanager_path = "/' . MGR_DIR . '/media/browser/filemanager/";
						config_tinymce4_custom.filemanager_title = "Responsive Filemanager";
						config_tinymce4_custom.external_plugins = { "filemanager" : "/' . MGR_DIR . '/media/browser/filemanager/plugin.min.js"};
					}
				</script>
				';

			$e->output($output);
		}
		
		break;
}


Раньше приходилось делать много правок, не очень дружило с MultiTV, теперь это в прошлом :)

39 комментариев

avatar
С учетом того что сейчас добавили возможнотсь работы с разными фаил менедежрами то супер :)
надо будет закинуть в репозиторий и его и elfinder
avatar
А в админке будет возможность переключения между ними?
На подобии такого как сейчас переключение WYSIWYG редактора.
avatar
Если у вас Evo последних версий, то будет (в описании как раз скрин переключения). И там еще есть правка файла /manager/includes/tmplvars.inc.php, но она не помешает переключаться снова на kcfinder. А если старая версия Evo, то только замена (переименование папки mcpuk).
avatar
а в чем может быть проблема, во вложенных папках нет превью?
avatar
А если нажать иконку рефреш справа вверху, появляются?
avatar
нет, версия modx 1.2-d9.0.4
avatar
А вообще картинки где хранятся, assets/images здесь?
avatar
в этой превью показывает, а вот во вложенных в /images нет
avatar
проверю у себя на новой версии двигла, отпишусь.
Комментарий отредактирован 2016-12-24 15:47:44 пользователем Grinyaha
avatar
здесь assets/cache/filemanager/ все картинки есть
avatar
У меня все норм работает. И на сервере и локально под опенсервером. Давно качал архив?
avatar
Заменил, скачай, проверь. Я там мелкие баги правил.
avatar
Все гуд, спасибо
avatar
блин еще бага prntscr.com/dy7yfh не хватает памяти
avatar
Тоже на одном сайте такую багу словил.
закомментируй строки 232-238 в upload.php
// not enough memory
			/*if ($memory_error)
			{
				unlink($targetFile);
				response(trans("Not enought Memory").AddErrorLocation(), 406)->send();
				exit();
			}*/
avatar
ага, решило, спасибо
avatar
Еще бага при использовании картинок с phpthumb prntscr.com/dydgry а с этим как решить?
avatar
Не понял, как бага вызывается? Кстати обнови версию, залил сегодня новую. Но старую оставь, вдруг новая еще больше багов :)
avatar
tv — картинка, загружается все норм, в шаблоне обработка идет через phpthumb, подгоняю под свои размеры, если картинку грузить старым менеджером, то все гуд, а вот на этом вылазит бага
avatar
А гет-параметров нет у адреса картинки?
avatar
в смысле при обработке phpthumb или где?
avatar
да, путь в phpthumb до картинки с гет параметрами идет или нет?
avatar
вот вызов imgкартинка тянется из mm_ddMultipleFields('work', '', '', 'field,text', 'Изображение, Подпись');
avatar
Так, а причем тогда filemanager?
avatar
на сколько я понял, при загрузке файлов, не все дописывается из параметров, при использовании старого файлового картинки обрабатываются корректно. вот вызов
[[phpthumb? &input=`[+col0+]` &options=`w=350,h=350,zc=C,bg=FFFFFF`]]
Комментарий отредактирован 2017-01-25 03:36:02 пользователем DiTso
avatar
Проверил на openserver локально работу с phpthumb все хорошо. Правда проверил уже на последней версии. Качни обновление :)
avatar
приветствую, dmi3yy добавил изменяемые файлы в релиз, может упакуешь менеджер для установки через экстраз или Package Manager ну и можно убрать с «установка», править ручками ))
Комментарий отредактирован 2017-04-30 11:35:47 пользователем DiTso
avatar
И всего-то 2 плюса на пост за такую работу… эхх, ребята… :)
avatar
Потому что за счет жесткой привязки к папке manager и к корню сайта вроде путей /assets/images/ использование данной штуки крайне ограничено :)
avatar
Аааа… ну это переделать несложно :)
avatar
Ну так если бы это хотя бы все на гитхабе повешено было, чтобы можно было предметно порешать вопросы со ссылками и PR — был бы другой разговор ))))
avatar
Grinyaha , мы требуем прилюдного повешения Responsive filemanager!!! на Гитхабе! :D
avatar
Подскажите пожалуйста можно ли настроить фильтр по умолчанию на «список» + сортировка по дате? c2n.me/3KzCu5r.jpg Если да, то как? Нигде не могу найти похожие статьи/ответы…
avatar
Жаль — транслитерации файлов нет…
Спецсимволы не обрабатываются…
avatar
Все есть, надо было смотреть в config…
Grinyaha — cупер!
avatar
Единственное, что осталось непонятным, как настроить качество (степень сжатия) генерируемых Preview
avatar
Установка упростилась!!! Поправил всю статью.
avatar
Надо бы в екстрас добавить, хорошая вещь. Спасибо за проделанную работу.
avatar
Начиная с версии EVO 1.3.6 в TinyMCE проблема — при клике на картинку адрес картинки не добавляется в диалоговое окно, открывается изображение для просмотра…
Firebug говорит что ошибка в js-скрипте
Комментарий отредактирован 2017-11-12 20:41:17 пользователем kalina
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.