Bonjour à tous,

Voilà je voudrais installer un plugin me permettant de publier des extraits de code avec le plugin TinyMCE.

Existe t-il un plugin pour TinyMCE?

Anthony

6 réponses


tonymx227
Auteur
Réponse acceptée

Je viens de trouver le problème, plutôt assez bête... Il suffisait d'encoder les caractères HTML dans la base de données puis de les décoder ensuite pour les afficher... Je ne sais pas pourquoi je n'y est pas pensé avant.

var escapeHTML = function(text) {
  return text
      .replace(/&/g, '&')
      .replace(/</g, '<')
      .replace(/>/g, '>')
      .replace(/"/g, '"')
      .replace(/'/g, ''');
}

var unescapeHTML = function(text) {
  return text
      .replace(/</g, '<')
      .replace(/>/g, '>')
      .replace(/"/g, '"')
      .replace(/'/g, "'")
      .replace(/&/g, '&');
}

Il me semble que le dernier Tiny le fait

Format -> inline -> code

Le problème c'est que le HTML se charge dans le textarea TinyMCE lorsque je veux éditer mon poste je ne vois pas les portions de codes vue que le HTML est exécuté dans le textarea...

Exemple :

J'écris "<div>toto</div>" dans mon textarea TinyMCE, j'enregistre mon article. Dans la base de donnée tous va bien. Par contre si je veux éditer mon article, je vois "toto" dans le textarea...

C'est le soucis avec TinyMCE, CKEditor et autre plugins. Ils échappent ou nettoient le code html. http://weblogs.asp.net/nawaf/archive/2008/04/10/syntaxhighlighter-plug-in-for-tinymce-3-x-wysiwyg-editor.aspx, il y a bien ça mais il est compatible avec SyntaxHighlighter seulement.

Oui et j'ai regardé le code de votre plugin CKEditor et le problème ne vient pas du plugin mais de CKEditor. Donc je ne peux pas régler le problème. Je vais créer mon propre plugin je pense que ce sera plus facile.

Je n'ai pas eu une bonne expérience avec mon plugin pour CKEditor, ces outils (TinyMCE et CKEditor) ne sont très faciles à customizer. Si tu n'as pas beaucoup de temps, je te conseille de faire ton code dans un IDE et de le coller directement dans TinyMCE. Ca sera moins dur que de créer un plugin.