Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec mon bbCode

quand je veux faire une liste

    18 février 2006 à 14:25:19

    Salut, pour les signtures je veux faire un bbCode mais j'ai un probleme:
    quand je veux faire une liste au lieu de m'afficher:
    • element 1
    • element 2
    • element 3
    • element 4


    Ca m'affiche:
    • element 1
    • element 2
    • element 3
    • element 4


    <edit>oups en fait les éléments de ma liste sont séparés par un passage à la ligne (ça ne se voit pas avec ce BBcode :-° )</edit>


    Je crois que c'est à cause du fait que je passe une ligne dès qu'on va à la ligne (le nl2br)
    Mais je ne sais pas comment changer mon code pour que quand c'est une liste ça ne passe pas de ligne, mais que pour le reste ça continue à en passer.

    Voici mon code Javascript:
    function code_to_html(t) {
    t=nl2khol(t)

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

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

    //liste
    t=deblaie(/(\[\/liste\])/g,t)
    t=remplace_tag(/\[liste\](.*)\[\/liste\]/g,'<ul>$1</ul>',t)
    t=remblaie(t)

    //liste 2
    t=deblaie(/(\[\/puce\])/g,t)
    t=remplace_tag(/\[puce\](.+)\[\/puce\]/g,'<li>$1</li>',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');
    }   


    Voilà, donc à cause de la fonction nl2br(t) ça passe une ligne lors des listes, mais je ne peux pas l'enlever sinon pour le reste ça ne passera plus de ligne

    Donc est-ce que vous pourriez me dire comment je peux arreter de passer des lignes pour les listes, tout en continuant à en passer pour le reste?


    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      19 février 2006 à 11:16:27

      Pouvez-vous m'aider s'il vous plait?
      • Partager sur Facebook
      • Partager sur Twitter

      probleme 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