Bonjour à vous tous !
(Avant tout, je voulais vous avertir que je ne connais rien au JS, en regardant les bouts de code, j'arrive à déchiffrer petit à petit, mais c'est tout ! :euh
Voilà, en mettant en place un système de gestion de taille de caractère dans mon BBcode, je rencontre un soucis :
Imaginons, j'écris :
"[size=\5]Test[/size]
[size=0.75]test[/size]"
le view devrait me retourner un gros test et un tout petit, mais non, il me renvoit :
"Test[/size]
[size=0.75]test" Et le tout en très gros !
Par contre, si je ne met qu'une balise de taille, c'est bien géré, à partir de deux, ca s'en mêle les pinceaux ... Donc je ne comprends pas d'ou peut provenir mon erreur dans la regex qui gère ca !
Vient ensuite le code :
Donc j'ai mon texte dans un textarea, deux boutons, un pour envoyer, l'autre pour prévisualiser.
Voici la gestion des BBcode dans la page view.php qui gère la prévisualisation (je ne colle que la partie ou l'erreur doit être, sinon il y a trop de chose ^^):
Pour insérer la balise dans le textarea j'utilise une liste déroulante comme ceci (je viens d'ailleurs de remarquer que le bbcode ne comprend les chiffres à virgules tel que : "2.5" pour mettre avec em, c'est normal ?) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 $zcode = array( '#\[\i](.+)\[/i]#siU', '#\[\b](.+)\[/b]#siU', '#\[\u](.+)\[/u]#siU', '#\[\s](.+)\[/s]#siU', '#\[align=(left|center|right)](.+)\[/align]#siU', '#\[color=(red|blue|grey|yellow|purple|green)](.+)\[/color\]#isU', '#\[size=([0-9]{1,2})](.+?)\[/size]#siU', <strong><span style="color:#ff0000;">// l'erreur doit se trouver sur cette ligne</span></strong> '#\[\*](.+?)#si', ); $html = array( '<em>$1</em>', '<strong>$1</strong>', '<span style="text-decoration:underline;">$1</span>', '<span style="text-decoration:line-through;">$1</span>', '<div style="text-align:$1; width:100%;">$2</div>', '<span style="color:$1">$2</span>', '<span style="font-size:$1em;">$2</span>', <span style="color:#ff0000;"><strong>//la ligne de l'erreur continue ici</strong></span> '<li>$1', );
Voilà ou j'en suis...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <select onchange="insertTag('[size=' + this.options[this.selectedIndex].value + ']', '[/size]', 'textarea');"> <option value="none" class="selected" selected="selected" >Taille</option> <option value="5">Très très gros</option> <option value="2.5">Très Gros</option> <option value="1.5">Gros</option> <option value="1">Normal</option> <option value="0.75">Petit</option> </select>
Auriez vous des idées pour me permettre de régler mon soucis ?
Dans tout les cas, je vous remercie d'avoir lu mon message ! :]
(Si dans le message, vous voyez des "\" c'est normal, c'est pour faire en sorte que ca ne se transforme pas en bbcode une fois le message créé ! ^^)
Partager