Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme bbcode

    29 août 2006 à 19:23:13

    Bonjours
    Voilà j'ai un problème avec mon bbcode.Il basé sur le tutos du sdz.Quand je veux activer la previsualisation en direct mon script plante mortellement et je suis obliger de quitter mozilla firefox. Voiçi mes codes
    codes html et php(formulaire):
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <script language="javascript" type="text/javascript" src="prev.js"></script><!-- on appelle le fichier prev.js pour faire fonctionne la prévisualisation -->
    <script language="Javascript">
    function bbcode(bbdebut, bbfin)
    {
    var input = window.document.formulaire.textarea;
    input.focus();
    /* pour IE (toujous un cas appar lui ;) )*/
    if(typeof document.selection != 'undefined')
    {
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = bbdebut + insText + bbfin;
    range = document.selection.createRange();
    if (insText.length == 0)
    {
    range.move('character', -bbfin.length);
    }
    else
    {
    range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
    }
    range.select();
    }
    /* pour les navigateurs plus récents que IE comme Firefox... */
    else if(typeof input.selectionStart != 'undefined')
    {
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end);
    var pos;
    if (insText.length == 0)
    {
    pos = start + bbdebut.length;
    }
    else
    {
    pos = start + bbdebut.length + insText.length + bbfin.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
    }
    /* pour les autres navigateurs comme Netscape... */
    else
    {
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos))
    {
    pos = prompt("insertion (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length)
    {
    pos = input.value.length;
    }
    var insText = prompt("Veuillez taper le texte");
    input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos);
    }
    }
    function smilies(img)
    {
    window.document.formulaire.textarea.value += '' + img + '';
    }
    </script>
    </head>
    <h3><a href="liste_news.php">Retour à la liste des news</a></h3>
    <body>
    <?php
    require('config.php');
            mysql_connect($bdd_hote, $bdd_user, $bdd_password);
    mysql_select_db($bdd_base);

    if (isset($_GET['modifier_news']))  // Si on demande de modifier une news
    {
            // On récupère les infos de la correspondante
            $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']);
            $donnees = mysql_fetch_array($retour);
           
            // On place le titre et le contenu dans des variables simples
            $titre = $donnees['titre'];
            $contenu = $donnees['contenu'];
            $pseudo = $_POST['pseudo'];
            $id_news = $donnees['id']// Cette variable va servir pour se souvenir que c'est une modification
    }
    else  // C'est qu'on rédige une nouvelle news
    {
            // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
            $titre = '';
            $contenu = 'ici votre texte';
            $pseudo = '';
                    $niveau = '0';
                    echo ' si vous voulez écrire une news,laissez le champ niveau à 0.';
            $id_news = 0// La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>

    <form action="liste_news.php" method="post" name="formulaire">

    <p>Pseudo : <input type="text" size="35" name="pseudo" value="<?php echo $donnees['pseudo']; ?>" /> </p>
    <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>niveau <input type="text" size="30" name="niveau" value="<?php echo $niveau; ?>" /></p>
    <p>
    <input type="button" id="gras" name="gras" value="gras" onClick="javascript:bbcode('<gras>', '</gras>');return(false)" />
    <input type="button" id="italique" name="italique" value="italique" onClick="javascript:bbcode('<italique>', '</italique>');return(false)" />
    <input type="button" id="souligne" name="souligne" value="souligne" onClick="javascript:bbcode('<souligne>', '</souligne>');return(false)" />
    <input type="button" id="lien" name="lien" value="lien" onClick="javascript:bbcode('<lien destination=&quot;http://&quot;>', '</lien>');return(false)" />


    <img src ="images/bleu.gif" id="bleu" name="bleu" value="bleu" onClick="javascript:bbcode('<couleur=&quot;bleu&quot;>', '</couleur>');return(false)" />
    <img src ="images/orange.gif" id="orange" name="orange" value="orange" onClick="javascript:bbcode('<couleur=&quot;orange&quot;>', '</couleur>');return(false)" />
    <img src ="images/rouge.gif" id="rouge" name="rouge" value="rouge" onClick="javascript:bbcode('<couleur=&quot;rouge&quot;>', '</couleur>');return(false)" />
    <img src ="images/violet.gif" id="violet" name="violet" value="violet" onClick="javascript:bbcode('<couleur=&quot;violet&quot;>', '</couleur>');return(false)" />
    <img src ="images/noir.gif" id="noir" name="noir" value="noir" onClick="javascript:bbcode('<couleur=&quot;noir&quot;>', '</couleur>');return(false)" />
    <img src ="images/blanc.gif" id="blanc" name="blanc" value="blanc" onClick="javascript:bbcode('<couleur=&quot;blanc&quot;>', '</couleur>');return(false)" />
    <img src ="images/vert.gif" id="vert" name="vert" value="vert" onClick="javascript:bbcode('<couleur=&quot;vert&quot;>', '</couleur>');return(false)" />
    <img src ="images/jaune.gif" id="jaune" name="jaune" value="jaune" onClick="javascript:bbcode('<couleur=&quot;jaune&quot;>', '</couleur>');return(false)" />

    <br />

    <img src="smileys/ange.gif" onClick="javascript:smilies('[ange]');return(false)">
    <img src="smileys/blink.gif" onClick="javascript:smilies('[blink]');return(false)">
    <img src="smileys/diable.gif" onClick="javascript:smilies('[diable]');return(false)">
    <img src="smileys/heureux.gif" onClick="javascript:smilies('[heureux]');return(false)">
    <img src="smileys/hihi.gif" onClick="javascript:smilies('[hihi]');return(false)">
    <img src="smileys/huh.gif" onClick="javascript:smilies('[huh]');return(false)">
    <img src="smileys/langue.gif" onClick="javascript:smilies('[langue]');return(false)">
    <img src="smileys/magicien.gif" onClick="javascript:smilies('[magicien]');return(false)">
    <img src="smileys/mechant.gif" onClick="javascript:smilies('[mechant]');return(false)">
    <img src="smileys/ninja.gif" onClick="javascript:smilies('[ninja]');return(false)">
    <img src="smileys/pinch.gif" onClick="javascript:smilies('[pinch]');return(false)">
    <img src="smileys/pirate.gif" onClick="javascript:smilies('[pirate]');return(false)">
    <img src="smileys/rire.gif" onClick="javascript:smilies('[rire]');return(false)">
    <img src="smileys/rouge.gif" onClick="javascript:smilies('[rouge]');return(false)">
    <img src="smileys/siffle.gif" onClick="javascript:smilies('[siffle]');return(false)">
    <img src="smileys/smile.gif" onClick="javascript:smilies('[smile]');return(false)">
    <img src="smileys/soleil.gif" onClick="javascript:smilies('[soleil]');return(false)">
    <img src="smileys/triste.gif" onClick="javascript:smilies('[triste]');return(false)">
    <img src="smileys/unsure.gif" onClick="javascript:smilies('[unsure]');return(false)">
    <img src="smileys/waw.gif" onClick="javascript:smilies('[waw]');return(false)">
    <img src="smileys/zorro.gif" onClick="javascript:smilies('[zorro]');return(false)">
    </div><br />
         <input name="auto" id="auto" type="checkbox" onClick="automatique()" /> <label for="auto">Prévisualisation automatique</label>
    <!-- on créer la case à cocher pour un prévisualisation automatique -->
    <br />
    <textarea cols=35 rows=10 id="textarea" name="textarea">C'est dans ce textarea que va s'afficher les balises BBCode.</textarea>
    <br />
    <input type="button" value="Prévisualiser" onClick="previsualisation();return(false)" /><!-- ce bouton va permettre aux utilisateurs de d'avoir un aperçu quand ils le veulent, pas en direct -->
    <div style="border: 1px dashed #000000; padding: 0.2em; height: 200px; overflow: auto; width: 19%;" align="left" id="prev"></div>
    <!-- on créer un div avec quelques caractéristique, on lui donne un nom et on ne le remplit pas, on le laisse vide -->
    <input type="submit" value="envoyer" />
    </p>
    </form>
    </body>
    </html>

    code js (previsualisation):
    var timer=0;
    var ptag=String.fromCharCode(5,6,7);
    function  previsualisation() {
    t=document.formulaire.textarea.value
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("prev").innerHTML=t
    if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
    <!-- le "1" est le temps que met le texte à s'afficher, "1" : le texte s'affichera en même temps que l'on écrit (en s) -->
    }
    function automatique() {
    if (document.formulaire.auto.checked) previsualisation() <!-- si on a cocher la case d'
    aperçu automatique -->
    }
    function code_to_html(t) {
    t=nl2khol(t)
    // balise Gras <!-- on lui dis que telles balises correspondent à tels codes en HTML -->
    t=deblaie(/(\<\/gras\>)/g,t)
    t=remplace_tag(/\<gras\>(.+)\<\/gras\>/g,'<strong>$1</strong>',t)
    t=remblaie(t)

    // balise Italic
    t=deblaie(/(\<\/italique\>)/g,t)
    t=remplace_tag(/\<italique\>(.+)\<\/italique\>/g,'<span style="font-style: italic;">$1</span>',t)
    t=remblaie(t)

    // balise Souligne
    t=deblaie(/(\<\/souligne\>)/g,t)
    t=remplace_tag(/\<souligne\>(.+)\<\/souligne\>/g,'<span style="text-decoration: underline;">$1</span>',t)
    t=remblaie(t)

    // balise Image
    t=deblaie(/(\<\/image\>)/g,t)
    t=remplace_tag(/\<image\>(.+)\<\/image\>/g,'<img src="$1" alt="" />',t)
    t=remblaie(t)

    // balise URL   
    t=deblaie(/(\<\/lien\>)/g,t)
    t=remplace_tag(/\<lien destination="(.+)"\>(.+)\<\/lien\>/g,'<a href="$1" target="_blank">$2</a>',t)
    t=remblaie(t)

    // balise couleur bleu   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="bleu"\>(.+)\<\/couleur\>/g,'<span style="color: blue;">$1</span>',t)
    t=remblaie(t)

    // balise couleur orange   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="orange"\>(.+)\<\/couleur\>/g,'<span style="color: orange;">$1</span>',t)
    t=remblaie(t)

    // balise couleur rouge   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="rouge"\>(.+)\<\/couleur\>/g,'<span style="color: red;">$1</span>',t)
    t=remblaie(t)

    // balise couleur violet   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="violet"\>(.+)\<\/couleur\>/g,'<span style="color: purple;">$1</span>',t)
    t=remblaie(t)

    // balise couleur noir   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="noir"\>(.+)\<\/couleur\>/g,'<span style="color: black;">$1</span>',t)
    t=remblaie(t)

    // balise couleur blanc   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="blanc"\>(.+)\<\/couleur\>/g,'<span style="color: white;">$1</span>',t)
    t=remblaie(t)

    // balise couleur vert   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="vert"\>(.+)\<\/couleur\>/g,'<span style="color: green;">$1</span>',t)
    t=remblaie(t)

    // balise couleur jaune   
    t=deblaie(/(\<\/couleur\>)/g,t)
    t=remplace_tag(/\<couleur="jaune"\>(.+)\<\/couleur\>/g,'<span style="color: yellow;">$1</span>',t)
    t=remblaie(t)

    // smilies Smile <!-- on oublie pas les smilies -->
    t=remplace_tag(/[ange]/g,'<img src="smileys/ange.gif" alt="" />',t)
    t=remplace_tag(/[blink]/g,'<img src="smileys/blink.gif" alt="" />',t)
    t=remplace_tag(/[diable]/g,'<img src="smileys/diable.gif" alt="" />',t)
    t=remplace_tag(/[heureux]/g,'<img src="smileys/heureux.gif" alt="" />',t)
    t=remplace_tag(/[hihi]/g,'<img src="smileys/hihi.gif" alt="" />',t)
    t=remplace_tag(/[huh]/g,'<img src="smileys/huh.gif" alt="" />',t)
    t=remplace_tag(/[langue]/g,'<img src="smileys/langue.gif" alt="" />',t)
    t=remplace_tag(/[magicien]/g,'<img src="smileys/magicien.gif" alt="" />',t)
    t=remplace_tag(/[mechant]/g,'<img src="smileys/mechant.gif" alt="" />',t)
    t=remplace_tag(/[ninja]/g,'<img src="smileys/ninja.gif" alt="" />',t)
    t=remplace_tag(/[pinch]/g,'<img src="smileys/pinch.gif" alt="" />',t)
    t=remplace_tag(/[pirate]/g,'<img src="smileys/pirate.gif" alt="" />',t)
    t=remplace_tag(/[rire]/g,'<img src="smileys/rire.gif" alt="" />',t)
    t=remplace_tag(/[rouge]/g,'<img src="smileys/rouge.gif" alt="" />',t)
    t=remplace_tag(/[siffle]/g,'<img src="smileys/siffle.gif" alt="" />',t)
    t=remplace_tag(/[smile]/g,'<img src="smileys/smile.gif" alt="" />',t)
    t=remplace_tag(/[soleil]/g,'<img src="smileys/soleil.gif" alt="" />',t)
    t=remplace_tag(/[triste]/g,'<img src="smileys/triste.gif" alt="" />',t)
    t=remplace_tag(/[unsure]/g,'<img src="smileys/unsure.gif" alt="" />',t)
    t=remplace_tag(/[waw]/g,'<img src="smileys/waw.gif" alt="" />',t)
    t=remplace_tag(/[zorro]/g,'<img src="smileys/zorro.gif" alt="" />',t)
    t=remplace_tag(/[banane]/g,'<img src="smileys/banane.gif" alt="" />',t)
    t=remplace_tag(/[banane_dance]/g,'<img src="smileys/banane_dance.gif" alt="" />',t)
    t=remplace_tag(/[banane_biere]/g,'<img src="smileys/banane_biere.gif" alt="" />',t)
    t=remplace_tag(/[banane_costar]/g,'<img src="smileys/banane_costar.gif" alt="" />',t)
    t=remplace_tag(/[banane_coucou]/g,'<img src="smileys/banane_coucou.gif" alt="" />',t)
    t=remplace_tag(/[banane_duo]/g,'<img src="smileys/banane_duo.gif" alt="" />',t)
    t=remplace_tag(/[banane_rasta]/g,'<img src="smileys/banane_rasta.gif" alt="" />',t)
    t=remblaie(t)
    t=unkhol(t)
    t=nl2br(t)
    return t
    }
    <!-- tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP -->
    function deblaie(reg,t) {
    textarea=new String(t);
    return textarea.replace(reg,'
    $1\n');
    }
    function remblaie(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,'
    ');
    }
    function remplace_tag(reg,rep,t) {
    textarea=new String(t);
    return textarea.replace(reg,rep);
    }
    function nl2br(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,'
    <br/>');
    }
    function nl2khol(t) {
    textarea=new String(t);
    return textarea.replace(/\n/g,ptag);
    }
    function unkhol(t) {
    textarea=new String(t);
    return textarea.replace(new RegExp(ptag,'
    g'),'\n');

    Voila donc je ne sais pas!
    Merçi
    • Partager sur Facebook
    • Partager sur Twitter
      6 septembre 2006 à 16:38:07

      UP! ! ! car je ne sais vraiment pas!
      • Partager sur Facebook
      • Partager sur Twitter
        6 septembre 2006 à 18:12:25

        Bon je n'ai pas encore regardé en détail mais deja un truc me saute aux yeux...

        t=remplace_tag(/[ange]/g,'<img src="smileys/ange.gif" alt="" />',t)
        t=remplace_tag(/[blink]/g,'<img src="smileys/blink.gif" alt="" />',t)
        t=remplace_tag(/[diable]/g,'<img src="smileys/diable.gif" alt="" />',t)
        t=remplace_tag(/[heureux]/g,'<img src="smileys/heureux.gif" alt="" />',t)
        t=remplace_tag(/[hihi]/g,'<img src="smileys/hihi.gif" alt="" />',t)
        t=remplace_tag(/[huh]/g,'<img src="smileys/huh.gif" alt="" />',t)
        t=remplace_tag(/[langue]/g,'<img src="smileys/langue.gif" alt="" />',t)
        t=remplace_tag(/[magicien]/g,'<img src="smileys/magicien.gif" alt="" />',t)
        t=remplace_tag(/[mechant]/g,'<img src="smileys/mechant.gif" alt="" />',t)
        t=remplace_tag(/[ninja]/g,'<img src="smileys/ninja.gif" alt="" />',t)
        t=remplace_tag(/[pinch]/g,'<img src="smileys/pinch.gif" alt="" />',t)
        t=remplace_tag(/[pirate]/g,'<img src="smileys/pirate.gif" alt="" />',t)
        t=remplace_tag(/[rire]/g,'<img src="smileys/rire.gif" alt="" />',t)
        t=remplace_tag(/[rouge]/g,'<img src="smileys/rouge.gif" alt="" />',t)
        t=remplace_tag(/[siffle]/g,'<img src="smileys/siffle.gif" alt="" />',t)
        t=remplace_tag(/[smile]/g,'<img src="smileys/smile.gif" alt="" />',t)
        t=remplace_tag(/[soleil]/g,'<img src="smileys/soleil.gif" alt="" />',t)
        t=remplace_tag(/[triste]/g,'<img src="smileys/triste.gif" alt="" />',t)
        t=remplace_tag(/[unsure]/g,'<img src="smileys/unsure.gif" alt="" />',t)
        t=remplace_tag(/[waw]/g,'<img src="smileys/waw.gif" alt="" />',t)
        t=remplace_tag(/[zorro]/g,'<img src="smileys/zorro.gif" alt="" />',t)
        t=remplace_tag(/[banane]/g,'<img src="smileys/banane.gif" alt="" />',t)
        t=remplace_tag(/[banane_dance]/g,'<img src="smileys/banane_dance.gif" alt="" />',t)
        t=remplace_tag(/[banane_biere]/g,'<img src="smileys/banane_biere.gif" alt="" />',t)
        t=remplace_tag(/[banane_costar]/g,'<img src="smileys/banane_costar.gif" alt="" />',t)
        t=remplace_tag(/[banane_coucou]/g,'<img src="smileys/banane_coucou.gif" alt="" />',t)
        t=remplace_tag(/[banane_duo]/g,'<img src="smileys/banane_duo.gif" alt="" />',t)
        t=remplace_tag(/[banane_rasta]/g,'<img src="smileys/banane_rasta.gif" alt="" />',t)


        Dans tout ça tu as oublié de déspécialiser les [ et les ] en leur mettant un \ devant...
        • Partager sur Facebook
        • Partager sur Twitter
          6 septembre 2006 à 18:45:21

          Alors déja merçi car sa marche mais maintenant, je n'ai pas la previsualisation auto
          • Partager sur Facebook
          • Partager sur Twitter

          probleme bbcode

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown