[Sequanux-ml] editeur html

jroussel at cgt.fr jroussel at cgt.fr
Sam 30 Avr 08:01:06 CEST 2005


Salut Nico,

Voici une fonction javascript que j'utilise pour l'éditeur de
projets.sequanux.org. Je l'ai adapté a gérer de multiples éditeurs sur la
meme page :

function textarea2wysiwyg(numero){
 rjpf_editor=document.getElementById('editor' + numero);
 rjpf_editor_iframe=rjpf_editor.contentWindow.document.getElementById('wysiwyg_editor');
 rjpf_editor_iframe.contentWindow.document.body.innerHTML=document.getElementById('html'
+ numero).value;
}

Cela appel un élément <textarea name="htmlx" id="htmlx"...> (avec x un
nombre) situé dans la page et qui contient du html. La fonction prend le
html et le bascule dans l'éditeur voulu.

Cet élément porte le meme id que les tag <input ...> que tu devait mettre
dans le <form action="..." method="..." ...>.

En fait, il suffit simplement de remplacer ces tag input par des textarea
dans lesquels se situerons les pages html que tu veux modifier. Voici tout
le code, avec meme le php :

<?php
 $HTML[1]='<b>page 1</b>';
 $HTML[2]='<i>page 2</i>';
 $HTML[3]='<u>page 3</u>';
?>

<script type="text/javascript" language="javascript">
function textarea2wysiwyg(numero){
 rjpf_editor=document.getElementById('editor' + numero);
 rjpf_editor_iframe=rjpf_editor.contentWindow.document.getElementById('wysiwyg_editor');
 rjpf_editor_iframe.contentWindow.document.body.innerHTML=document.getElementById('html'
+ numero).value;
}
function fonction_qui_passe_tout_les_html_dans_les_editeurs(){
 for(var i=1;i<=3;i++){
  textarea2wysiwyg(i);
 }
}
</script>
<form method="post" action="savefile.php"
onsubmit="fonction_qui_passe_tout_les_html_dans_les_editeurs()">
<?php
for($i=1;$i<=3;$i++){
 /*
  on met un textarea qui contient la page html qui est dans la var
$HTML[x] et on cache ce textarea avec display:none.
  Le onload va appeler une fonction qui va appeler plusieurs fois la
fonction de transfert textarea2wysiwyg */
 echo '<textarea name="html'.$i.'" id="html'.$i.'"
style="width:100%;height:450px;padding:0px 0px 0px 0px;margin:0px 0px 0px
0px;display:none;">'.$HTML[$i].'</textarea>';
}
 /* on en profite pour mettre l'editeur */
 echo '<iframe src="wysiwyg.html"
style="width:100%;height:450px;padding:0px 0px 0px 0px;margin:0px 0px 0px
0px;" name="editor'.$i.'" id="editor'.$i.'"
onload="textarea2wysiwyg()"></iframe>';
?>

</form>

Comme ca, ca devrait fonctionner, mais encore une fois, je n'ai pas testé.
Rapporte moi si ca ne marche pas et que tu n'as pas réussi a déceler les
erreurs.

Ciao.

>   jroussel at cgt.fr m'a raconté au claviophone électronique moderne que :
>> Salut Nico,
>>
>> Oui, c'est comme cela qu'il faut faire.
>> Pour la taille des icônes, j'ai laissé les fichiers xcf originaux (je
>> les
>> ai fait moi meme) dans le répertoire images/.
>> Les fichiers xcf s'ouvrent avec Gimp.
>>
>> Ciao :)
>>
>
> Ok ça roule. Merci.
>
> Dernière question : si je veux modifier un texte qui existe déjà,
> comment l'insérer dans l'iframe ?
>
> --
> Nico
> http://nicolas.poulain.ouvaton.org
> --
> Attention, le reply-to se fait à l'expéditeur, pas à la liste
> Sequanux-ml at sequanux.org
> http://sequanux.org/cgi-bin/mailman/listinfo/sequanux-ml
>



Plus d'informations sur la liste de diffusion Sequanux-ml