Bonjour,

J'ai un problème avec mon bbcode...

J'ai utilisé le codage de remplacement en PHP (cf str_replace) qui remplace par exemple ma balise [gras*][/gras*] du bbcode par

<span style="font-weight:bold"></span>


Mon problème est l'accumulation de ces balises. Par exemple, si il y a [gras*][rouge*][/rouge*][/gras*] qui est remplacé par

<span style="font-weight-bold"><span style="color:red"></span></span>


ça devrait marché il me semble, pourtant seul la couleur est affiché et pas le "gras" du texte.

Quelqu'un aurait une idée?

Merci d'avance.

PS les étoiles sont là pour que ça affiche correctement!
Modifié par le rouge (18 Jan 2007 - 21:31)
Bonjour,

en fait , il faudrait que ça fasse

<span style="font-weight:bold; color:red;">texte</span>

pour que ça marche, c'est je pense ton "décodage" qui ne va pas
Alan a écrit :
Bonsoir
il y a une erreur, cela devrait "font-weight:bold" et non "font-weight-bold"


L'erreur c'est une faute de frappe... Dans mon code, c'est juste. Merci de le relever.

ghost a écrit :
Bonjour,
en fait , il faudrait que ça fasse

<span style="font-weight:bold; color:red;">texte</span>

pour que ça marche, c'est je pense ton "décodage" qui ne va pas


Oui, ça je l'ai bien compris, mais dans ce cas, le bbcode devient pharaonïque, vu que je dois considérer toutes les possibilités d'accumulation de balise... [gras*][rouge*]. [gras*][bleu*], [souligné*][italique*]etc. et la c'est que à 2 éléments...

Il faudrait pouvoir accumuler les spans...

Merci de vos réponses!
S'il n'y a pas d'erreur, ça devrait marcher.
Peux-tu donner un code que tu as testé et qui ne fonctionne pas ?
Code PHP :

$message->accueil_texte = str_replace("[g]","<span style=\"font-weight:bold\">", $message->accueil_texte);
$message->accueil_texte = str_replace("[/g]","</span>", $message->accueil_texte);

$message->accueil_texte = str_replace("[s]","<span style=\"text-decoration:underline\">", $message->accueil_texte);
$message->accueil_texte = str_replace("[/s]","</span>", $message->accueil_texte);

$message->accueil_texte = str_replace("[r]","<span style=\"color:#cc0000\">", $message->accueil_texte);
$message->accueil_texte = str_replace("[/r]","</span>", $message->accueil_texte);


Ce que ça donne dans le code source avec [g*][r]bla bla bla[/r*][/g*]

<p><span style="color:#cc0000"><span style="font-weight:bold">JAZZ PARADE LA LIBERTÉ DE FRIBOURG</span></span>


Et à l'écran : Ici (regardé le texte "JAZZ PARADE LA LIBERTÉ DE FRIBOURG" qui devrait être rouge ET gras...

Malheureusement fonctionne pas...
Le problème vient de ton premier bloc de déclaration, avec le sélecteur universel :
* {
border: 0;
margin: 0 auto;
padding: 0;
font: normal 13px trebuchet ms;
color: #666;
text-shadow: #000;
text-align: justify;
text-decoration: none;
list-style-type: none;
}

En faisant ça tu empêches l'héritage normal de la couleur (mais pas seulement).
Enlève donc la couleur d'ici pour l'ajouter au bloc de déclaration du sélecteur body et l'héritage se fera normalement. (je te conseille de faire ça aussi avec font)
Modifié par Alan (18 Jan 2007 - 20:10)
Et sinon, des bbcode « sémantiques » ?

[ titre]Jazz Parade La Liberté de Fribourg[ /titre]
[ sous-titre]Les objectifs 2007 - 2008 - 2009[ /sous-titre]

Et on transforme ça en le balisage qui va bien (avec des hN, des p.sous-titre, des choses comme ça...).
Sinon, l'explication du sélecteur universel me laisse perplexe. Est-ce que le fait d'indiquer le style dans l'attribut style de l'élément ne donne pas une priorité de 1000 ? Pourquoi le sélecteur universel placé dans la feuille de style serait-il prioritaire ? Smiley sweatdrop
L'héritage d'une valeur ne peut se faire que si elle n'est pas précisée pour l'élément.
Donc même si c'est précisé juste avec un sélecteur universel, comme ici, pas d'héritage.

Mais je parle seulement de l'héritage :
<span style="color:red">
sera bien prioritaire et donc son texte sera en rouge mais c'est le second span qui n'héritera pas de la couleur
<span style="color:red"><span>

Modifié par Alan (18 Jan 2007 - 20:58)
ça fonctionne, trop beau...

Je ne pensais pas que mon sélécteur universel pouvait interférer la dessus... Comme quoi!

Merci beaucoup Alan et les autres aussi!