Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec le bbcode list !

et la validation w3c

    14 février 2006 à 8:25:49

    Bonjour à tous !

    Voilà mon problème : Je suise en train de revoir la conception de mon site pour qu'il soit valide xhtml 1.1. Et j'ai un petit problème avec la balise list.

    En effet, celle ci fonctionne de cette manière :
    [list]
    [puce]Texte 1[/puce]
    [puce]Texte 2[/puce]
    [puce] ... [/puce]
    [/list]


    Avec ma regex je fait ceci :

    $contenu = str_replace(array('[list]','[/list]'), array('</p><ul>','</ul><p style="text-align:justify">'), $contenu);
    $contenupreg_replace('!\[puce\](.+)\[/puce\]!isU', '<li>\\1</li>', $contenu);


    Le problème c'est que le code source de la page est le suivant :


    <p style="text-align:justify">

    </p><ul><br />
    <li>Texte 1</li><br />
    <li>Texte 2</li><br />
    <li>Texte 3</li><br />
    </ul>
    <p style="text-align:justify">


    Et la balise <br/> dans la balise <ul> n'est pas valide.
    je n'arrive pas à modifier ma regex pour prendre en compte ce saut de ligne. (enfin je pense que ca vient e là ! :euh: )

    Merci d'avance pour votre aide ! ;)
    • Partager sur Facebook
    • Partager sur Twitter
      14 février 2006 à 10:25:07

      Le <br /> avant le </li> :)
      Et pour celui de la balise <ul>, tu peux le mettre avant, en faisant:
      <p><br /></p>
      <ul>
      etc...
      • Partager sur Facebook
      • Partager sur Twitter
        14 février 2006 à 10:31:03

        Salut !
        Je suis pas sûr mais essayes :
        $contenu = preg_replace('!\[puce\](.+)\[/puce\]!isU', '<li>$1</li>', $contenu);
        • Partager sur Facebook
        • Partager sur Twitter
          14 février 2006 à 12:47:49

          En fait le problème viens que dans mon textarea je met :
          [list]
          [puce]Texte 1[/puce]
          [puce]Texte 2[/puce]
          [puce]Texte 3[/puce]
          [/list]


          Et du coup chaque retour à la ligne est interperté par une balise </br>. Ce qui donne :
          <ul><br />
          <li>Texte 1</li><br />
          <li>Texte 2</li><br />
          <li>Texte 3</li><br />
          </ul>


          Et il ne doit y avoir aucun caractère entre <ul> et </ul>, seulement entre <li> et </li>.

          Sur le SDZ ca ne fait pas ca donc je sais que c'est possible ! :o

          EDIT

          ALors avec un peu de recherche et en relisant les cours de Mateo j'ai rajouté ça à la suite de ma regex :
          $contenu = preg_replace('!<ul>(.*)<br />!isU','<ul>',$contenu);
          $contenu = preg_replace('!</li>(.*)<br />!isU','</li>',$contenu);


          et ca marche !!
          Merci tout deux meme a vous deux ! ;)
          • Partager sur Facebook
          • Partager sur Twitter

          problème avec le bbcode list !

          × 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