Установил CKEditor 4.4.5 отсюда - https://github.com/MihailDev/yii2-ckeditor , относился при этом к нему со всем уважением и почтительностью. Все работает, но оказалось, что мое отношение не было взаимным, потому что в процессе работы из кода (при изменении, создании, и даже просто при использовании кнопки "Источник") удалялись ВСЕ теги HTML 5, а также ВСЕ мои классы. Учитывая, что верстка использует BEM, мои эмоции после обнаружения такого безобразия были весьма красноречивыми. Пришлось этому делу уделить аж целый день.
Быстро решить вопрос мешало два фактора - слабый (мягко говоря) английский и недостаточный опыт в программировании.
Изучение документации и привлечение гугла с яндексом давали одно решение - редактирование файла /editor/config.js таким образом:
Код: Выделить всё
CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here. For example:
// config.language = 'en';
// config.uiColor = '#AADC6E';
// config.allowedContent = true;
config.height = 50;
config.indentClasses = '["article-contents__items"]';
config.protectedSource.push(/<(style)[^>]*>.*<\/style>/ig);
config.protectedSource.push(/<(script)[^>]*>.*<\/script>/ig);// разрешить теги <script>
config.protectedSource.push(/<\?[\s\S]*?\?>/g);// разрешить php-код
config.protectedSource.push(/<!—dev—>[\s\S]*<!—\/dev—>/g);
config.allowedContent = true; /* all tags */
};
Ужин уже разогревался, поэтому надо было спешить. Поэтому я решил глобальные изменения настроек внести прямо в class CKEditor, а именно:
Код: Выделить всё
private function presetFull(){
$options['height'] = 500;
$options['allowedContent'] = true;
Код: Выделить всё
echo $form->field($model, 'anons')->widget(CKEditor::className(),[
'editorOptions' => [
'preset' => 'full', //разработанны стандартные настройки basic, standard, full данную возможность не обязательно использовать
'inline' => false, //по умолчанию false
'height' => 200,
],
]);
Всем заранее спасибо.