Editeur wysiwyg RTE +SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Editeur wysiwyg RTE +SQL

par aelurus » 21 juil. 2006, 10:12

Apres plusieures relecture et essais voila :)
cela fonctionne, les modif du script permetent a ce wyusiwyg de creer un fichier html dans le rep definie pour l'instant sans choix ainsi que d'ouvrire et de modofier les fichier html ce trouvant dans ce meme rep :)
L'url donner au dessus permet de voir et tester la chose.
Le principe est résolut a mon niveau mais n'ayant pas demarer le sujet je ne peux pas mettre de resolut.Mon principe est tres facilement adaptable a une BD je tenterais de porter le script dans cette optique plus tard ^^
Deja finir celui la
Merci ^^

par aelurus » 20 juil. 2006, 10:29

Je pense aussi creuser ta version Ryle ^^
Car j'ai effectivement un soucis pour ouvrir une page existante

par aelurus » 20 juil. 2006, 10:26

Voila mes bidouilles pas fini pas eu le temps d'en faire plus, ouvert a toute proposition et ou critique car je suis pas un pro

http://aelurus.free.fr/bricole/wysiwyg/conceptRTE/

bon donner un titre marchait :'( j'ai un conflit dans mon form la

par aelurus » 19 juil. 2006, 17:00

Je prefert la version avec
$conceptRTEvalue
Je la trouve plus pour travailler dessus :) (ùais je peux me tromper).

Ce que je ferais avec une BD ^^
on sait que $conceptRTEvalue passe par un form deja a la base.
Donc pour moi
-un form qui propose les nom de fichier a editer
-moi les option seraient remplie par un readdir
-toi par une requette sql ( genre select all nomfichierhtml + une boucle pour faire tes options

deja la on recup tout les noms ^^
ensuite ba une fois que y a le noms ba

-pour moi un $conceptRTEvalue=readdir+opendir+.....

-pour toi $conceptRTEvalue=select nomdefichier......


bon c'est tres schematique tout sa mais voile comment je vois la choses ^^
et bien sur apres tu dois aussi ecrire la modif dans ta BD ^^

par Ryle » 19 juil. 2006, 16:41

Pas loin, mais c'était plus simple que ça :)
C'est quand tu appelles la ligne suivante qu'il écrit la fonction javascript qui génère l'éditeur.
echo "writeRichText('rte', '$content', 520, 200, true, false);"; 
Si à ce moment $content contient le code html que tu as en base, il sera affiché dans l'éditeur à l'ouverture :) (tu peux aussi changer $content par le nom de la variable dans laquel tu as ton code html si tu préfères dans ce sens :))

Pour une nouvelle page, il suffit de laisser $content à vide, ou de lui donner une valeur par défaut :
$content = '<b>Hello World !</b>';
echo "writeRichText('rte', '".$content."', 520, 200, true, false);"; // personnellement je préfère sortir les variables des chaines, mais l'autre syntaxe fonctionne aussi 

par paul » 19 juil. 2006, 16:16

ouais donc tu ferai comment toi avec une base sql et modification du html généré ?

par aelurus » 19 juil. 2006, 15:46

JS moins j'y touche mieux je me porte ^^.
Par contre avec ma methode j'arrive a dire ou sauvegarder le fichier html sous quel nom et sais aussi le lui refaire ouvrire dans le pop up.
Donc je n'ais plus qu'a reprendre les form en fonction de sa et je deverais pourvoir obtenire une admin wysiwyg pour editer ou creer des fichier html dans un site sa c'est la théorie reste plus qu'a maintenant...
Pour la BD je pense que mon systheme est portable avec des requettes mysql puisque je gere tout depuis l'index le JS ne traite que ce que le php lui donne ^^, mais c surement faisable via du JS mais ... :)

par paul » 19 juil. 2006, 15:35

Pour la popu le script d'ouverture est là :

Code : Tout sélectionner

echo "<script>"; echo "parameter = 'toolbar=no,menubar=no,location=no,resizable=no,status=no,scrollbars=yes,height=400,width=800,left=150,top=150';"; echo "OpenWin = this.open('$fileName', 'conceptRTEpopUp', parameter);"; echo "</script>"; }
il ouvre le fichier s'appelant $fileName qui est la date-lejour-l'heure.html ici :

Code : Tout sélectionner

$currentDate = date("Ymd"); $currentTime = date("His"); $fileName = $currentDate . $currentTime . ".html";
avec ça c'est facile de changer l'écriture du fichier...


Pour mon problème de DB, étant meilleur en php qu'en JS, je pensais faire 2 fichiers JS (c'est une méthode de porc je préviens ^^), un avec la configuration vide, et un avec la configuration qui recupere mon html de la bdd. De là tu fais une fonction (php) qui vérifie si ta variable $conceptRTE.. est initialisé ou non, et suivant la reponse elle redirige vers un des 2 fichier JS ^^

