О настройке интерфейса редактора CKeditor 4.x.
Предупреждение.По многочисленным сообщениям, у данного редактора возникают конфликты с Универсальным Каталогом. Конфликт заключается в том, что из контента вырезаются все HTML-теги форматирования, и на страницу попадает только неотформатированный текст. Причина не в редакторе и не в УК, причина в версии php, поскольку на Денвере эта связка ckeditor+УК работает. Просьба заинтересованным лицам уделить внимание этой проблеме. Если кто-то может помочь, пишите мне в личку, я укажу точку в УК, в которой возникает трабла. Если ничего не найдем, можно пойти по тому варианту, который избрал я — написал костыль к УК. Хоть и некрасиво, но работает.
Для подключения этих конфигов к плагину следует изменить в файле plugins/p_ckeditor/plugin.php значение переменной $conf. На 54 строчке ей присваивается значение по умолчаниюНиже пишем: И строчки (тут я думаю, сами сообразите) которые присваивают переменной $conf значения editor или moder, если юзер относится к группе редакторов или модераторов. Например, на свежеустановленном сайте id групп у вас такие: 7 — у редакторов и 9 — у модераторов. Если вы id групп не меняли, можете сделать так: Естественно, это не единственно возможный способ присвоить переменной значение, можете сделать так, как вам удобно.
Для того, чтобы включить ВСЕ секции и ВСЕ кнопки надо в конфиге написать такой код:
Каждая секция начинается с name и содержит имя секции, например, name: 'editing'. Убрав секцию из конфига, вы убираете с интерфейса редактора секцию целиком. Будте осторожны с последней секцией: если вы ее уберете, не убрав запятой с предпоследней, у вас эдитор просто выключится.
Перенос строки происходит с помощью кода '/'
Каждая секция содержит перечисление кнопок. Этот список начинается с items и внутри фигурных скобок заключает имена кнопок, поддерживаемых эдитором. Если вы добавите кнопку, она отобразиться, но работать не будет, поскольку надо в код эдитора добавлять для нее действие. Зато, убрав кнопку из секции, вы ненужную кнопку просто выключаете.
Если перенести в конфиге имя кнопки из одной секции в другую, при запуске эдитора вы увидите кнопку на новом месте интерфейса.
Внутрь секции можно вставить визуальный разделитель между кнопками, вставив код '-'.
Пользуясь этими правилами, вы легко настроите конфиги для любого юзера. Оставьте им те кнопки, которые, по вашему мнению, им нужны и пусть пользуются.
Еще один способ отключить ненужные кнопки в конфиге, это перечислить их названия в методе config.removeButtons, например:Даже если названия кнопок перечислены в массивах config.toolbar или config.toolbarGroups, при упоминании в методе config.removeButtons кнопка отключается.
1. Идем на сайт производителя редактора и открываем страничку skins
2. Выбираем тему и щелкаем по картинке-превьюшке, которая показывает внешний вид интерфейса. Вас перебросит на страничку этого скина, где есть кнопка "Download".
3. Жмете на эту кнопку и указываете, куда сохранить архив.
4. В архиве лежит папка с именем темы редактора. Распаковываете архив.
5. Перебрасываете папку с темой в папку эдитора plugins/p_ckeditor/editor/skins/
6. Идете в админку Дополнения->Плагины, ищите свой плагин и жмете на его шестеренку. Попадаете в админку плагина.
7. В поле "Тема редактора" прописываете имя темы редактора. Она совпадает с именем папки, которую вы только что загрузили.
8. Жмете на кнопку "Сохранить"
9. Открываете для редактирования любую статью и наслаждаетесь своей заоблачной крутостью по смене тем редактора)))
Удачи в программировании!
Причина написания этой заметки
Давно хотел перепостить свои комменты, сделанные мной на этом ресурсе. Автор этого плагина — Feodor, так что все лавры должны принадлежать ему. Я лишь дополняю его материал своей информацией.О плагине p_ckeditor
Плагин устанавливается на iCMS v.1.10.3 без проблем, содержащийся в нем эдитор прекрасно работает. Этот эдитор более продвинут, чем штатный, который был неоднократно замечен в вырезании тегов, которые не он сам создал.(этакий ревнивец) . Новый эдитор предлагает больше возможностей для редактирования и меньше загрязняет код, чем штатный. У него в комплекте четыре темы оформления (moono, moono-dark, ozone, silver), можете выбрать ту, которая вам больше по вкусу, или сотворить свою. По умолчанию прописана moono, вы можете переключить тему из админки плагина, прописав ее название в поле "Тема редактора". Если сотворите еще одну, не забудьте поделиться!Предупреждение.По многочисленным сообщениям, у данного редактора возникают конфликты с Универсальным Каталогом. Конфликт заключается в том, что из контента вырезаются все HTML-теги форматирования, и на страницу попадает только неотформатированный текст. Причина не в редакторе и не в УК, причина в версии php, поскольку на Денвере эта связка ckeditor+УК работает. Просьба заинтересованным лицам уделить внимание этой проблеме. Если кто-то может помочь, пишите мне в личку, я укажу точку в УК, в которой возникает трабла. Если ничего не найдем, можно пойти по тому варианту, который избрал я — написал костыль к УК. Хоть и некрасиво, но работает.
Настройка интерфейса редактора.
Разный вид интерфейса для разных пользователей
Например, вы решили дать возможность редактирования статей трем группам пользователей. Пусть это будут админы, редакторы и модераторы. Однако вы считаете нужным дать каждому разные возможности редактирования. Для этого вы создаете в папке plugins/p_ckeditor/editor/ три файла: admin_config.js, editor_config.js и moder_config.js. Содержание этих файлов аналогично и будет рассмотрено чуть позже. В стандартном плагине, который вы скачали, два файла уже есть — это admin_config.js и user_config.jsДля подключения этих конфигов к плагину следует изменить в файле plugins/p_ckeditor/plugin.php значение переменной $conf. На 54 строчке ей присваивается значение по умолчанию
$conf = 'user';
if ($inUser->is_admin) $conf = 'admin';
$id_group = cmsDatabase::getInstance()->get_field('cms_users', "id = '{$inUser->id}'", 'group_id'); if($id_group == 7){$conf = 'editor';} if($id_group == 9){$conf = 'moder';}
Что должно быть в конфигах
Интерфейс эдитора состоит из секций. Секции можно переставить местами и расположить на разных строчках. Каждая секция содержит кнопки.Для того, чтобы включить ВСЕ секции и ВСЕ кнопки надо в конфиге написать такой код:
config.toolbar = [ {name: 'document', items: [ 'Source','-','Save','NewPage','DocProps','Preview','Print','-','Templates' ] }, {name: 'clipboard', items: [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] }, {name: 'editing', items: [ 'Find','Replace','-','SelectAll','-','SpellChecker', 'Scayt' ] }, {name: 'forms', items: [ 'Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField' ] }, '/', {name: 'basicstyles', items: [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] }, {name: 'paragraph', items: [ 'NumberedList','BulletedList','-','Outdent','Indent','-','Blockquote','CreateDiv','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl' ] }, {name: 'links', items: [ 'Link','Unlink','Anchor' ] }, {name: 'insert', items: [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak' ] }, '/', {name: 'styles', items: [ 'Styles','Format','Font','FontSize' ] }, {name: 'colors', items: [ 'TextColor','BGColor' ] }, {name: 'tools', items: [ 'Maximize', 'ShowBlocks','-','About' ] } ];
Перенос строки происходит с помощью кода '/'
Каждая секция содержит перечисление кнопок. Этот список начинается с items и внутри фигурных скобок заключает имена кнопок, поддерживаемых эдитором. Если вы добавите кнопку, она отобразиться, но работать не будет, поскольку надо в код эдитора добавлять для нее действие. Зато, убрав кнопку из секции, вы ненужную кнопку просто выключаете.
Если перенести в конфиге имя кнопки из одной секции в другую, при запуске эдитора вы увидите кнопку на новом месте интерфейса.
Внутрь секции можно вставить визуальный разделитель между кнопками, вставив код '-'.
Пользуясь этими правилами, вы легко настроите конфиги для любого юзера. Оставьте им те кнопки, которые, по вашему мнению, им нужны и пусть пользуются.
Еще кое что о конфигурационных файлах редактора.
Приведенный выше массив config.toolbar=[...]; не единственный возможный, который поддерживается эдитором. Точно так же воспринимается массив config.toolbarGroups=[...]; Он по структуре точно такой же, только перед названиями кнопок стоит не items, а groups. Главное, чтобы у вас в одном файле был один из возможных массивов: или первый или второй, но не оба. Пример массива config.toolbarGroups и сейчас лежит в файле user_config.js, который вы получите при загрузке плагина.Еще один способ отключить ненужные кнопки в конфиге, это перечислить их названия в методе config.removeButtons, например:
config.removeButtons = 'Underline,Subscript,Superscript,Flash,Iframe,SpecialChar,Pagebreake';
Краткая инструкция по добавлению тем.
Добавляю для "тех кто в танке" краткую инструкцию по добавлению тем редактора, хотя чего уж проще:1. Идем на сайт производителя редактора и открываем страничку skins
2. Выбираем тему и щелкаем по картинке-превьюшке, которая показывает внешний вид интерфейса. Вас перебросит на страничку этого скина, где есть кнопка "Download".
3. Жмете на эту кнопку и указываете, куда сохранить архив.
4. В архиве лежит папка с именем темы редактора. Распаковываете архив.
5. Перебрасываете папку с темой в папку эдитора plugins/p_ckeditor/editor/skins/
6. Идете в админку Дополнения->Плагины, ищите свой плагин и жмете на его шестеренку. Попадаете в админку плагина.
7. В поле "Тема редактора" прописываете имя темы редактора. Она совпадает с именем папки, которую вы только что загрузили.
8. Жмете на кнопку "Сохранить"
9. Открываете для редактирования любую статью и наслаждаетесь своей заоблачной крутостью по смене тем редактора)))
Удачи в программировании!
Реклама #
Max 10 лет назад #
Lora 10 лет назад #
Странник 10 лет назад #
Если вы залили папку с темой рядом с другими темами (их там четыре), прописали имя новой темы в админке плагина (поле "Тема редактора"), и эдитор их "не подхватил" при перезагрузке, значит, ваша тема не годится. Увы... Удаляйте ее и ищите другую.
Lora 10 лет назад #
Странник 10 лет назад #
Lora 10 лет назад #
Странник 10 лет назад #
Lora 10 лет назад #
Странник 10 лет назад #
Не знаю, как можно было НЕ поставить))))
Надеюсь, без обид.
Lora 10 лет назад #
Lora 10 лет назад #
Max 10 лет назад #
Если кликнуть в поле ввода текста, то курсор не отображается сразу, а становится виден после начала набора текста. Это сбивает с толку пользователей. Вы не замечали этого? Возможно есть решение?
letsgo 10 лет назад #
Max 10 лет назад #
Странник 10 лет назад #
А проблема у меня заключалась в том, что стандартная функция unserialise() - да,да, она! при получении текста статьи из БД, просто выводила пустую строку.
Я думал, это проблема у меня одного, поскольку на локальном сервере ckeditor и УК прекрасно ладили. Проблема началась, когда я выложил сайт на хостинг. Тогда и пришлось мастерить костыль. Что за костыль, говорить не хочу, ибо получилось некрасиво. У меня УК с костылем и этот эдитор работают, клиент доволен, больше времени на это тратить не могу. Такие дела)))
Странник 10 лет назад #
Может, кто-то, кто сильнее меня в программировании, решит эту проблему? Эдитор-то зачетный!
Max 10 лет назад #
Майкл 10 лет назад #
Странник 10 лет назад #
sotastroy 10 лет назад #
Странник, спасибо, будем пробовать этот плагин. Жаль проблемы с УК..
Странник 10 лет назад #
livecom 10 лет назад #
Странник 10 лет назад #
Юрий 10 лет назад #
Странник 10 лет назад #
Странник 10 лет назад #
Юрий 10 лет назад #
config.enterMode = CKEDITOR.ENTER_P;
config.shiftEnterMode = CKEDITOR.ENTER_BR;
Но пришлось отказаться от редактора, так как с Афишей он не дружит, а разбираться сейчас нет времени.
MadFox 10 лет назад #
К примеру я скачал плагин spoiler для данного редактора. Куда мне его прописать? или как правильно подключить к редактору?
MadFox 10 лет назад #
Если кому будет интересно сообщите мне в личку я попробую написать небольшую пошаговую инструкцию.
MadFox 10 лет назад #
1. Идем на сайт визуального редактора
в первом пункте 1. Choose preset выбираем Basic
в втором 2. Select your plugins and skin данный раздел представлен двумя блоками:
Selected plugins(Выбранные плагины) и Available plugins(Доступные плагины) ищем и добавляем плагин который хотите добавить я добавлял по одному что бы проще было работать с кодом. Скачиваем сформированный редактор.
2.Далее в скачанном редакторе идем в папку plugins и берем от туда папку нужного нам плагина забрасываем его в наш редактор.
Создаем в папке плагина папку icons в нее позже положим иконку плагина для отображения на панели если она есть возможно ее даже придется самому создать в моём случаи я ее вырезал
3.Самая кропотливая часть)) открываем файл ckeditor.js (который мы скачали только что) и ищем в нем секцию с описанием плагина к примеру начало секции для плагина spoiler выглядит так:
CKEDITOR.plugins.add("spoiler"
копируем всю секцию в наш файл ckeditor.js (тот что в уже установленном на сайте редакторе) в этом же файле ищем строку: CKEDITOR.config.plugins= и добавляем в нее название нашего плагина (в моем случае spoiler)
4. Ну и включаем отображение сей кнопки в редакторе по принципу описанному в этой статье
На данный момент описанный мной метод подключения возможно не является корректным.
К примеру у меня спойлер подключился и работает пока находишься в визуальном редакторе но при сохранении статьи спойлера нет (точнее его код добавляется) если смотреть через Исходный код страницы но он не сворачивается и разворачивается. Не исключаю что такая трабла только с спойлером а с другими дополнениями все ок.
В общем требуется детальное рассмотрение данного метода
Странник 10 лет назад #
через задний проходперемещение со Смоленского вокзала на Ярославский через Гонолулу. Посмотрю, что можно сделать.MadFox 10 лет назад #
Или пока не занимались данным вопросом?
Странник 10 лет назад #