web-dev-qa-db-fra.com

CKEDitor supprime les noms de classe, même à l'exception dans config

CKEditor semble supprimer les noms de classe lorsque je bascule entre la vue HTML et la vue RTF.

Selon de nombreuses suggestions sur le Web, j'ai ajouté ce qui suit au fichier config.js:

config.allowedContent = true;

Cache mis en place, effacé et même allé directement dans le fichier JS pour vérifier qu'il ne s'agit pas d'une mise en cache sur ma machine, mais qu'il supprime toujours les classes.

Y a-t-il une autre solution?

17
Francesca

Allez dans "Admin >> Configuration >> CKEditor"; sous Profils, choisissez votre profil (par exemple Complet).

Modifiez ce profil et dans "Options avancées >> Configuration JavaScript personnalisée", ajoutez config.allowedContent = true;.

snapshot

N'oubliez pas de vider le cache sous "onglet Performances".

18
user19497

Modifiez le profil complet dans Configuration> CKEditor

enter image description here

Ouvrez la section Advanced Content Filter et sélectionnez Disabled enter image description here

Pas besoin d'ajouter quoi que ce soit dans le champ Contenu supplémentaire autorisé. Pas besoin de changer le config.js. [... comme ça ne m'a pas pris des heures et des heures pour comprendre]

7
Steve

Ce problème a été résolu dans dev (7.x-2.3 lors de la publication) dans le cadre de CKeditor 4.1 ACF . Vous pouvez essayer de mettre à niveau votre WYSIWYG ou essayer les solutions de contournement ci-dessous.


Dans Drupal 7, vous pouvez essayer le hook suivant:

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

ou en utilisant une autre idée:

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

ou avec le code jQuery suivant:

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

En relation:

1
kenorb

Allez commando et désactivez complètement le wysiwyg.

Si vous savez comment écrire du HTML et du CSS de base, c'est-à-dire que vous n'êtes pas le client, désactivez le plugin. Cela améliorera également vos compétences HTML/CSS

J'ai passé des jours à trouver comment empêcher le wysiwyg d'abattre mes classes et mes balises de pré/code à chaque fois que je rechargeais l'éditeur. J'ai réalisé que tout ce que je faisais était d'essayer de désactiver toutes les fonctionnalités du plugin wysiwyg. Je l'ai donc désactivé.

Oui, cela est contraire à ma réponse ci-dessus.

0
Steve