В визуальном редакторе CKeditor нет файлового менеджера. У его предшественника
FCKeditor был файловый менеджер, но он имеел ряд недостатков, которые мешают
полноценно работать с этим замечательным (по моему мнению) редактором.
Существует расширенный файловый менеджер CKFinder, но он платный, и лицензия для 1 сайта на момент написания статьи стоит 59$... Многовато, лучше доделать то что есть до ума.
Так что потратив недельку на разбор того как работает встроенный файловый менеджер я переделал все части, которые меня не устраивали.
Нетерпеливые сразу могут посмотреть пример →
Первым шагом был немного доработанный файловый менеджер FCKEditor v1.
Вторым — полноценный файловый менеджер FCKEditor v2.
И после того как FCKeditor стал CKeditor менеджер поменял пару строк кода и стал называться CKfsys.
Вот какие изменения я посчитал достаточными:
Функционал в пунктах 4, 5 и 6 можно отключить в config.php.
Для изменения размеров изображений используется imagemagick (качество получше) или если его нет — gd2.
Вот что было и во что все это превратилось — это выглядит так:

Требования к серверу:
Добавились следующие настройки:
// Разрешить удаление файлов и папок true/false $Config['Delete'] = true; // Делать превьюшки и разрешать изменять размеры при закачке // требует утилиту imagemagick или библиотеку gd2 // если их нет, то чтобы не выводить в интерфейсе лишние элементы установите в false $Config['ThumbCreate'] = true; // При закачке можно изменять размеры $Config['ThumbList'] = true; // Показывать превьюшки $Config['ThumbListSize'] = 100; // Размер превьюшки, вписывается в квадрат
И для хранения preview-версий в конце конфигурационного файла задается папка, задайте её и создайте (!!!) соответствующий каталог на сервере:
$Config['AllowedExtensions']['ImageThumb'] = $Config['AllowedExtensions']['Image'];
$Config['DeniedExtensions']['ImageThumb'] = $Config['DeniedExtensions']['Image'];
$Config['FileTypesPath']['ImageThumb'] = $Config['UserFilesPath'] . 'imageThumb/' ;
$Config['FileTypesAbsolutePath']['ImageThumb'] = ($Config['UserFilesAbsolutePath'] == '') ?
'' : $Config['UserFilesAbsolutePath'].'imageThumb/' ;
Помните что в целях безопасности обязательно нужно в конфигурации файлового менеджера проверять авторизованность пользователя, и только в случае если пользователь авторизован давать возможность ему пользоваться файловым менеджером.
Для этого нужно в файле CKFSYS_PATH/connectors/php/config.php определить переменную:
// SECURITY: You must explicitly enable this "connector". (Set it to "true"). // WARNING: don't just set "$Config['Enabled'] = true ;", you must be sure that only // authenticated users can access this file or use some kind of session checking. $Config['Enabled'] = empty($_SESSION['administrator'])?false:true; // Вот тут укажите свою проверку
И определите папку где будут хранится закачиваемые файлы:
// Path to user files relative to the document root. $Config['UserFilesPath'] = '/userfiles/'; // Вот тут укажите свою папку, создайте ее с правами 0777
Считаем что файловый менеждер настроен, теперь присоединяем его к редактору.
Для этого в файле CKEDITOR_PATH/config.js задаем пути к файловому менеджеру:
// CKFSYS_PATH — путь к файловому менеджеру у вас, чтото типа
// /path/to/ckeditor/plugins/filemanager, путь указывать от DOCUMENT_ROOT
CKEDITOR.editorConfig = function( config ) {
config.language = 'ru';
config.filebrowserImageBrowseUrl = 'CKFSYS_PATH/browser/default/browser.html?Type=Image&Connector=CKFSYS_PATH/connectors/php/connector.php';
config.filebrowserFileBrowseUrl = 'CKFSYS_PATH/browser/default/browser.html?Type=File&Connector=CKFSYS_PATH/connectors/php/connector.php';
config.filebrowserFlashBrowseUrl = 'CKFSYS_PATH/browser/default/browser.html?Type=Flash&Connector=CKFSYS_PATH/connectors/php/connector.php';
config.filebrowserBrowseUrl = 'CKFSYS_PATH/browser/default/browser.html?Type=File&Connector=CKFSYS_PATH/connectors/php/connector.php';
}
Редактор распространяется под лицензии GPL.
Хоть убей, все перепробовал. Выдает такое сообщение и все... В чем может быть проблема?
Хотелось бы решить эту задачку.
Обратите внимание на блок - Соединяем CKeditor и CKfsys, а именно на строку
CKFSYS_PATH — путь к файловому менеджеру у вас, чтото типа /ckeditor/plugins/filemanager
Укажите путь от DOCUMENT_ROOT
config.filebrowserImageBrowseUrl = '/admin/ckeditor/filemanager/browser/default/browser.html?Type=Image&Connector=/admin/ckeditor/filemanager/connectors/php/connector.php';
CKEDITOR.editorConfig = function(config) {
config.language = 'ru';
config.filebrowserImageBrowseUrl = 'ckeditor/plugins/filemanager/browser/default/browser.html?Type=Image&Connector=ckeditor/plugins/filemanager/connectors/php/connector.php';
config.filebrowserFileBrowseUrl = 'ckeditor/plugins/filemanager/browser/default/browser.html?Type=File&Connector=ckeditor/plugins/filemanager/connectors/php/connector.php';
config.filebrowserFlashBrowseUrl = 'ckeditor/plugins/filemanager/browser/default/browser.html?Type=Flash&Connector=ckeditor/plugins/filemanager/connectors/php/connector.php';
config.filebrowserBrowseUrl = 'ckeditor/plugins/filemanager/browser/default/browser.html?Type=File&Connector=ckeditor/plugins/filemanager/connectors/php/connector.php';
};
путь из корня сайта
admin/cheditor/plugins/filemanager/
ошибка:
The server didn't send back a proper XML response. Please contact your system administrator.
XML request error: Not Found (404)
Requested URL:
http://localhost/mramor/admin/ckeditor/plugins/filemanager/browser/default/ckeditor/
plugins/filemanager/connectors/php/connector.php?Command=GetFoldersAndFiles&
Type=Image&CurrentFolder=%2F&uuid=1305929178407
уже все пробовал менять, в js пока что новичок, что нужно исправить, что бы заработало??? (Использую ckeditor 3.4.1)
Этот коннектор недоступен. Пожалуйста проверьте файл "editor/filemanager/connectors/php/config.php"
что ему теперь не нравиться?
В данном случае как раз не выполнены все пункты по настройке.