5 votes

CKEditor supprime la classe div, bien qu'elle soit spécifiée dans extraAllowedContent

CKEditor supprime les attributs de la classe div lorsque je passe de la vue Source à la vue Source.

Voici la configuration :

$('.cke-editor-restrictive').ckeditor({
    extraAllowedContent: [
        "*[class,id]",
        "a[*]",
        "img[*]",
        "strong", "em", "small",
        "u", "s", "i", "b",
        "p", "blockquote[class,id]",
        "div[class,id,data-href]",
        "ul", "ol", "li",
        "br", "hr",
        "h1", "h2", "h3", "h4", "h5", "h6",
        "script[src,charset,async]",
        "iframe[*]", "embed[*]", "object[*]",
        "cite", "mark", "time",
        "dd", "dl", "dt",
        "table", "th", "tr", "td", "tbody", "thead", "tfoot"
    ].join("; ")
})

Et la configuration globale de CKEditor :

CKEDITOR.editorConfig = function(config) {
  config.extraPlugins = 'mediaembed,codemirror,autosave';
  config.codemirror = { ... };

  config.toolbar = [['Bold', 'Italic', 'Underline', "RemoveFormat"], ['NumberedList', 'BulletedList', 'Blockquote'], ['Link', 'Unlink', 'Image', 'MediaEmbed'], ['Find', 'Paste'], ['Source', 'Maximize']];

  config.bodyClass = 'ckeditor-body';
  config.contentsCss = "/assets/application.css";
  config.baseHref = "http://www.website.org/";
  config.forcePasteAsPlainText = true;
};

Qu'est-ce que je rate ? J'ai été plus la documentation sur les règles de contenu autorisé et il ne semble pas que je fasse quelque chose de mal. Même si je change la règle pour div[*] ça enlève la classe.

23voto

Reinmar Points 9306

Les classes et les styles ne sont pas traités avec d'autres attributs. Ils ont leur propre place dans les règles ACF. Pour activer tous les styles, vous devez écrire :

'div{*}'

Et pour activer toutes les classes :

'div(*)'

Et pour tout permettre :

'div(*){*}[*]'

2voto

alexsm Points 33

Quand j'écris

config.extraAllowedContent = 'div(class);ul(class)[id]';

div y el ul garder le spécifique class mais id est toujours supprimé.

Y a-t-il un moyen d'autoriser "id" ?

edit : je l'ai eu ! pour permettre l'ID ->

config.extraAllowedContent = 'div(rslides_container);ul(rslides)[id]';

si vous voulez que ckeditor gardez votre identité, ne changez pas [id] (n'utilisez pas votre identifiant ! écrivez simplement [id] et ckeditor ne supprimera pas votre identifiant !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X