Файловый менеджер - загрузка файлов для CKEditor 4.4.4

7547
Хороший файловый менеджер и загрузчик файлов для редактора CKEditor 4.4.4 ICMS 2.11.

Пожалуй лучшего решения на сегодняшний день для меня это менеджер
KCFinder автор Pavel Tzonkov. Поддержка сессий, защита директорий,
обширные настройки и типы файлов, их проверка , возможность интегрировать как в CK , так и TinyMCE,
русский-украинский и др языки , лицензия, бесплатность.. документация . Мне понравилось все.

Интеграция с редактором CKEditor для InstantCms выполняется одним росчерком в файле .

1) Заходим в папку wysiwyg/ckeditor/ и открываем файл config.js. В самом конце, перед символом };
вставляем код:

Код PHP:
  1. config.filebrowserBrowseUrl = '/kcfinder/browse.php?opener=ckeditor&type=files';
  2. config.filebrowserImageBrowseUrl = '/kcfinder/browse.php?opener=ckeditor&type=images';
  3. config.filebrowserFlashBrowseUrl = '/kcfinder/browse.php?opener=ckeditor&type=flash';
  4. config.filebrowserUploadUrl = '/kcfinder/upload.php?opener=ckeditor&type=files';
  5. config.filebrowserImageUploadUrl = '/kcfinder/upload.php?opener=ckeditor&type=images';
  6. config.filebrowserFlashUploadUrl = '/kcfinder/upload.php?opener=ckeditor&type=flash';
2) Файл класса редактора wysiwyg/ckeditor.wysiwyg.class.php
Код PHP:
  1.  
  2. <?php
  3. class cmsWysiwygCkeditor{
  4. function __construct(){}
  5. public function displayEditor($field_id, $content=''){
  6.  
  7. $lang = cmsConfig::get('language');
  8. $user = cmsUser::getInstance();
  9. cmsTemplate::getInstance()->addCSS('wysiwyg/ckeditor/samples/sample.css');
  10. cmsTemplate::getInstance()->addJS('wysiwyg/ckeditor/ckeditor.js');
  11.  
  12. $dom_id = str_replace(array('[',']'), array('_', ''), $field_id);
  13.  
  14. echo html_textarea($field_id, $content, array('id'=>$dom_id));
  15.  
  16. ?><script type="text/javascript" >
  17.  
  18. <?php if ($user->is_admin) { ?>
  19.  
  20. $(document).ready(function(){
  21. CKEDITOR.replace('<?php echo $dom_id; ?>',{
  22. });
  23. });
  24.  
  25. <?php } ?>
  26. </script>
  27. <?php
  28. }
  29. }
  30.  
$user->is_admin только для тестирования админа.
3)Скачать релиз KCFinder 3.12
Разместить папку kcfinder в корне сайта ( можно размещать в любой директории-соответственно
указав путь в конфигурации вставляемой в config.js

4) немного правим конфиг KCFinder открываем файл ./kcfinder/conf/config.php
и включаем менеджер установив 'disabled' в false
Код PHP:
  1. // GENERAL SETTINGS
  2.  
  3. 'disabled' => false,
Для нанесения водяных знаков изменяем 'watermark'
Код PHP:
  1.  
  2. 'watermark' => array('file'=>'path/domen/images/watermark.png','left'=>30,'top'=>30),
  3.  
Где file=путь к изображению, left=отступ от левого края, top=отстут от верхнего края.
Файлы после загрузки располагаются в директории /kcfinder/
в папке images большие изображения в папке ..thumbs. миниатюры.
Размер и качество выставляются в конфигурации.
Максимальных размер загружаемого изображения
Код PHP:
  1.  
  2. 'jpegQuality' => 90, //качество
  3. 'maxImageWidth' => 800,// максимальный ширина и высота пережатого изображения
  4. 'maxImageHeight' => 800,
установка в 0 сохранит первоначальный размер.
Изображения миниатюр
code=php]
'thumbWidth' => 100, 'thumbHeight' => 100,[/code]
Возможность выбора библиотек обработки изображений
Код PHP:
  1.  
  2. //'imageDriversPriority' => "imagick gmagick gd",
  3. 'imageDriversPriority' => "gd",//выбрана GD библиотека
  4.  
Возможность конфигурации загружаемых типов файлов
Код PHP:
  1. 'files' => ""// txt, или другие,
  2. 'flash' => "swf",//флеш
  3. 'images' => "*img",/изображения
