8797 sujets

Développement web côté serveur, CMS

Bonjour,

je me pose une question simple, mais votre point de vue m'importe beaucoup.

Voila je stock du contenu XHTML dans une base pour le publier ici et la.
Exemple ce forum, il est possible d'enrichir le contenu avec le BBCode mais j'imagine que cela génére du beau code html.

La question et de savoir si vous pensez qu''il faut stocker le code xhtml ou la version transformée ? genre htmlentities()

?

merci
Modifié par ernstein (01 Sep 2005 - 00:13)
Slt,

déjà, sache qu'il vaut mieux ne pas utiliser la fonction htmlentites, pour la bonne raison qu'elle va te transformer un é en &eacute; qui est 8 fois plus gros. Donc, utilise la fonction htmlspecialchars qui ne converti que les caractères spéciaux (<,>,&," et '). Si ta table et ton document (X)html sont en iso-8859-1, il n'y aura aucun problème.

Pour ta question, ne serait ce pas plutôt : « Faut il convertir le BBCode avant l'insertion dans la bdd ou lors de l'affichage ? » ? Sinon, je comprends vraiment pas.

a+
je vais encore plus loin, je code en ASP la fonction n'existe pas elle est maison. Donc pas de soucci avec le é Smiley smile

et ta remarque est bonne :
a écrit :

Faut il convertir le BBCode avant l'insertion dans la bdd ou lors de l'affichage ?


merci Smiley cligne
Modifié par ernstein (31 Aug 2005 - 20:53)
Moi je le stock dans la base le BBCode non converti Smiley cligne

Je code en ASP moi aussi et je me suis fait la fontion qui va bien !

<%
function remplace(txt)
Dim sPath, temp, regEx
sPath = "Images"
dPath = "Images/Grande"
temp = txt
	
	Set regEx = New RegExp
	regEx.IgnoreCase = False
	regEx.Global = true
    regEx.Pattern = "\[img\](.*?)\[/img\]"
	temp = regEx.replace(temp,"<img class='image' src='" & sPath & "/$1' alt='$1' title='$1' />")
    regEx.Pattern = "\[imgd\](.*?)\[/imgd\]"
	temp = regEx.replace(temp,"<img class='image3' src='" & sPath & "/$1' alt='$1' title='$1' />")
	regEx.Pattern = "\[url](.*?)\[/url\]"
	temp = regEx.replace(temp,"<a href ='http://$1'>$1</a>")
	regEx.Pattern = "\[email\](.*?)\[/email\]"
	temp = regEx.REPLACE(temp,"<a href='mailto:$1'>$1</a>")
	regEx.Pattern = "\[agr\](.*?)\[/agr\]"
	temp = regEx.replace(temp,"<a href='pop-up.asp?src=" & dPath & "/$1' onclick='window.open(this.href);return false;'><img class='image' src='" & sPath & "/$1' alt='$1 cliquez pour agrandir l image' title='$1 cliquez pour agrandir l image' /></a>")
	regEx.Pattern = "\[agrd\](.*?)\[/agrd\]"
	temp = regEx.replace(temp,"<a href='pop-up.asp?src=" & dPath & "/$1' onclick='window.open(this.href);return false;'><img class='image3' src='" & sPath & "/$1' alt='$1 cliquez pour agrandir l image' title='$1 cliquez pour agrandir l image' /></a>")
	temp = replace(temp,VbCrLf,"<br />")
	temp = Replace(temp, "[g]", "<span class='TextGras'>")
	temp = Replace(temp, "[/g]", "</span>")
	temp = Replace(temp, "[i]", "<span class='Textitalic'>")
	temp = Replace(temp, "[/i]", "</span>")
	temp = Replace(temp, "[u]", "<span class='TextSouligne'>")
	temp = Replace(temp, "[/u]", "</span>")
	temp = Replace(temp, "[ul]", "<ul>")
	temp = Replace(temp, "[/ul]", "</ul>")
	temp = Replace(temp, "[x]", "<li>")
	temp = Replace(temp, "[/x]", "</li>")
	temp = Replace(temp, "[cadre]", "<div class='cadre'>")
	temp = Replace(temp, "[/cadre]", "</div>")
	
remplace = temp
Set regEx = Nothing
end function
%>

Modifié par Flyman30 (31 Aug 2005 - 20:56)
Donc dans ton cas Flyman, tu fais une conversion au moment de l'affichage.

Quand je dis affichage cela comprends aussi l'instant de l'édition ? oui ?
Si c'est du code que les utilisateurs peuvent modifier après avoir posté, comme les messages de ce forum, je suppose que tu es obligé de garder le BBcode ;
sinon, il me semble qu'il faut mieux stocker le xhtml, ça évitera de devoir le retraduire chaque fois que la page est calculée ...
Sopo a écrit :
Si c'est du code que les utilisateurs peuvent modifier après avoir posté, comme les messages de ce forum, je suppose que tu es obligé de garder le BBcode ;
sinon, il me semble qu'il faut mieux stocker le xhtml, ça évitera de devoir le retraduire chaque fois que la page est calculée ...



Le temp replace est très rapide!
Réfléchissons une seconde :

si on stocke la version HTML --> on n'applique de transformation que lors du poste du message ou de son édition alors que si l'on stocke la version BBcode, il faut trasférer à CHAQUE affichage de la page.

la meilleur solution reste à mon sens de faire une fonction qui Déparse le html en BBcode. Si l'on part du principe que l'on a appliqué un htmlspecialchar, alors les seuls balises avec de vrais < et > ont été généré pour le BBcode.

De là ... Smiley cligne

-- Aenario --
Ben le but il faut l'avouer, et de pouvoir confortablement faire deux choses:

1) editer le contenu à tout moment
2) le publier (c'est quand même la moindre de choses : ) )

arf....