CKEDitor usuwa nazwy klas, nawet z wyjątkiem w config

17

Wydaje się, że CKEditor usuwa nazwy klas, gdy przełączam między widokiem HTML a widokiem tekstu sformatowanego.

Zgodnie z wieloma sugestiami w sieci dodałem następujące informacje do pliku config.js:

config.allowedContent = true;

Przesłano, wyczyściłem pamięć podręczną, a nawet poszedłem bezpośrednio do pliku JS, aby sprawdzić, czy nie buforuje na moim komputerze, ale nadal usuwa klasy.

Czy jest inne rozwiązanie?

Francesca
źródło

Odpowiedzi:

18

Idź do „Administrator >> Konfiguracja >> CKEditor”; w obszarze Profile wybierz swój profil (np. Pełny ).

Edytuj ten profil i dodaj „Opcje zaawansowane >> Niestandardowa konfiguracja JavaScript” config.allowedContent = true;.

migawka

Nie zapomnij opróżnić pamięci podręcznej w „zakładce Wydajność”.

użytkownik19497
źródło
Działa dla mnie na Drupal 7 z modułem CKEditor 7.x-1.13 i CKEditor 4.3.2. Dzięki, właśnie zaczynałem mieć z tym ból głowy!
Benj
1
Teraz w sekcji „Administrator >> Tworzenie treści >> Konfiguracja >> CKEditor”.
Hugo,
7

Edytuj pełny profil w Konfiguracja> CKEditor

wprowadź opis zdjęcia tutaj

Otwórz sekcję Zaawansowany filtr treści i wybierz opcję Wyłączone wprowadź opis zdjęcia tutaj

Nie musisz nic dodawać w polu Dodatkowa dozwolona treść. Nie trzeba zmieniać pliku config.js. [... tak jakby nie zajęło mi to wiele godzin]

Steve
źródło
2
Teraz w sekcji „Administrator >> Tworzenie treści >> Konfiguracja >> CKEditor”.
Hugo,
1

Ten problem został rozwiązany w wersji dev (7.x-2.3 po opublikowaniu) jako część CKeditor 4.1 ACF . Możesz spróbować uaktualnić WYSIWYG lub wypróbować poniższe obejścia.


W Drupal 7 możesz wypróbować następujący hak:

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

lub używając innego pomysłu:

<?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]',
      );
  }
}
?>

lub z następującym kodem jQuery:

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

Związane z:

kenorb
źródło
0

Idź komandos i całkowicie wyłącz wysiwyg.

Jeśli wiesz, jak pisać podstawowe HTML i CSS, tzn. Nie jesteś klientem, wyłącz wtyczkę. Poprawi również twoje umiejętności HTML / CSS

Spędziłem kilka dni zastanawiając się, jak zapobiec masakrowaniu wysiwyga moich klas i tagów pre / code za każdym razem, gdy ponownie ładuję edytor. Zdałem sobie sprawę, że wszystko, co robiłem, to wyłączanie wszystkich funkcji wtyczki wysiwyg. Więc to wyłączyłem.

Tak, to jest sprzeczne z moją odpowiedzią powyżej.

Steve
źródło