J'utilise l'éditeur WYSIWYG avec CKEditor. Je constate que lors de l'ajout de classes personnalisées à mes éléments à partir de la vue "source", CKEditor supprime ces classes lors de la sortie de la vue source.
Lors de la recherche d'une solution à ce problème sur Google, j'ai trouvé la page du module CKEditor qui décrit comment résoudre ce problème lors de l'utilisation de CKEditor seul. (Fondamentalement, nous devons configurer une configuration JS config.allowedContent = true
dans ses paramètres Advanced Content Filter).
Cependant, lorsque vous utilisez CKEditor via WYSIWYG, ces paramètres ne sont pas exposés dans l'interface d'administration. Comment obtenez-vous la même chose lorsque vous utilisez CKEditor via WYSIWYG?
PS: je ne peux pas utiliser CKEditor seul car il ne s'intègre pas au plugin média .
Réponses:
Quelle version de CKEditor utilisez-vous? Il y a un problème avec CKEditor 4.1+, qui a une fonctionnalité appelée Automatic Content Filter (ACF) qui supprimera automatiquement les attributs non définis pour l'éditeur: https://drupal.org/node/1956778
Le patch # 37 du problème a fonctionné pour moi.
la source
editors/ckeditor.inc
lawysiwyg_ckeditor_settings
fonction deJ'ai trouvé une solution.
Cela désactive le filtrage, cela fonctionne, mais ce n'est pas une bonne idée ...
Jouer avec une chaîne de contenu fonctionne bien pour id, etc., mais pas pour les attributs de classe et de style, car vous avez () et {} pour le filtrage de classe et de style.
Donc, mon pari est d'autoriser n'importe quelle classe dans l'éditeur:
Cela permet à n'importe quelle classe et tout style en ligne.
Pour autoriser uniquement class = "asdf1" et class = "asdf2" pour n'importe quelle balise:
(vous devez donc spécifier les noms de classe)
Pour autoriser uniquement class = "asdf" uniquement pour la balise p:
Pour autoriser l'attribut id pour n'importe quelle balise:
etc
Pour autoriser la balise de style (<style type = "text / css"> ... </style>):
Pour être un peu plus complexe:
J'espère que c'est une meilleure solution ...
la source
Cela semble être quelque chose qui devrait être ajouté au module WYSIWYG, la possibilité d'ajouter des paramètres personnalisés aux éditeurs est une exigence assez répandue. Mais en l'absence de cela, je recommande toujours de ne pas éditer le module lui-même car cela casserait lors des mises à niveau ... heureusement, le module fournit un appel à
drupal_alter
, donc dans un module personnalisé:où "mymodule" est évidemment le nom de votre module personnalisé. Cela accomplit la tâche sans éditer le module de quelqu'un d'autre.
la source
Essayez d'ajouter ce qui suit à modules / wysiwyg / editors / ckeditor.inc
'allowedContent' => TRUE,
àfunction wysiwyg_ckeditor_settings($editor, $config, $theme)
de sorte qu'il se lit maintenant:
la source
Sans pirater aucune source, et sans essayer de comprendre OERE le bip de ces paramètres est lu, vous pouvez l'ajouter à votre propre module personnalisé
Les paramètres
*(*);*{*}
demandés par l'OP proviennent de la réponse de @Tommy ci-dessus. Cela semble autoriser les attributs de classe et de style sur n'importe quel élément. Les autres ne sont que des exemples d'entrées. Comme autre exemple, cette entrée autorise les balises nécessaires au module média.la source
Le filtre HTML filtré supprime les classes des éléments qui ne figurent pas dans ses éléments HTML autorisés . La balise de paragraphe (
<p>
) n'est pas là par défaut (ce qui peut être déroutant et non naturel), même si c'est l'élément le plus fréquent où la classe est appliquée. Une fois que vous l'avez mis dedans, le HTML filtré ne supprimera plus les classes de ces balises. Il en va de même pour les balises d'image (<img>
).la source