Ckeditor описание. Настройка CKEdit или как убрать лишние значки на панели

27.06.2020

CKEditor это готовый для использования текстовый рекдактор HTML, созданный для упрощения создания содержания веб страниц. Это WYSIWYG редактор который предоставляет функции редактирования текста непосредственно вашим веб страницам.

CKEditor это приложение с открытым исходным кодом, то есть оно может быть измнено по вашему желанию. Его полезность приходит от активного общества, которое не прекращает развитие приложений с бесплатными add-ons и прозрачным процессом развития (transparent development process).

3- Download CKEditor

У вас есть 4 варианта скачивания CKEditor .

Результат скачивания:

Можете посмотреть примеры CKEditor в папке samples :

4- Базовые примеры:

Все примеры данной статьи содержатся в папке samples в CKEditor который вы скачали. Но я попытаюсь сделать это легче чтобы вам далось легче.

Создать папку myexamples , примеры данной статьи будут находиться в этой папке.

4.1- Заменить элементы Textarea используя JavaScript

Простой пример использование CKEditor.replace(..) чтобы заменить через CKEditor .

replacebycode.html

Replace Textarea by Code Replace Textarea Elements Using JavaScript Code

Hello CKEditor

CKEDITOR.replace("editor1");

Смотрите пример:

Результаты запуска примера:

4.2- Заменить элементы textarea классом name

С имеющие атрибут name, и class ="ckeditor" будет автоматически заменен CKEditor-ом .

Text

replacebyclass.html

Replace Textareas by Class Name Replace Textarea Elements by Class Name

Hello CKEditor

Запуск примера:

4.3- Создать CKEditor с jQuery

Пример создания CKEditor используя JQuery .

jQuery Adapter — CKEditor Sample $(document).ready(function() { $("#editor1").ckeditor(); }); function setValue() { $("#editor1").val($("input#val").val()); } Create Editors with jQuery

Hello CKEditor

{ config.LoadConfig(); }); //определяем конфигурацию для каждого отдельного запроса //создаем экземпляр коннектора var connector = connectorBuilder.Build(connectorFactory); //добавляем коннектор в pipeline app.UseConnector(connector); } } }

На этом настройка серверной части завершена. Теперь интегрируем CKFinder-клиент с CKEditor на странице.

@using (Html.BeginForm("Index", "Home", FormMethod.Post)) { } document.addEventListener("DOMContentLoaded", function (event) { var editor = CKEDITOR.replace("content1"); CKFinder.setupCKEditor(editor); });

Если все скрипты подключены правильно и на стороне сервера коннектор настроен, то мы получим доступ к файловой системе через CKFinder из браузера пользователя.

В зависимости от настроек коннектора в файле Web.config мы можем менять разрешения на манипуляции с файлами и папками (создание, перемещение и т.д.).

Отмечу, что мы рассмотрели только базовую конфигурацию CKFinder. В дополнение к этому можно прикрутить логирование, кэширование файлов, различные плагины (например, добавлять водяной знак к загруженным изображениям) и т.д. Более подробно об этом можно почитать в официальной документации.

→ WYSIWYG CKeditor

Наверняка многие разработчики как минимум слышали о существовании HTML - редакторов, встраиваемых в веб страницы. Хочу представить Вам пожалуй самый продвинутый на сегодняшний день WYSIWYG . Для непосвященных опишу в двух словах о чем идет речь. Если Вы или Ваши клиенты хотите своими руками редактировать контент сайта, а познавать основы html нет времени или желания - то Ckeditor то что нужно.

Ранее продукт назывался FCKeditor , но из-за нездоровых ассоциаций у англичан связанных с аббревиатурой FCK (создатель проекта Frederico Calderia Knabben ), редактор был переименован в Ckeditor . Кроме названия в новой версии исчезли api для работы с файлами на perl и python , по крайней мере в бесплатном дистрибутиве. Разработчики предлагают несколько тарифных планов по поддержке и возможно на этих условиях вам предоставят не только их. На данный момент по умолчанию есть asp и php . Я же в своей работе использую perl и буду писать интерфейс сам. Позже выложу. А в целом проект имеет плагинную архитектуру, которой довольно легко управлять если разбираетесь в JS .

Скачать WYSIWYG ckeditor можно здесь или на сайте www.ckeditor.com .

Так он собственно выглядит. Правда я вам представил немного урезанную версию, но от полного комплекта почти не отличается.

Подключение и настройка ckeditor Подключение по умолчанию

Подключается и настраивается ckeditor очень легко.

1 . Скачиваем ckeditor и распаковываем в корень сайта, CMS или другой системы. Разработчики не рекомендуют начинающим программистам переименовывать каталоги и файлы во избежание конфликтов в редакторе. Если все оставить как есть то запуск по умолчанию - минутное дело.

2 .В коде страницы грузим основной код и вставляем элемент textarea . Причем элементов textarea может быть несколько, главное им назначить разные идентификаторы.

