A l'enregistrement du code, CKeditor n'en fait qu'à sa tête.
fabrice0101
Member
dans Entraide
Bonjour,
Je suis confronté à un problème lors de l’enregistrement d'un article. CKEditor modifiant le code source, la fonction que je souhaite mettre en place est ainsi inopérante.
Je souhaite qu'un GIF animé se lance au passage de la souris sur un GIF statique, j'ai donc écrit:
Cela fonctionne très bien quand je lance un aperçu mais dès que j'enregistre, voila ce qu'enregistre fait CKeditor:
Et de fait, cela ne fonctionne plus du tout
Je n'ai pas trouvé le moyen d'interdire à CKeditor de respecter le code saisi. Mais peut-être existe t-il une autre approche pour que cela fonctionne? Auriez-vous une idée pour résoudre ce problème?
Par avance, merci !
Je suis confronté à un problème lors de l’enregistrement d'un article. CKEditor modifiant le code source, la fonction que je souhaite mettre en place est ainsi inopérante.
Je souhaite qu'un GIF animé se lance au passage de la souris sur un GIF statique, j'ai donc écrit:
[== HTML ==]
<img alt="" height="192" src="monsite/data/images/static.gif" width="256" onmouseover="this.src='monsite/data/images/anim.gif';" onmouseout="monsite/data/images/static.gif';" />
Cela fonctionne très bien quand je lance un aperçu mais dès que j'enregistre, voila ce qu'enregistre fait CKeditor:
[== HTML ==]
<img alt="" height="192" onmouseover="this.src='monsite/data/images/anim.gif';" onmouseout="monsite/data/images/static.gif';" src="monsite/data/images/static.gif" width="256" />
Et de fait, cela ne fonctionne plus du tout
Je n'ai pas trouvé le moyen d'interdire à CKeditor de respecter le code saisi. Mais peut-être existe t-il une autre approche pour que cela fonctionne? Auriez-vous une idée pour résoudre ce problème?
Par avance, merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bien trop contraignante, c'est assurément une solution que je n'utiliserai pas.
Je cherche quelque chose d'un peu plus sérieux si je peux m'exprimer ainsi.
EDIT: J'utilise la v5.5 de PluXml.
Sinon, tu peux aussi insérer ton image en background dans une <div> vide avec une classe CSS spéciale, et en changer l'affichage avec le sélecteur :hover.
dans la source de l'article :
<div class="gifanime"></div>
dans css/theme.css :
.gifanime{
width: 256px;
height: 192px;
background-image: url(monsite/data/images/static.gif);
}
.gifanime:hover {
background-image: url(monsite/data/images/anim.gif);
}
/// Pour un aperçu rapide du résultat, on remplacera simplement le background-image par un background-color dans le CSS :
.gifanime{
background-color: blue;
}
.gifanime:hover {
background-color: red;
}
Je découvre ton second message au moment où j'allais annoncer que je venais de trouver la solution.
J'ai remarqué que ce tordu de CKeditor s'amusait à classer le code par ordre alphabétique au moment de l'enregistrement...
Donc: se retrouve après:
Ce qui fait que "This." n'a plus de sens...
De là, je suis parti sur une autre approche, en faisant attention à l'enregistrement qui reclassera au final tout par ordre alphabétique. Et cela donne:
Un code extrêmement court, autonome, sans CCS, qui permet d'être reproduit sur un même article autant de fois que j'ai une image à animer par un onmouseover. Mon article est maintenant terminé, il contient 10 images GIF statiques différentes qui, dès que je passe la souris dessus, basculent sur le GIF animé correspondant
EDIT:
Note: Dans l'exemple, "i1" correspond au nom que j'ai donné à la premier image ("i2" pour la seconde image à animer, "i3" pour la troisième, ...). On peut bien sûr nommer les images autrement, mais chaque image doit avoir un nom différent.
Dans plugins/ckeditor/ckeditor.php, il faut écrire avant la ligne 128,
donc juste avant de l'accolade de fin de la boucle for(var i=0;i<textareas.length;i++) { ... } J'ai fait un essai avec ton code, pour moi ça marche.
Edit : Cette fonction n'est pas documentée dans CKEditor, je l'ai trouvée dans ce forum : http://stackoverflow.com/questions/29019398/disable-sorting-of-element-attributes
On peut aussi la tester ici : https://jsfiddle.net/4t72c4n1/6/
Je viens de faire un test et, effectivement, cela fonctionne très bien