CKEDitor удаляет имена классов, даже с исключением в конфигурации

17

CKEditor, кажется, удаляет имена классов, когда я переключаюсь между представлением HTML и представлением Rich Text.

В соответствии со многими предложениями в Интернете я добавил следующее в файл config.js:

config.allowedContent = true;

Выгрузил, очистил кеш и даже сразу отправился в файл JS, чтобы убедиться, что он не кэшируется на моей машине, но все равно удаляет классы.

Есть ли другое решение?

Francesca
источник

Ответы:

18

Перейдите к «Admin >> Конфигурация >> CKEditor»; в разделе « Профили» выберите свой профиль (например, « Полный» ).

Отредактируйте этот профиль и добавьте «Дополнительные параметры >> Пользовательская конфигурация JavaScript» config.allowedContent = true;.

снимок

Не забудьте очистить кеш под вкладкой «Производительность».

user19497
источник
У меня работает на Drupal 7 с модулем CKEditor 7.x-1.13 и CKEditor 4.3.2. Спасибо, у меня только начинала болеть голова!
Benj
1
Теперь в разделе «Администратор >> Создание контента >> Конфигурация >> CKEditor».
Хьюго
7

Отредактируйте полный профиль в Конфигурации> CKEditor

введите описание изображения здесь

Откройте раздел Advanced Content Filter и выберите Disabled введите описание изображения здесь

Не нужно ничего добавлять в поле «Допустимый контент». Не нужно менять config.js. [... как будто это не заняло у меня много часов, чтобы понять]

Стив
источник
2
Теперь в разделе «Администратор >> Создание контента >> Конфигурация >> CKEditor».
Хьюго
1

Эта проблема была решена в dev (7.x-2.3 при публикации) как часть CKeditor 4.1 ACF . Вы можете попробовать обновить WYSIWYG или попробовать следующие обходные пути.


В Drupal 7 вы можете попробовать следующий хук:

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter().
 */
function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) {
  if ($context['profile']->editor == 'ckeditor') {
    $settings['allowedContent'] = TRUE;
  }
}
?>

или используя другую идею:

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter().
 */
function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) {
  if ($context['profile']->editor == 'ckeditor') {
      $settings['extraAllowedContent'] = array(
        'img[src,title,alt,style,width,height,class,hspace,vspace,view_mode,format,fid]',
      );
  }
}
?>

или со следующим кодом JQuery:

CKEDITOR.replace( textarea_id, {
    allowedContent: true
} );

Связанный:

kenorb
источник
0

Перейти коммандос и вообще отключить wysiwyg.

Если вы знаете, как писать базовые HTML и CSS, то есть не являетесь клиентом, отключите плагин. Это также улучшит ваши навыки HTML / CSS

Я потратил несколько дней на то, чтобы не допустить, чтобы wysiwyg расправлялся с моими классами и тегами pre / code при каждой перезагрузке редактора. Я понял, что все, что я делал, пытался отключить все функции плагина wysiwyg. Поэтому я выключил это.

Да, это противоречит моему ответу выше.

Стив
источник