3 .Инициализация на Ваш вкус, но лучше делать после того как объектная модель документа будет готова.

Для Jquery :

$.noConflict(); jQuery(document).ready(function($) { CKEDITOR.replace("textID",{}); });

Для Ext JS :

Ext.onReady(CKEDITOR.replace("textID",{}));

Древний способ:

Или непосредственно перед закрывающим тегом

CKEDITOR.replace("textID",{});

Дополнительная настройка

Для изменения настроек по умолчанию в ckeditor предусмотрен некоторого рода конфигурационный файл config.js , который лежит по адресу /ckeditor/config.js . Он содержит в себе настроечный хеш.

Вот пример того который используется для демо версии на данной странице:

CKEDITOR.editorConfig = function(config) { config.skin = "kama"; config.uiColor = "#E0E0E0"; config.language = "ru"; config.fullPage = false; config.height = 200; config.removePlugins = "resize,about,save"; };

config.skin - интерфейс. Возможны три варианта: kama , v2 , office2003 . По умолчанию kama .

config.uiColor - цвет интерфейса. Работает только для kama .

config.language - Язык интерфейса.

config.fullPage - оплетка для редактируемого документа. Если установлено true то редактируемая область будет содержать полноценный html документ, если false - только контент.

config.height - высота редактируемой области в пикселах. Аналогично для ширины.

config.removePlugins - Список кнопок (плагинов), которые нужно отключить. Например: resize - это благодаря которой область редактора можно растянуть как угодно, удерживая мышью нижний правый угол, save - кнопка сохранить.

Table of contents

When creating an editor in your page, it is possible to set up configurations that change many of its aspects. For example:

ClassicEditor .create(document .querySelector("#editor" ), { toolbar : [ "heading" , "|" , "bold" , "italic" , "link" , "bulletedList" , "numberedList" , "blockQuote" ], heading : { options : [ { model : "paragraph" , title : "Paragraph" , class : "ck-heading_paragraph" }, { model : "heading1" , view : "h1" , title : "Heading 1" , class : "ck-heading_heading1" }, { model : "heading2" , view : "h2" , title : "Heading 2" , class : "ck-heading_heading2" } ] } }) .catch(error =>

As you can see, configurations are set by a simple JavaScript object passed to the create() method.

Removing features

Builds come with all features included in the distribution package enabled by default. They are defined as plugins for CKEditor.

In some cases, you may need to have different editor setups in your application, all based on the same build. For that purpose, you need to control the plugins available in the editor at runtime.

In the example below Heading and Link plugins are removed:

// Remove a few plugins from the default setup. ClassicEditor .create(document .querySelector("#editor" ), { removePlugins : [ "Heading" , "Link" ], toolbar : [ "bold" , "italic" , "bulletedList" , "numberedList" , "blockQuote" ] }) .catch(error => { console .log(error); });

Be careful when removing plugins from CKEditor builds using config.removePlugins . If removed plugins were providing toolbar buttons, the default toolbar configuration included in a build will become invalid. In such case you need to provide the updated toolbar configuration as in the example above.

List of plugins

Each build has a number of plugins available. You can easily list all plugins available in your build:

ClassicEditor.builtinPlugins.map(plugin => plugin.pluginName);

Adding features Adding complex features

As CKEditor builds do not include all possible features, the only way to add more features to them is to create a custom build .

Adding simple (standalone) features

There is an exception to every rule. Although it is impossible to add plugins that have dependencies to @ckeditor/ckeditor5-core or @ckeditor/ckeditor5-engine (that includes nearly all existing official plugins) without rebuilding the build, it is still possible to add simple, dependency-free plugins.

import ClassicEditor from "@ckeditor/ckeditor5-build-classic" ; function MyUploadAdapterPlugin ( editor ) { editor.plugins.get("FileRepository" ).createUploadAdapter = function ( loader ) { // ... }; } // Load the custom upload adapter as a plugin of the editor. ClassicEditor .create(document .querySelector("#editor" ), { extraPlugins : [ MyUploadAdapterPlugin ], // ... }) .catch(error => { console .log(error); }); Toolbar setup

In builds that contain toolbars an optimal default configuration is defined for it. You may need a different toolbar arrangement, though, and this can be achieved through configuration.

Each editor may have a different toolbar configuration scheme, so it is recommended to check its documentation. In any case, the following example may give you a general idea:

ClassicEditor .create(document .querySelector("#editor" ), { toolbar : [ "bold" , "italic" , "link" ] }) .catch(error => { console .log(error); });

The above is a strict UI-related configuration. Removing a toolbar item does not remove the feature from the editor internals. If your goal with the toolbar configuration is to remove features, the right solution is to also remove their respective plugins. Check above for more information.

Listing available items

You can use the following snippet to retrieve all toolbar items available in your editor:

Array .from(editor.ui.componentFactory.names());