Probleme bbcode

Fermé
Utilisateur anonyme - 24 févr. 2010 à 09:59
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 - 25 févr. 2010 à 21:13
Bonjour,

j'ai mis en place un systeme de BBcode sur mon forum

tout fonctionne parfaitement

mis a part le fait que si
je met un texte a la fois en gras ET que je grossi la police

il ne prend que le gras
sinon je peut fait toutes les autres combinaisons
gras-italique , gras-couleur , grande police-couleur etc...

c'est pour moi, un bug bizarre et je n'ai aucune idée
de la cause

voila mon BBcode :



<?php
function code($texte)
{
$texte = str_replace(':D: ', '<img src="design/skin/forum/smi_xd.png" title="xd" alt="xd" />', $texte);
$texte = str_replace(':lol: ', '<img src="design/skin/forum/smi_lol.gif" title="lol" alt="lol" />', $texte);
$texte = str_replace(':triste:', '<img src="design/skin/forum/smi_sad.png" title="triste" alt="triste" />', $texte);
$texte = str_replace(':frime:', '<img src="design/skin/forum/smi_sol.gif" title="cool" alt="cool" />', $texte);
$texte = str_replace(':rire:', '<img src="design/skin/forum/smi_zen.gif" title="zen" alt="zen" />', $texte);
$texte = str_replace(':s:', '<img src="design/skin/forum/smi_conf.gif" title="confus" alt="confus" />', $texte);
$texte = str_replace(':o:', '<img src="design/skin/forum/smi_mur.gif" title="choc" alt="choc" />', $texte);
$texte = str_replace(':+1:', '<img src="design/skin/forum/smi_1.gif" title="+1" alt="+1" />', $texte);
$texte = str_replace(':wink:', '<img src="design/skin/forum/smi_wink.gif" title="wink" alt="wink" />', $texte);
$texte = str_replace(':ok:', '<img src="design/skin/forum/smi_ok.png" title="ok" alt="ok" />', $texte);
$texte = str_replace(':hihi:', '<img src="design/skin/forum/smi_hihi.gif" title="hihi" alt="hihi" />', $texte);
$texte = str_replace(':ho:', '<img src="design/skin/forum/smi_ho.gif" title="ho" alt="ho" />', $texte);
$texte = str_replace(':sif:', '<img src="design/skin/forum/smi_sif.gif" title="siffle" alt="siffle" />', $texte);

$texte = preg_replace('`\[quote\](.+)\/quote\`isU', '<div id="quote">$1</div>', $texte);

$texte = preg_replace('`\[img\](.+)\/img\` isU' , '<a href="$1" target="_blank"><img class="topic_tof" src="$1" /></a>' , $texte);


//Mise en forme du texte
$texte = preg_replace('`\[g\](.+)\/g\`isU', '<strong>$1</strong>', $texte);
$texte = preg_replace('`\[i\](.+)\/i\`isU', '<em>$1</em>', $texte);
$texte = preg_replace('`\[s\](.+)\/s\`isU', '<u>$1</u>', $texte);
$texte = preg_replace('`\[url\](.+?)\/url`' , '<a href="$1" target="_blank">$1</a>' , $texte);
$texte = preg_replace('`\[color=(.+?)\](.+?)\/color`' , '<font color="$1">$2</font>' , $texte);
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1;">$2</span>' , $texte);

return $texte;
}
?>

EDIT: oups, j'avais mal mis le code
A voir également:

4 réponses

arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
24 févr. 2010 à 10:23
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1;">$2</span>' , $texte); 

Tu met que la valeur ou tu met bien par exemple:
[size=12px]...

Je demande ça car il faut bien mettre:
<span style="font-size:24px;">...

Sinon il faudrait modifier en:
$texte = preg_replace('`\[size=(.+?)\](.+?)\/size`' , '<span style="font-size:$1px;">$2</span>' , $texte); 

C'est peut-être ça qui fait que ça marche pas.
Vérifie le code html généré.
Tu as aussi oublié les [ et ] sur la balise bbcode qui ferme.
$texte = preg_replace('`\[size=(.+?)\](.+?)\[/size\]' , '<span style="font-size:$1;">$2</span>' , $texte); 
0
Utilisateur anonyme
24 févr. 2010 à 10:31
oui j'ai met bien la valeur en px
de la forme [size=12px]

et comme je le dit
si je l'utilise seule ou avec d'autres chose que le gras

la balise de taille de police fonctionne


donc les codes de gras et de taille de police doivent se court-circuiter
mais je ne sais pas ou



ps: les crochets fermants ont disparus au copier-collé
mais ils sonts présents dans mon code
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
24 févr. 2010 à 23:18
Vérifie que tu retrouves bien l'unité px dans le code html comme indiqué dans mon précédent message.
En fait vérifie simplement le code html restitué par ton script pour vérifié d'où peux venir l'erreur.
0
Utilisateur anonyme
25 févr. 2010 à 13:29
j'ai verifié justement

je te montre le code source de la selection :

1er cas :
texte en taille 22 et en vert
<span style="font-size: 22px;">coucou</span>

2nd cas :
texte en taille 22, en vert et en gras
<span style="font-size: 22px;"><strong><font color="green">coucou</font></strong></span>


voila
certaines doivent se court-circuiter
mais je ne sais pas comment
j'ai beau les essayer dans tout les sens
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
25 févr. 2010 à 21:13
Remplace:
<font color="green">

par:
<span style="color:green;">

Les balises <font> ne sont plus à utiliser (pas valide W3C me semble t-il), donc autant utiliser le CSS.
C'est peut-être ça qui fait déconner le tout.
0