Ca peut surement etre optimisé en JS.. si qqun s'y connait pour faire un test sur une variable...

par aelurus » 19 juil. 2006, 15:34

Je pense avoir trouvé
echo "OpenWin = this.open('../testwysiwyg/$fileName', 'conceptRTEpopUp', parameter);";
enfin pour mon erreure ^^

par aelurus » 19 juil. 2006, 14:59

Nan nan
c'est dans

Code : Tout sélectionner

$conceptRTEvalue
que tu dois chercher a mettre le contenue de ta page a modifier via un formulaire c pas dans le JS.
Fait un formulaire qui pointe sur ta BD et qui retourne le contenue html dans cette variable.
Sinon je ne vois pas comment faire dans le JS.
Mais je bloque toujours sur le chemin pour l'ouverture du pop up
Not Found
The requested URL /bricole/wysiwyg/conceptRTE/test20060719145407.html was not found on this server.
si quelqu'un à une idée

par aelurus » 19 juil. 2006, 14:09

Par contre si tu trouve la solution pour lui faire afficher ce que tu veux soit une nouvelle page soit une existante ba je veux bien ta methode car je ne trouve pas trop via le javascript que je gere tres tres mal je comprend a peine ce que je lit.
Comme pour lui indiquer le chemin d'ouverture du fichier sauvgarder... je creuse.
J'ai juste réussi a les sauvegarder comme je voulais donc la sortie ce passe pas trop mal mais c au niveau de l'entrée que je nage ^^ soyons clair :)

par Invité » 19 juil. 2006, 12:10

Nop, j'ai compris ^^
Il parle de ça :

Code : Tout sélectionner

frameHtml += "<link media=\"all\" type=\"text/css\" href=\"" + cssFile + "\" rel=\"stylesheet\">\n"; } frameHtml += "<style>\n"; frameHtml += "body {\n"; frameHtml += " background: #FFFFFF;\n"; frameHtml += " margin: 0px;\n"; frameHtml += " padding: 0px;\n"; frameHtml += "}\n"; frameHtml += "</style>\n"; frameHtml += "</head>\n"; frameHtml += "<body class=rte>\n"; frameHtml += html + "\n"; frameHtml += "</body>\n"; frameHtml += "</html>";
dans le fichier concepRTE.JS
il faut donc ajouter (si j'ai bien compris) :
avec une condition :
- si on veut ecrire une nouvelle page => on laisse comme cela (page vide)
- si on veut réediter ce qu'on avait déjà écrit , on insere a la place du code html la variable stocké dans la base.
Corrige moi si j'ai faux Ryle !
Merci en tout cas

par aelurus » 19 juil. 2006, 11:58

Code : Tout sélectionner

echo "<script language='JavaScript' type='text/javascript'>"; $content = RTESafe($conceptRTEvalue); //============================================================================// // Usage: initRTE(imagesPath, includesPath, cssFile, language) // //============================================================================// echo "initRTE('images/', '', 'style.css', '$language');"; //============================================================================// // Usage: writeRichText(fieldname, html, width, height, buttons) // //============================================================================// echo "writeRichText('rte', '$content', 520, 200, true, false);"; echo "</script>";
c par la que sa ce passe. Mais si je capte bien l'affichage du contenue de l'editeur ne passe pas par une fonction javascript ?
Ou j'ai mal lut ^^

par Ryle » 19 juil. 2006, 11:44

De mémoire (cela dit, ça a peut être évolué depuis j'avais pas de génération de fichier html quand j'avais bossé dessus), pour faire afficher ton éditeur dans ta page, tu passes par une fonction writeRichText(). Le premier argument correspond au nom/id du champ, le deuxième au contenu par défaut qui doit avoir pour valeur un truc du genre '<p style="MARGIN: 0px"></p>'

Il te suffit donc de remplacer cette valeur par défaut par le code html que tu récupères de ta base pour qu'il soit pris en compte dans l'éditeur. En faisant effectivement attention à proteger ou remplacer les caractères spéciaux qui pourraient poser problème dans le javascript (apostrophes, retour à ligne, etc.) :)

par aelurus » 19 juil. 2006, 11:21

Effectivement tout ce passe avec $conceptRTEvalue

regarde les premiere ligne du code $conceptRTEvalue passe par l'url donc avec un formulaire qui pointe sur tes enregistrement dans ta BD tu as moyen de mettre ce que tu veux dans $conceptRTEvalue donc de l'afficher dans l'editeur et de le modifier, ne restera plus qu'a le réenregistrer la ou tu veux et avec le nom que tu veux.

Je pense que Ryle voulais te mettre en garde sur le fait que tu veuille mettre dans ta BD des info du genre

<html>
<a href="...">

du code html avec plien de " ' / ....
c le genre de symbole legeremnt casse ... a inserer dans des requette mysql
enfin c mon avis ^^