Задать вопрос
sidorenkoda
@sidorenkoda
Программист, верстальщик, руководитель проектов

Как в Yii2 в ckeditor от 2amigos добавить плагин?

Есть плагин от 2amigos
https://github.com/2amigos/yii2-ckeditor-widget
Отлично используется
echo $form->field($model, $k)->textarea($model['fldArr'][$k]['options'])->widget(CKEditor::className(), [
'options' => [
'rows' => 3,
], ...

Хочу в него внедрить плагин ckeditor.com/addon/fontawesome
Не получается =)

Перепробовал много вариантов, не работает.
Прошу написать хотя бы приблизительную инструкцию 1,2,3

Заранее спасибо!

-----------------------
P.S.
Я делал следующим образом

1) Скачал плагин с сайта - ckeditor.com/addon/fontawesome
2) Загрузил его в \vendor\2amigos\yii2-ckeditor-widget\src\assets\ckeditor\plugins
3) В шаблоне с формой написал
echo $form->field($model, $k)->textarea($model['fldArr'][$k]['options'])->widget(CKEditor::className(), [

'options' => [
'rows' => 3,
],

'clientOptions' => [
'config.extraPlugins' => 'fontawesome',
'config.contentsCss' => 'path/to/your/font-awesome.css',
'config.allowedContent' => true,
'resize_enabled' => true,
'allowedContent' => true,
'contentsCss' => '/_protected/vendor/2amigos/yii2-ckeditor-widget/src/assets/ckeditor/plugins/fontawesome/font-awesome/css/font-awesome.min.css',
'removeEmpty' => [
'span' => false,
],
...
'presets' => 'full',
4) В C:\OpenServer\domains\jullycms\_protected\vendor\2amigos\yii2-ckeditor-widget\src\presets\full.php добавил
['name' => 'insert', 'items' => [ 'FontAwesome', 'Source' ]
Результат - все сломал))
  • Вопрос задан
  • 5924 просмотра
Подписаться 4 Оценить Комментировать
Решения вопроса 1
alexanderbulatov
@alexanderbulatov
Fullstack разработчик
Если кому интересно будет, можно это решить АБСТОЛЮТНО более простым способ))))

Всё как на официальном сайте по CKEditor.

Закидываете в папку vendor/ckeditor/ckeditor/plugins свой плагин.

А затем подключаете основной файл плагина там, где вам нужно, например вот так:
$this->registerJs("CKEDITOR.plugins.addExternal('pbckcode', 'plugins/pbckcode/plugin.js', '');", $this::POS_READY, 'tinymcepluginpbckcode');


А в самом уже отображении вот так:
<?= $form->field($model, 'content')->widget(CKEditor::className(), [
            'preset' => 'custom',
            'options' => ['rows' => 15],
            'clientOptions' => [
                'extraPlugins' => 'pbckcode',
                'toolbarGroups' => [
                    ['name' => 'undo'],
                    ['name' => 'basicstyles', 'groups' => ['basicstyles', 'cleanup']],
                    ['name' => 'colors'],
                    ['name' => 'links', 'groups' => ['links', 'insert']],
                    ['name' => 'others', 'groups' => ['others', 'about']],

                    //['name' => 'youtube'], // <--- OUR NEW PLUGIN YAY!
                    ['name' => 'pbckcode']
                ]
            ],
    ]) ?>


А после обновляете страницу с этим редактором - будет ошибка (в консоли). В консоли смотрите папку, в которой закэширован CKEditor (будет показана при наведении на файл, который система не может найти). Находите её в директории @webroot и удаляете полностью эту злосчастную папку. А затем обновляете страницу с редактором Ctrl+F5 и наблюдаете добавленный свой плагин.

Радуемся)))

Между прочим именно так сам этот "2amigos" даёт инструкцию на github, но забыл, что всё там блин кэшируется.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
@madphoenix
Все решается достаточно просто без лишних телодвижений:

Во вьюхе формы указываете:

<?php echo $form->field($model, 'description')->widget(CKEditor::className(), [
            'options' => ['rows' => 6],
            'preset' => 'full',
            'clientOptions' => [

                'extraPlugins' => 'widgetbootstrap',
            ]
        ]) ?>

<?php 
$this->registerJs("CKEDITOR.plugins.addExternal('widgetbootstrap', '/js/widgetbootstrap/', 'plugin.js');");


Папку с плагином копируете, например, в @app/web/js

То есть должно получиться что-то наподобие этого - web/js/widgetbootstrap/plugin.js
Ответ написан
jumper423
@jumper423
web-developer
1) Asset

Не делайте так
Загрузил его в \vendor\2amigos\yii2-ckeditor-widget\src\assets\ckeditor\plugins

Всё только через компосер. Что-то изменять в папке вендор по негласным правилом запрещено.
Ответ написан
@Mister8891
Так кто нибудь решил эту задачу?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы