Настраиваем CKEditor, чтобы редакторы не пачкали разметку.
В Drupal ниже 8 версии (которая скоро выйдет в бету), по-умолчанию нету никаких WYSIWYG редакторов, что как бы заставляет новичка впасть в недоумение. Разумеется, народ ищет модули с редакторами, и почему-то, чаще всего попадают на модуль wysiwyg, но он уныл, реально, ввиду того что он поддерживает 100500 редакторов, он работает черт пойми как. Сколько я его пробовал, никак не могу с ним ничего толкового сделать. Да и куда вам 100500 редакторов текста?
В итоге я для себя уже давненько решил, что для задачи нужен один конкретный редактор который бы покрывал все мои необходимости. После долгих переборок я остановился на CKEditor. Он самый приятный на вид, хорошо кастомизируемый, а теперь еще в ядре Drupal 8.
Установка CKEditor
- Заходим на сайт CKEditor выбираем “Full version” и качаем архив.
- На ftp сайта заходим в /sites/all/libraries (если последней нету, просто создайте) и скидываем туда нашу папку ckeditor из архива.
- Скачиваем, устанавливаем и включаем модуль CKEditor.
Настраиваем CKEditor для Filtered HTML
- В админке заходим: admin/config/content/ckeditor и жмем “Edit” у Advanced.
- В “Basic setup” должен быть выбран “Filtered HTML” или иной, который используется у вас для ввода с ограничением по тегам.
- Переходим в “Editor Appearance” и в разделе toolbar жмем “basic”. Это поставит нам базовый набор элементов.
- Сохраняем.
Для фула я не буду писать, по сути тоже самое, только очевидные изменения будут в пункте №3.
Там куча, уйма настроек: цвет редактора, оформление (замена css) и многое-многое другое. Я же остановлюсь на очень любопытной опции про HTML.
Настройка CKEditor для контент-менеджера
Контент — неотъемлемая составляющая сайта. Им можно сделать из сайта конфетку, даже если сам сайт не очень, и наоборот, если сайт конфетка, сделан профи, то его легко можно превратить в говно одним лишь контентом, что обычно и делают владельцы сайтов или нанятые ими контент-менеджеры.
Контент-менеджер — головная боль для разработчиков, и “вирус” для сайта.
В общем ад начинается когда неопытные контент-менеджеры начинают копировать текст из документа и в тупую вставлять в редактор, а затем сейв, они то думают так: “Вроде как и в ворде”.
А то что там идет целый букет таких вот вещей:
Инлайн стили, классы, обертки, шрифты намертво прописаны. А гнать то будут на разработчиков, как обычно… Типа что у нас шрифты во всех статьях разные, а что эти шрифты у меня работают, а у друга нет (когда в ворде заюзали нестандартный для систем шрифт) и т.д., я думаю многие это ощутили на себе.
И объяснить им что это ваш тупой контент-менеджер, который нихера не умеет и не может, наполняющий для галочки, чтобы срубить бабло, бесполезно. Ведь порой это их знакомые или родственники, а они всегда профи, а как иначе.
В общем я считаю что нормальный контент-менеджер должен эту грязь вычищать самолично и руками, отлично знать HTML и тогда всё будет в порядке, но такие — настоящая находка, поэтому я сейчас расскажу как рубил руки идиотам.
Для подобных неучей я создаю отдельный формат ввода, поэтому давайте и мы его создадим:
- Переходим на страницу создания нового формата: admin/config/content/formats/add
- Называем, например: Редактирование содержимого (content_editing)
- Даём права кому нужно. У меня, как правило, контент-менеджер это целая роль с запретами на всё что их руки зачешутся сломать.
- По сути они часто юзают вставку картинок и прочего, поэтому рубить им html
нельзя. Единственные фильтры что я включаю: 1. Convert line breaks into
HTML (i.e.
<br>
and<p>
) - Convert URLs into links
- Correct faulty and chopped off HTML
Всё, дальше бремя мы скинем на CKEditor.
- Заходим в настройки CKEditor: admin/config/content/ckeditor
- Создаем новый профиль.
- В “Basic setup” даём ему соответствующее название и выбираем созданный нами формат ввода.
- Переходим во вкладку “Editor Appereacne” и загружаем “Basic” (им опасно давать что-то больше этого).
- В разделе “Cleanup and output” надо подправить “Font formats” — это те теги, что они смогут выбирать в качестве стиля, я делаю так: p;h2;h3;h4;h5;h6 — т.е. убираем div, address, pre и h1. Иначе они и ими нагадят. Я считаю что больше для текста ничего им давать не нужно. Основные заголовки и параграф — всё.
В результате копипаста взамен того что было уже получаем чистенький код.
Я и сам пользуюсь таким редактором, ведь это удобно. Просто для себя я еще выношу кнопочку “Источник” чтобы я мог напрямую править html, по необходимости.
Для особо одаренных
Бывают такие что и в таком варианте умудряются запоганить, поэтому в настройках CKEditor в разделе “Advanced options” включим “Force pasting as plain text” — т.е. что бы вы не вставляли в данный редактор, он его перегонит в обычный текст. Весь CSS, теги, вообще всё вырубается на корню. Пусть контент-менеджер поработает и поправит руками, зато код будет чистый. А там править то смехота.
Комментарии
Вы сами и ответили на свой вопрос. Чтобы пользоваться последними версиями редакторов надо ставить дев, которые ни в коем случае нельзя ставить клиенту, чуть какая дыра, вы самолично вызовитесь всем всё проапгредить?
А также, зачем такой зоопарк редакторов на сайте? Должен быть один единственный. Не нужен CKEditor -- ставим другой, но ставить модуль который поддерживает 100500 редакторов а использовать 1 -- глупо. Это всё равно что юзать вьюс, чтобы создать блок и в нем вывести обычный, статический текст.
Да и как клиенту объяснять, что тут такой редактор, тут вот такой, а там и вовсе третий. Да ну нафиг. Я недавно сайт отдал людям, так они с облегчением вздохнули что все материалы на сайте добавляются по одному принципу, форма добавления универсальная только появляются соответствующие поля.
Спасибо. все доходчиво написано.
ставил перед этим wysiwyg. Это просто корявый выкидыш.
Мне бы поставить CKEditor на простой хтмл сайт, сможете помочь?
Если да, напишите на igor888@list.ru cnjbcjvnm стоимость установки
Спасибо за статью. А какой плагин порекомендуете для того, что бы CKEDITOR хорошо и качественно делал аплоад картинок?
У меня при установке получается ошибка, сайт вообще не открывается пока не удалю все папки с Едитором.
И что мне с этим делать? Друпал 7. + есть Визивиг.
Какая-то функция не отрабатывает, а точнее она отсутствует. Надо логи сервера смотреть. Там будет указана отсутствующая функция.
Помогите, пожалуйста. Есть простой вроде бы вопрос, но не могу найти ответ. У меня есть базовые знания HTML CSS и желание зделать красивый контент, а не просто изображение + текст, причем дизайн адаптивный и все это должно сжиматься и растягиваться так как положено. Установлена ваша сборка в ней есть CKEditor И вот вопрос где прописывать стили? Прямо в редакторе указывать теги и стили? Или в редакторе присваивать класы, а стили приписывать в style.css? Просто все гайды по созданию страниц заканчиваються нажатием кнопки "создать страницу". Заранее спасибо.
Подскажите как добаввить в Full HTML дополнительные кнопки? Например, выравнивание текста по центру?
Спасибо заранее.
Здравствуйте. Не могу понять, зачем устанавливать модуль а потом ещё и кидать в лайбрари обычную версию редактора. Обычно в лайбрари закидывают если используют визивиг. Поясните пожалуйста.
Здравствуйте! Вы случайно, не в курсе каким образом бинтовать CKEditor на событие клика? То есть, кликаем на кнопку и фокус падает на окно данного редактора.
подскажите пожалуйста как в ckeditor убрать из кода мусорные спецсимволы ... уже всё облазил...буду признателен за помощь
А поконкретнее? Я просто уже давно особо CKeditor не настриваю. На Drupal 8 он итак максимально чисто всё из коробки поддерживает. Что именно смущает?
Почему такая нелюбовь к wysiwyg? Нормальный модуль, пользуюсь им уже 3 года. В dev версии поддерживает CKEditor 4ый версии.