Настройка CKEditor 4, подключение файлменеджера KCFinder

Обычно WYSIWYG редактор требуется когда необходимо написать админку, в которой обычному пользователю не знающему html, будет легко и удобно добавлять собственные тексты. Так было и в моем случае.

Скачиваем CKEditor с официального сайта: скачать ckeditor
Скачиваем бесплатный файл менеджер KCFinder: скачать kcfinder

Стандартным способом интегрируем CKEditor на сайт. Добавляем на страницу скрипт ckeditor.js (в моем случае скрипт лежит в корне сайта в каталоге ckeditor). KCFinder я распаковал в папку ckeditor, просто для удобства.
<script src="/ckeditor/ckeditor.js"></script>

Пусть на странице имеется поле textarea которое нужно заменить WYSIWYG редактором:
<textarea name="ckeditor"></textarea>
<script>
   CKEDITOR.replace( &apos;ckeditor&apos; );
</script>

Далее нам необходимо указать настройки в ckeditor для того чтоб при нажатии на кнопку «загрузить файл» или просмотреть файлы на сервере открывался KCFinder, для этого добавляем в CKEDITOR.replace следующие настройки:
CKEDITOR.replace(&apos;ckeditor&apos;,{&apos;filebrowserBrowseUrl&apos;:&apos;/ckeditor/kcfinder/browse.php?type=files&apos;,
  &apos;filebrowserImageBrowseUrl&apos;:&apos;/ckeditor/kcfinder/browse.php?type=images&apos;,
  &apos;filebrowserFlashBrowseUrl&apos;:&apos;/ckeditor/kcfinder/browse.php?type=flash&apos;,
  &apos;filebrowserUploadUrl&apos;:&apos;/ckeditor/kcfinder/upload.php?type=files&apos;,
  &apos;filebrowserImageUploadUrl&apos;:&apos;/ckeditor/kcfinder/upload.php?type=images&apos;,
  &apos;filebrowserFlashUploadUrl&apos;:&apos;/ckeditor/kcfinder/upload.php?type=flash&apos;});

В каталоге /ckeditor/kcfinder/ есть скрипт с конфигурацией config.php, там необходимо указать путь к папке в которую будут загружаться добавленные файлы (не забудьте посмотреть чтоб директория была доступна для записи).

Кажется что все работает, но есть еще несколько моментов касающихся настроек форматирования кода в CKEditor, мне например не нравится что при нажатии на клавишу enter в редакторе, текст заключается в тег <p> так же этот тег постоянно записывается когда пытаемся сохранить пустое поле с подключенным редактором. Чтоб это исправить добавляем небольшой скрипт:
if(typeof CKEDITOR !== &apos;undefined&apos;) {
 
  CKEDITOR.on( &apos;instanceReady&apos;, function( ev ) {
    // Output paragraphs as <p>Text</p>.
    ev.editor.dataProcessor.writer.setRules( &apos;*&apos;, {
      indent: false,
      breakBeforeOpen: true,
      breakAfterOpen: false,
      breakBeforeClose: false,
      breakAfterClose: true
    });
  });
}

Убрали автозаполнения тегом <p>, теперь уберем заключение текста в данный тег при нажатии на enter. Для этого допишем следующие настройки в файл конфигурации /ckeditor/config.js:
// при нажатии enter добавляем br
config.enterMode = CKEDITOR.ENTER_BR;
config.shiftEnterMode = CKEDITOR.ENTER_BR;

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

Дополнительную информацию по настройке конфигурации можно посмотреть на официальных сайтах редакторов.
Добавлено: 01 Января 2015 14:26:56 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...