только флеш и изображения.
Подробная документация на сайте разработчика
Настройки безопасности документация
Предупреждение! Не используйте данный материал в этом виде, на рабочих проектах.
Файлы browse и upload созданы для демонстрации работы, и к ним есть прямой доступ с адресной строки....нальют и затопят!
Менеджер пишет сессии и кукисы , остается связать авторизацию пользователя - распределить права, закрыть - открыть доступ к менеджеру
В директории.integration есть два интеграционных файла для систем drupal и BolmerCM.
Протестируйте пожалуйста. И выскажите свои мнения!

Есть намерения о дальнейшей работой над единым файловым менеджером и загрузчиком для всех редакторов системы.


###############################

Все спасибо, вешайте на этот счет!
ЯД 410012594149116

olg-lubimova КОШЕЧКА yandex.ru
##############################
Загрузка IMG для CKEditor 4 ICMS 2.1.1 | TinyMce 4.1.4 - пятый редактор для ICMS 2.1.1
Теги: редактор
Комментарии (11)
Aryuts 1 сентября 2014 в 01:24 +3
Опередили меня. v Хотел после создания блога написать о нем. Ну, чтож будем тестировать. Однозначно спасибо.
SpaceSel 1 сентября 2014 в 09:34 +2
Будем надеяться, что разработчики обратят на это внимание и в последующей версии мы получим нормальный редактор.
sotastroy 1 сентября 2014 в 21:12 0
Соглашусь, хотя пока 2-ку не тестировал и редактор не изучал. Но проблемы первой ветки очень не хочется иметь во второй..
r2 2 сентября 2014 в 12:16 +3
Куда ложатся файлы при загрузке?
Файлы пережимаются? Переименовываются?

У всех подобных "менеджеров" есть обратная сторона - повальная дырявость.
oll 2 сентября 2014 в 19:28 0
Настройка размещения файлов после загрузки в конфигурационном файле kcfinder/conf/config.php
Код PHP:
  1.  
  2. // GENERAL SETTINGS
  3.  
  4. 'disabled' => false,
  5. 'uploadURL' => "upload",
  6. 'uploadDir' => "images",
  7. 'theme' => "default",
Стандартная директория ICMS upload / images .
На данном этапе (архив от разработчика) дырявость ,это входные файлы инициализирующие классы,
Посмотрю отзывы , он используется в drupal
Есть два пути решения. Использовать сборку от разработчика.
И второй путь это ( использовать основные классы browse in upload ) в составе компонента "файловый менеджер и загрузчик".
oll 2 сентября 2014 в 19:51 0
Поправкаю
.Выше указано для директория kcfinder/upload/

Для стандартной директории Icms upload так
Код PHP:
  1.  
  2. 'uploadURL' => "../upload",
  3. 'uploadDir' => "",
jorgovich 10 марта 2015 в 08:45 0
Что это за дырявость и чем чревата, можно где нибудь почитать, мне нужно например чтоб грузили фото в материалы только проверенные пользователи (контенщики, админы, модераторы)? Т.е редактор больше для людей не владеющими знаниями в верстке и хтмл, но умеющими работать с редакторами грузить картинки, вставлять таблицы, видео. В tinymce принцип загрузки точно так же или нет? И собственно напрашивается вопрос как обходят эту дырявость в других системах?
letsgo 17 сентября 2014 в 19:36 -3
Не работает. Где то пропущено видимо что то.
oll 17 сентября 2014 в 19:50 0
Очень не рекомендую использовать это решение, Это более стартовый инструмент для разработчика, сравнить кто чем реализует высшие духовные потребности реализаций решений. Это возможно выполнить более простыми и безопасными методами системы.Чем и занимаюсь.
@sferoid 2 октября 2019 в 21:22 0
День добрый!

Просьба подскажите как kcfinger защитить сеанс, написал вот так в config.php, но просто выбрасывает, а оставлять открытым как то боязно (инстант 2.12)

<?php
session_start();
require_once '../../../bootstrap.php';
$user = cmsUser::getInstance();
$on = true;
if (cmsUser::isAdmin()) { $on = false; }
$_CONFIG = array(
// GENERAL SETTINGS
Дмитрий 3 июня 2015 в 13:57 0
Всё работает. Но есть ошибка в описании - 2) Файл класса редактора wysiwyg/ckeditor.wysiwyg.class.php
Правильно будет так: 2) Файл класса редактора wysiwyg/ckeditorw/ysiwyg.class.php

Ещё я себе в ckeditor интегрировал иппод - http://uppod.ru/help/q=ckeditor