Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec mon BBcode

Rien ne se passe;....

    29 juillet 2006 à 10:20:16

    Bonjour a tous.

    J'ai suivi le tutorial de Under-Warz pour faire un BBcode et j'ai voulu le faire mais il ne marche pas du tout!

    J'ai fait les codes, le formulaire, regarder si il n'y a pas de bug, je transfère sur le FTP et c'est la grosse décéption.
    Rien ne marche! Si je clique gras... la balise ne se met pas dans le textaera.

    La visualisation en directe non plus.
    Les smileys non plus.

    J'ai comme même essayer d'écrire les balises a la main mais sa ne marche pas non plus lorsque le tutorial s'affiche.

    Voici mes codes:
    <form method="post" action="rediger_tuto.php" name="formulaire">

    <input type="button" id="gras" name="gras" value="Gras" />
    <input type="button" id="italic" name="italic" value="Italique" />
    <input type="button" id="image" name="image" value="Image" />
    <input type="button" id="lien" name="lien" value="Lien" />
    <a href="#" title="Créer une citation">Citation</a>
    <img src="http://www.siteduzero.com/Templates/images/smilies/smile.png" alt="" onClick="javascript:smilies(':)');return(false)" />
    <img src="http://www.siteduzero.com/Templates/images/smilies/heureux.png" alt="" onClicke="javascript;smilies(':d)');return(false)" /><br/><br/>

    </center>

     
      <label>Titre: </label> <input type="text" name="titre" size="35" value="<?php echo $_GET['titre'];?>" />
      <label>Pseudo: </label> <input type="text" name="pseudo" size="35" value="<?php echo $_GET['pseudo'];?>
    " />
      <label>Contenu:</label> <textarea name="article" rows=20 cols=51 ><?php echo $_GET['article']; ?></textarea><br/>
     
      <br/>
      <center><input type="button" value="Prévisualiser" onClick="previsualisation();return(false)" /></center>
      <div style="border: 1px dashed #000000; padding: 0.2em; height: 300px; overflow: auto; width: 95%;" align="left" id="prev">   </div>

      <input type="submit" name="submit" value="Envoyer" />
      </form>


    Le code JS en début de page
    <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.article;
    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.article.value += '' + img + '';
    }
    </script>


    le code prev.js
    var timer=0;
    var ptag=String.fromCharCode(5,6,7);
    function  previsualisation() {
    t=document.formulaire.article.value
    t=code_to_html(t)
    if (document.getElementById) document.getElementById("prev").innerHTML=t
    if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)

    }
    function automatique() {
    if (document.formulaire.auto.checked) previsualisation()
    }
    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,'<span style="font-weight: bold;">$1</span>',t)
    t=remblaie(t)

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

    // balise Citation
    t=deblaie(/(\[\/citation\])/g,t)
    t=remplace_tag(/\[citation=([\s\S]*?)\](.+)\[\/citation\]/g,'<strong>Citation $1 :</strong><div style="border: 1px solid #000000; width: 50%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">$2</div>',t)
    t=remblaie(t)

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

    // balise URL   
    t=deblaie(/(\[\/url\])/g,t)
    t=remplace_tag(/\[\url=([\s\S]*?)\](.+)\[\/url\]/g,'<a href="$1" target="_blank">$2</a>',t)
    t=remblaie(t)

    // smilies Smile <!-- on oublie pas les smilies -->
    t=remplace_tag(/:)/g,'<img src="http://siteduzero.com/Templates/images/smilies/smile.png" alt="" />',t)
    t=remplace_tag(/:d/g,'<img src="http://www.siteduzero.com/Templates/images/smilies/heureux.png" alt="" />',t)
    t=remblaie(t)
    t=unkhol(t)
    t=nl2br(t)
    return t
    }

    function deblaie(reg,t) {
    textarea=new String(t);
    return article.replace(reg,'$1\n');
    }
    function remblaie(t) {
    textarea=new String(t);
    return article.replace(/\n/g,'');
    }
    function remplace_tag(reg,rep,t) {
    textarea=new String(t);
    return article.replace(reg,rep);
    }
    function nl2br(t) {
    textarea=new String(t);
    return article.replace(/\n/g,'<br/>');
    }
    function nl2khol(t) {
    textarea=new String(t);
    return article.replace(/\n/g,ptag);
    }
    function unkhol(t) {
    textarea=new String(t);
    return article.replace(new RegExp(ptag,'g'),'\n');
    } 



    Merci d'avance pour votre aide.


    Cordialement
    . : m0nk3y : .
    • Partager sur Facebook
    • Partager sur Twitter
      29 juillet 2006 à 11:06:51

      Essais en appellant ta zone de saisie "textarea"

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

      <input type="button" id="gras" name="gras" value="Gras" />
      <input type="button" id="italic" name="italic" value="Italique" />
      <input type="button" id="image" name="image" value="Image" />
      <input type="button" id="lien" name="lien" value="Lien" />
      <a href="#" title="Créer une citation">Citation</a>
      <img src="http://www.siteduzero.com/Templates/images/smilies/smile.png" alt="" onClick="javascript:smilies(':)');return(false)" />
      <img src="http://www.siteduzero.com/Templates/images/smilies/heureux.png" alt="" onClicke="javascript;smilies(':d)');return(false)" /><br/><br/>

      </center>

       
        <label>Titre: </label> <input type="text" name="titre" size="35" value="<?php echo $_GET['titre'];?>" />
        <label>Pseudo: </label> <input type="text" name="pseudo" size="35" value="<?php echo $_GET['pseudo'];?>
      " />
        <label>Contenu:</label> <textarea name="textarea" cols=51 rows=20 id="textarea" ><?php echo $_GET['article']; ?></textarea><br/>
       
        <br/>
        <center><input type="button" value="Prévisualiser" onClick="previsualisation();return(false)" /></center>
        <div style="border: 1px dashed #000000; padding: 0.2em; height: 300px; overflow: auto; width: 95%;" align="left" id="prev">   </div>

        <input type="submit" name="submit" value="Envoyer" />
        </form>


      Voila le code du formulaire
      • Partager sur Facebook
      • Partager sur Twitter
        29 juillet 2006 à 12:34:52

        Non désolé, sa me fait toujours le même résultat.

        Merci quand même.
        • Partager sur Facebook
        • Partager sur Twitter
          29 juillet 2006 à 13:24:02

          Pour débugger un script js, je te conseil firefox avec l'extension firebug :o (enfin, je dis ça, j'ai testé que ça :D )

          -Tes expressions régulières de smileys ne sont pas échapé, dans un smiley du genre ":)" il faut mettre un slash avant la parenthèse.

          t=remplace_tag(/:\)/g,'<img src="http://siteduzero.com/Templates/images/smilies/smile.png" alt="" />',t);


          -Tu as renommé les variables dans les fonctions deblaie, remblaie etc, mais à moitié donc le script avait plus aucun sens.

          -
          if (document.formulaire.auto.checked) timer=setTimeout(previsualisation,1)
          --> mais tu n'as aucune case à cocher qui s'appele "auto" dans ton formulaire

          -

          Citation

          ... heureux.png" alt="" onClicke="javascript;smilies(':d)')


          (javascript: au lieu de javascript;)
          Ton smiley c'est ":d" pas ":d)" ?? (ptet que c'est vraiment le smiley que tu veux je sais pas :euh: )

          -Voilà et pour le reste des boutons, tu as oublié de mettre les "onClick=" ce qui explique qu'il ne se passe rien quand on clique dessus.
          Par exemple pour le bouton gras: onclick="bbcode('[gras]','[/gras]')"

          PS: j'y ai pas fait gaffe tout de suite, mais tu as tendance à oublier les points virgules à la fin des lignes. Le navigateur bronche pas trop mais normalement les points de virgules sont obligatoires ;)

          Et puis heu, tu pompes les smileys hebergés sur le site du zero ??? :D
          • Partager sur Facebook
          • Partager sur Twitter
            29 juillet 2006 à 13:56:02

            Oui mais nan je vais changer pour les smileys c'est des test.

            Merci pour tout ces conseil je vais les appliqué et je vous redit si sa marche après.

            Merci encore.

            Edit: J'ai réussi a faire écrire les balises gras / italic / image mais pas lien et citation.

            Voici un bout de code:
            <input type="button" id="gras" name="gras" value="Gras" onClick="bbcode('[gras]','[/gras]')"  />
            <input type="button" id="italic" name="italic" value="Italique" onClick="bbcode('[italic]','[/italic]')" />
            <input type="button" id="image" name="image" value="Image" onClick="bbcode('[image]','[/image]')" />
            <input type="button" id="lien" name="lien" value="Lien" onClick="bbcode('[url=""]','[/url]' "/>
            <input type="button" id="citation" name="citation" value="Citation" onClick="bbocde('[citation]','[/citation]' )" />
            <img src="http://www.siteduzero.com/Templates/images/smilies/smile.png" alt="" onClick="javascript:smilies(':)');return(false)" />
            • Partager sur Facebook
            • Partager sur Twitter

            Problème avec mon 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