CKEditor - Визуальный (WYSIWYG) редактор HTML-контента.
Минимальный, обычный и расширенный визуальный редактор - настроим отдельно для пользователя, в зависимости в какую группу он входит на сайте "кота".
Небольшая инструкция как при создании статей и постов вывести разные наборы кнопок визуального редактора контента для администратора и простого пользователя.
Причин необходимости минимального визуального редактора для пользователя может быть масса, среди которых, - это низкая комфортность при написании новости или поста на форуме с телефона, - загромождается экран смартфона. Также минимальный набор инструментов может быть связан с размещением нежелательного контента в постах на форумах или в комментариях к статьям.
Сразу стоить взять во внимание, что при обновлении модуля или движка, - эту процедуру придется повторить.
В качестве примера возьмем модуль форумов и модифицируем его.
1. Открываем файл конфигурации
forums.setup.php по адресу
modules/forums/forums.setup.php
примерно в 35-й строке находим "minimaxieditor=33.....ditor:"
сразу после неё добавляем строку:
editornoadmin=34:select:minieditor,medieditor,editor:medieditor:
сохраняемся.
2. открываем файл forums.functions.php по адресу
modules/forums/inc/forums.functions.php
топим в самый конец файла, в район 547-й строки и сразу после всего добавляем код
$editornoadmin = null;
if (Cot::$cfg['forums']['markup'] == 1) {
$editornoadmin = Cot::$cfg['forums']['editornoadmin'];
}
сохраням файл.
3. Открываем сценарии создания новых постов, - файл forums.newtopic.php по адресу
modules/forums/inc/forums.newtopic.php
находим в районе 163-й строки код
$t = new XTemplate($mskin);
и сразу за ним добавляем пару условий выбора визуального редактора в зависимости от того, является пользователь администратором или же таким не является
$kindeditor = null;
if (Cot::$usr['isadmin']) {
$kindeditor = Cot::$cfg['forums']['minimaxieditor'];
}
if (!Cot::$usr['isadmin']) {
$kindeditor = Cot::$cfg['forums']['editornoadmin'];
}
Теперь в строке, которая будет ниже
'FORUMS_NEWTOPIC_TEXT' => cot_textarea('rmsgtext', $rmsg['fp_text'], 20, 56, '', 'input_textarea_'.$minimaxieditor),
$minimaxieditor меняем на
$kindeditor
Это будет нужно сделать везде, где при формировании тега текстового поля задаем редактор в зависимости от того пользователь админ или нет.
идем в панель управления сайтом, в разделе расширений находим наш модуль форумов, заходим в него и сразу жмем кнопку "Обновить".
Затем, здесь же на этой странице, жмем кнопку "Конфигурация", скролим настройки модуля до "
Выбор конфигурации визуального редактора" и селектом выбираем "
расширенный набор кнопок", а сразу строкой ниже будет
"editornoadmin:" - напротив неё также селектом выбираем, но на этот раз например "
minieditor".
Модификация готова. Авторизуемся на сайте с двух разных браузеров, - на одном как админ, а на втором как обычный пользователь, заходим на форум, жмем кнопку "Новая тема" и вот магия, которая иногда просто кусочек кода 😉
Но это не все. Теперь нужно добавить модификацию для редактирования постов.
4. В этой же папке открываем forums.editpost.php
находим в районе 168-й строки код
$t = new XTemplate($mskin);
и сразу за ним добавляем
$kindeditor = null;
if (Cot::$usr['isadmin']) {
$kindeditor = Cot::$cfg['forums']['minimaxieditor'];
}
if (!Cot::$usr['isadmin']) {
$kindeditor = Cot::$cfg['forums']['editornoadmin'];
}
находим тег текстового поля "FORUMS_EDITPOST_TEXT" и меняем
$minimaxieditor меняем на
$kindeditor
сохраняемся.
5. Отрываем forums.posts.php
сразу после строки
require_once cot_incfile('forms');
и сразу за неё добавляем
$kindeditor = null;
if (Cot::$usr['isadmin']) {
$kindeditor = Cot::$cfg['forums']['minimaxieditor'];
}
if (!Cot::$usr['isadmin']) {
$kindeditor = Cot::$cfg['forums']['editornoadmin'];
}
находим в пятой сотне строк, тег текстового поля "FORUMS_POSTS_NEWPOST_TEXT" и меняем
$minimaxieditor меняем на
$kindeditor
сохраняемся.
всё 😜😜😜.
Кстати, отредактировать наборы кнопок, например для админа в расширенном наборе или для пользователя в минимальном можно в файле
config.js, который лежит на сайте по адресу
plugins/ckeditor/lib/config.js
Минимальный набор кнопок - это "toolbar_Basic" (начало примерно в 43 строке)
Обычным пользователям у меня конфигурация имеет следующий вид
config.toolbar_Basic = [
['Bold', 'Smiley', '-','EmojiPanel', '-', 'Image', 'oembed', '-', 'Link', 'Unlink']
];
Если что нужно пишите в чат 🥱