[Решено] Своя кнопка для CKEditor

Главные вкладки

Аватар пользователя vortex vortex 6 февраля 2014 в 15:30
1

Хочу сделать свою кнопку которая вставляет div с конкретным классом.
Почитал мануал
Переименовал все с timestamp в clearfix (название и суть моей кнопки)

CKEDITOR.plugins.add( 'clearfix', {
    icons: 'clearfix',
    init: function( editor ) {
        editor.addCommand( 'insertclearfix', {
            exec: function( editor ) {
               
                editor.insertHtml( '<div class="logo_clear">&nbsp;</div>' );
            }
        });
        editor.ui.addButton( 'clearfix', {
            label: 'Insert clearfix',
            command: 'insertclearfix',
            toolbar: 'insert'
        });
    }
});

Иконку тоже стырил с примера и только переименовал файл.

Бросил это в sites\all\modules\ckeditor\plugins\clearfix\
Активировал в настройках редактора этот плагин.

А нет кнопочки! В настройках новых кнопок нет. сама тоже не появилась.

Где я неправильно свернул?

Модуль 7.x-1.13
сам редактор CKEditor 4.3.1

Комментарии

Аватар пользователя Kolobok33 Kolobok33 6 февраля 2014 в 15:53

Привет.
В "конфигурации" при настройках профилей ckeditora в "внешний вид редактора" настраивается отображение панелей. К примеру есть такая странная штука. Я добавил плагин пейджера, а в кнопках редактора кнопка разделения на страницы появляется только при использовании fulle HTML, а при использовании PHP формата по умолчанию ее нет в панели. Как я не извращался ничего не меняется.

Там есть еще возможность добавлять кнопки в панель. Попробуй попереключаться между - "Загрузить пример панели: Основное | Расширенный | Полный". Ну и посбрасывать кеш...

Аватар пользователя vortex vortex 6 февраля 2014 в 16:28

У меня два профиля. Один с "Простой текст", второй "Full HTML, PHP code".
Я во втором его активирую. Сохраняю. Чищу кеш. Захожу заново в редактирование, а ничего не происходит.

Можно попробовать разве что сделать третий профиль только с html

Аватар пользователя Kolobok33 Kolobok33 6 февраля 2014 в 18:37

Там вот, есть еще такая штука. Дело в том, что папке ckeditor есть папка самого ckeditor с анологичным названием и в ней тоже есть папка plugins...

Аватар пользователя vortex vortex 6 февраля 2014 в 18:48

Тоже пробовал. И прописывал в config.js самого редактора и в ckeditor.config.js модуля.
Но явно не то. Он исчезает из настроек при любых обстоятельствах. А в "модуле" он виден.

Аватар пользователя vortex vortex 6 февраля 2014 в 18:49

Меня озадачивает уже другое. Этот пример виден в настройках, но тоже не виден как кнопка. Может пример говно.

Аватар пользователя Kolobok33 Kolobok33 6 февраля 2014 в 18:57

"vortex" wrote:
Меня озадачивает уже другое. Этот пример виден в настройках, но тоже не виден как кнопка. Может пример говно.

Lol Тоже вариант... Может поискать на "заморских" сайтах или форумах че пишут. Там как правило больше оригинальных постов а не передранных... Smile

Хотя о чем это я, этот тоже "заморский"... А вот вопрос, воспроизведение примера в точности какой результат дает? Может попробовать их пример в действии и тогда им же и высказаться по поводу их примера?

Аватар пользователя vortex vortex 10 февраля 2014 в 17:28

Ковырял разные модули, экспериментировал... В общем вот оно решение.
Ошибка видимо в том, что не определена была картинка, а по стандартному пути она не ищется. Почти наверняка это из-за неких особенностей

CKEDITOR.plugins.add( 'clearfix', {
    icons: 'clearfix',
    init: function( editor ) {
        editor.addCommand( 'clearfix', {
           
                exec: function( editor ) {

                editor.insertHtml( '<div class="logo_clear">&nbsp;</div>' );
            }
        });
        editor.ui.addButton( 'clearfix', {
            label: 'Insert clearfix',
                        icon : this.path + 'icons/clearfix.png',
            command: 'clearfix',
            toolbar: 'insert'
        });
    }
});

Аватар пользователя vortex vortex 11 февраля 2014 в 13:20

нет. Это плагин для плагина Biggrin

Создается папка плагина sites\all\modules\ckeditor\plugins\%plugin-name%\
Там создается plugin.js с содержимым выше.
ещё нужна папка all\modules\ckeditor\plugins\%plugin-name%\icons\ туда я положил %plugin-name%.png

%plugin-name% у меня это clearfix

Аватар пользователя Kolobok33 Kolobok33 11 февраля 2014 в 13:37

"vortex" wrote:
нет. Это плагин для плагина :D

А?! Ясно. Отлично. "Пользительная веСч"!

Намедни "бодался" с "обрезанием" классов в дивах при использовании CKeditorА. (При сохранении редакции поста не сохранялись собственные в ручную прописанные классы) И тоже тогда подумал, что "самодельная" кнопочка бы пригодилась... ;Р

Аватар пользователя vortex vortex 11 февраля 2014 в 14:00

"Kolobok33" wrote:
При сохранении редакции поста не сохранялись собственные в ручную прописанные классы

Да. Беда.
в ckeditor.config.js

config.protectedSource.push( /<script[\s\S]*?script>/g ); /* script tags */
config.allowedContent = true; /* all tags */

Не знаю как это отразится на безопасности, но работает.
Можно добавить свои теги или классы по вкусу по аналогии

Аватар пользователя Kolobok33 Kolobok33 11 февраля 2014 в 21:53

"vortex" wrote:
Не знаю как это отразится на безопасности, но работает.
Можно добавить свои теги или классы по вкусу по аналогии

Спасибо, на счет тегов посмотрю, это тоже интересно.
Я малость иначе прописал первую строчку: config.protectedSource.push(/<[a-z]*[a-z\s\=\"\']*><\/[\s\S][^/]*?>/g);

Нашел тут же у кого-то... Тоже работает.