Bonsoir,
mon besoin est très simple : ayant un souci avec ckeditor, je voudrais le remplacer par tinymce ; mais je n'ai pas trouvé de tuto pour m'aider à l'installer (ni par ce forum, ni par Google) ; ayant sûrement mal cherché, peut-on m'aider ?
Version imprimable
Bonsoir,
mon besoin est très simple : ayant un souci avec ckeditor, je voudrais le remplacer par tinymce ; mais je n'ai pas trouvé de tuto pour m'aider à l'installer (ni par ce forum, ni par Google) ; ayant sûrement mal cherché, peut-on m'aider ?
Bonjour,
perso, j'utilise encore FCKeditor (ici, en bas de page), la version avant CKeditor (Je n'ai pas encore testé CKeditor ...).
Je n'ai jamais eu de problème.
Dans Système de Gestion-Affichage de Nouvelles, j'ai des pages qui utilisent FCKeditor ou timyCME (dans l'archive à télécharger).
Ca peut te donner des exemples d'utilisation.
INSTALLATION de TINYMCE :
1/ mettre les fichiers dans le dossier "utilitaires/tinymce" (par exemple)
2/ affichage dans la page (indiquer le chemin correct vers le dossier contenant tinymce) :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <!-- Editeur WYSIWYG : TinyMCE (full : version simplifiee) --> <script type="text/javascript" src="../utilitaires/tinymce/jscripts/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ // General options mode : "textareas", theme : "advanced", plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template", // Theme options theme_advanced_buttons1 : "forecolor,backcolor,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,link,unlink", theme_advanced_buttons2 : "hr,emotions,|,cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,tablecontrols", // (options masquees : version simplifiee) // theme_advanced_buttons3 : ",visualaid,|,sub,sup,|,charmap,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen,|,undo,redo,styleselect", // theme_advanced_buttons4 : "removeformat,insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "center", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, // Example content CSS (should be your site CSS) // content_css : "../utilitaires/tinymce/css/content.css", // Drop lists for link/image/media/template dialogs template_external_list_url : "../utilitaires/tinymce/lists/template_list.js", external_link_list_url : "../utilitaires/tinymce/lists/link_list.js", external_image_list_url : "../utilitaires/tinymce/lists/image_list.js", media_external_list_url : "../utilitaires/tinymce/lists/media_list.js", // Replace values for the template plugin template_replace_values : { username : "", staffid : "" } }); </script> <!-- ...et dans le formulaire... --> <p><!-- contenu : Editeur WYSIWYG TinyMCE --> <label for="idnewsContenu">CONTENU :</label> <textarea id="idnewsContenu" name="newsContenu" rows="25" cols="70"><?php echo htmlentities($newsContenu); ?></textarea> </p>
Merci, j'ai essayé l'install de Tinymce en local ; ça marchait mais je ne vois pas le moyen de saisir un lien ; ça existe ? (Sinon, c'est rhédibitoire) et sinon, merci pour ton aide.
tu as link,unlink (en bout de ligne) : ca devrait le faire, non ?Code:
1
2 // Theme options theme_advanced_buttons1 : "forecolor,backcolor,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect,|,link,unlink",
J'avais aussi masqué des options. Il suffit de dé-commenter les lignes :
Code:
1
2
3 // (options masquees : version simplifiee) // theme_advanced_buttons3 : ",visualaid,|,sub,sup,|,charmap,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen,|,undo,redo,styleselect", // theme_advanced_buttons4 : "removeformat,insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
Erreur ; j'ai fini par voir qu'il fallait d'abord sélectionner un texte pour avoir le trombone, mais comme si je le fais en local, je n'ai pas de lien, je publierai mon test, et si ça marche, je cocherai "résolu".
Quand je publie, il y a bien un lien si dans l'action je fais :, mais le problème, c'est que c'estCitation:
echo $_POST['content'].'<br>';
; évidemment je voudrais éliminer les fioritures pour ne garder que "lien" ; on fait ça avec une regexp, mais je ne sais pas comment : peux-tu m'aider ?Citation:
nom_serveur/%22lien/%22
euhhhhh ... "vous pouvez répéter la question ??" 8O
OK, j'ai voulu mettre un lien dans mon texte ; et comme ça ne donne rien en local, j'ai mis sur internet. En fait le lien n'est pas visible dans l'éditeur, mais quand on affiche le contenu dans l'action du formulaire (d'où mon echo). Dans mon exemple, je ne me suis pas cassé ; j'ai juste mis le mot "google" ; je l'ai sélectionné et comme lien (icône trombone), j'ai mis "http://www.google.com". Mais quand je fais l'echo, au lieu d'avoir juste "http://www.google.com", j'ai "nom_du_serveur/%22http://www.google.com/%22" et je cherche une solution pour virer tout ce qui est en trop dans l'echo.
Et sinon, comme j'ai bien aimé ta signature, j'en ai mise une que je viens d'apprendre ce matin, et que j'aime bien aussi. ;)
A quel moment fais-tu cet echo ??
A part en local (et encore !)
Moi, je n'ai jamais eu tes problèmes :
Tu peux tester ici : http://jreaux.free.fr/PHP-GESTION-NEWS/news_ADMIN/Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <!-- dans le formulaire --> <p><!-- contenu : Editeur WYSIWYG TinyMCE --> <label for="idnewsContenu">CONTENU :</label><br /><br /> <textarea id="idnewsContenu" name="newsContenu" rows="25" cols="70"><?php echo htmlentities($newsContenu); ?></textarea> </p> <?php // traitement $newsContenu = mysql_real_escape_string(stripslashes(trim($_POST['newsContenu']))); ?> <?php // affichage echo $newsContenu; ?>
Ps : une autre citation :
"Il faut toujours viser la lune, car même en cas d’échec, on atterrit dans les étoiles…"
Oscar WILDE
Le lien que tu mets marche bien en effet, mais je n'ai pas résolu mon problème :
et afficher.php :Code:
1
2
3 ... <form method="post" action="afficher.php"><textarea id="content" name="content" style="width: 100%;"> </textarea><input name="save" value="Submit" type="submit"></form>
Code:
1
2
3 <?php echo mysql_real_escape_string(stripslashes(trim($_POST['content']))); ?>
et que renvoie ton echo ?
A mon avis, ton problème n'a pas de rapport avec l'éditeur wysiwyg (tinymce ou fckeditor).
Je viens seulement de voir ton post ; le echo renvoie ce code :et donc il y a des anti-slashes en trop : que faire ?Code:<p><a href=\"http://www.google.com\">google</a></p><br>
J'ai trouvé la solution (simple mais content d'avoir trouvé et en fait, ton dernier post m'a mis sur la voie) ; donc l'action, dans l'action, je fais ça :et j'ai viré la fonction mysql_real_escape_string car comme il n'y a pas de mysql, il n'aime pas.Code:
1
2
3
4
5 <?php $content=$_POST['content']; $content=str_replace('\\','',$content); echo (stripslashes(trim($content))); ?>
Ah oui !!! j'ai compris !! :lol:
mysql_real_escape_string() AJOUTAIT des anti-slashes !!!
(normal, puisqu'il préparait la variable a être enregistrée en BdD !
Donc, pas besoin de str_replace :
:ccool:Code:
1
2
3
4 <?php $content = stripslashes(trim($_POST['content'])); // stripslashes() enlève aussi les anti-slashes echo $content; ?>
J'ai décoché "résolu", car encore un problème : toute la mise en forme effectuée avec l'éditeur (mise en gras, listes, liens, etc.) est perdue dans l'action : si dans celle-ci, je fais :où "texte" est le name de la textarea, y a que le texte (la mise en forme n'y est pas). Donc comment faire ?Code:
1
2 $texte=htmlentities($_POST['texte']); echo "Texte : ".$texte."<br>";
C'est normal, puisque tu fais une mauvaise utilisation de htmlentities() ...
Essaye nl2br() :
Code:
1
2
3
4 <?php $content = stripslashes(trim($_POST['texte'])); echo nl2br($content); ?>
Victoire :ccool:
En tout, je dois faire ça :car l'éditeur met le contenu dans un paragraphe, ce qui crée des alinéas parasites, et rajoute d'autres trucs pénibles. Il reste juste un truc embêtant que je n'arrive pas à régler : si je fais une liste, il me donne ça (par exemple) :Code:
1
2
3
4
5
6
7 $texte = nl2br(stripslashes(trim($_POST['texte']))); $texte=str_replace('<p>','',$texte); $texte=str_replace('</p>','',$texte); $texte=str_replace('\\','',$texte); $texte=str_replace('<br>','',$texte); $texte=str_replace('<br />','',$texte);
au lieu deCode:
1
2
3
4 <ul><br /> <li>votre texte</li><br /> <li><img title="Wink" src="../jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif" alt="Wink" border="0" /></li><br /> </ul>
et je n'arrive pas à virer ces <br /> malgré le code ci-dessus ; une idée ?Code:
1
2
3
4 <ul> <li>votre texte</li> <li><img title="Wink" src="../jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif" alt="Wink" border="0" /></li> </ul>
Mon idée, c'est que tu utilises mal les fonctions !!
Chaque fonction a une utilité dans des cas précis !
=> ca dépend donc de ce que tu veux en faire :
- l'afficher directement dans la page ?,
- le ré-afficher dans un textarea ?
- l'enregistrer en BdD ?
C'est normal !! Il ne faut pas enlever les <p> </p> !Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <?php // RECUPERATION depuis le formulaire // trim() : on enleve les espaces eventuels a gauche et a droite // stripslashes() : on enlève les anti-slashes générés lors du POST $texte_from_post = stripslashes(trim($_POST['texte'])); // -> pour enregistrement en BdD // on protege d'abord des injections SQL $texte_to_sql = mysql_real_escape_string($texte_from_post); // -> pour ré-affichage dans un textarea // htmlentities() : Prépare une chaîne pour l'affichage dans un textarea ou un input ?> <textarea .....><?php echo htmlentities($texte_from_post); ?></textarea> <?php // -> pour affichage direct dans la page // nl2br() : remplace les passages de ligne par des <br /> ?> <div id="contenu"> <?php echo nl2br($texte_from_post); ?> </div>
Sinon, l'utilisation d'un éditeur de texte n'a plus d'intérêt !
Merci pour ce cours !!
J'ai essayé de m'en inspirer (je suis dans le cas d'un enregistrement en bdd, puis dans une autre page, affichage de son contenu), mais ça n'a rien changé (et je faisais déjà mysql_real_escape_string avant l'enregistrement dans mysql). J'ai fait un retour à ckeditor, mais comme c'était encore moins bien, j'ai remis tinyMCE.
Si je ne peux arranger ça, je laisserai comme ça...
Nouveau problème avec TinyMCE, mais nouveau fil de discussion...