Comment faire pour faire des post comme dans phpBB ?

Résolu
cs_Linuss Messages postés 176 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 mai 2008 - 13 nov. 2004 à 18:00
Mysticlolly Messages postés 1 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 8 mars 2005 - 8 mars 2005 à 17:47
Bonjour à tous,

J'aimerais savoir si un script existe pour faire des post à la manière de phpBB. C'est-à-dire que quand je veux citer, je mets
, quand je veux mettre le texte en gras, je mets , etc...

Merci :)

++

8 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 nov. 2004 à 18:40
Salut :-)

Il s'agit de bbcode. Voici ce que j'utilise pour mon site :

$textecommentaire= preg_replace('`\[img\](.+?)\/img\`sim','',$textecommentaire);
$textecommentaire=preg_replace('`\[smile\]smile([0-9]*).gif\/smile\`sim','',$textecommentaire);
$textecommentaire=preg_replace('`\[b\](.+?)\/b\`sim',' $1 ',$textecommentaire);
$textecommentaire =preg_replace('`\[i\](.+?)\/i\`sim',' $1 ',$textecommentaire);
$textecommentaire =preg_replace('`\[s\](.+?)\/s\`sim','$1',$textecommentaire);
$textecommentaire=preg_replace('`\[ba\](.+?)\/ba\`sim','<strike>$1</strike>',$textecommentaire);
$textecommentaire=preg_replace('`\[url=(.*?)\](.*?)\/url\`sim','[$1 $2]',$textecommentaire);
$textecommentaire=preg_replace('`\[mail=(.*?)\](.*?)\/mail\`sim','[mailto:$1 $2]',$textecommentaire);

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
3
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
13 nov. 2004 à 18:53
Bonsoir,

Les balises dont tu parle, porte le nom de BBCode.

Il existe plusieurs sources sur phpcs, traitant d'elles, mais evidament si tu ne connais pas le nom, tu risque de les trouvés dans un packer de temps...
Donc pour toi j'ai selectioner un module bbcode, qui ma apparut être le plus interessent :

<?
function bbcode($text) { 
    $text =   preg_replace("#\[img\]((ht|f)tp://)([^\r\n\t<"]*?)\/img\#sie", "''", $text); 
    $text = preg_replace("#\[url\]((ht|f)tp://)([^\r\n\t<"]*?)\/url\#sie", "'\\1\\3'", $text); 
    $text = preg_replace("/\[url=(.+?)\](.+?)\[\/url\]/", "$2", $text); 

    $text = preg_replace("/\[b\](.+?)\[\/b\]/", " $1 ", $text); 
    $text  = preg_replace("/\[i\](.+?)\[\/i\]/", " $1 ", $text); 
    $text  =  preg_replace("/\[u\](.+?)\[\/u\]/", "$1", $text); 
    $text = preg_replace("/\[code\](.+?)\[\/code\]/", " Code :  |----
<code>$1
", $text);
$text = preg_replace("/\[quote\](.+?)\[\/quote\]/", "<table width= 100%>----
citation : |----, $1</td>
", $text);
$text = preg_replace("/\[quote= (.+?)\](.+?)\[\/quote\]/", " $1 : |----
$2
", $text);
$text = preg_replace("/\[color=(.+?)\](.+?)\[\/color\]/", "$2", $text);

return $text;
}

// tu fait rentrer ton formatage de donnée, ce cette façon :
$umessage = $_POST["message"]; // 'message' étant probablement une textarea, issu du formulaire precedent
$umessage = str_replace("<","<","$umessage");
$umessage = str_replace(">",">","$umessage"); // je prefere utiliser ce genre de formatage basique, pour virer les balises < & >, d'autres veront ceci comme incoerent, mais je sais pourqoui je sais ça.
$umessageformater = bbcode($umessage);
// $umessageformater contien du html!
....
?>
</td></tr></table>
Le mieu étant de faire le formatage lors de l'affichage, mais tu sera contrain à plus de ralentisement!
Le plus rapide est de le faire comme dans cette exemple, le faire lorsqu'on fait une réponse à un sujet!

http://www.phpcs.com/code.aspx?ID=17638
Merci à BlackWizzard pour cette source!

++
3
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
13 nov. 2004 à 18:54
Au vraiment desoler, je suis exesivement lent lorsque je repont à qouique se soit!
Anthomicro à tout à fait raison!
0
cs_Linuss Messages postés 176 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 mai 2008
13 nov. 2004 à 18:57
Merci beauboup ! C'est super sympa ! Je vais étudier le truc, et t'inquétes pas juki_webmaster, moi aussi je réponds lentement ! ;)

++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
13 nov. 2004 à 19:10
Enfin une personnes qui me comprend ;)
Sa me prend 4 fois plus de temps, enfaite je voit pas le temps passer et à la fin de la journé, c'est la crise, j'ai rien fait!
Content qu'on ait put te mettre sur le route ;)
0
cs_Linuss Messages postés 176 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 9 mai 2008
13 nov. 2004 à 19:12
Loooooooooool ! mdr ! j'allais dire la même chose !
C'est trop horrible quand on voit qu'à la fin de la journée on a rien fait :)

Merci encore,

++

www.graphicmotion.tk : tutoriels pour photoshop, flash, et php/MySQL, ainsi que beaucoup d'autres choses !
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
13 nov. 2004 à 19:39
Pour ce qui est des exprssions régulières concernant les balises gras [b] etc... je te conseille de prendre ma solution qui inclue le sim à la fin (qui permet de ne pas prendre en compte les sauts de lignes et d'être iinsensible à la casse), ça t'évitera des problèmes possibles avec l'autre solution :-)

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
Mysticlolly Messages postés 1 Date d'inscription mardi 8 mars 2005 Statut Membre Dernière intervention 8 mars 2005
8 mars 2005 à 17:47
Bonjour tout le
monde! Merci pour les codes donnés, ils me servent bien, cependant, sur
le forum que je suis en train de mettre en place, je voudrais qu'il y
ait la possibilité de citer des messages contenant des citations.



En utilisant le code du dessus :



$message
preg_replace("/\[QUOTE(.+?)\](.+?)\[\/QUOTE\]/", "QUOTE ($1)
:, ----
$2

",
$message);



Seulement, si on a un message de ce genre :

[QUOTE=machin][QUOTE=moi]message cité1/QUOTEautre message cité/QUOTE

message reprenant les deux autres.



Lors de l'affichage j'aurai quelque chose comme ça :

QUOTE (machin)


message cité1

autre message cité/QUOTE




message reprenant les deux autres.



Alors que j'aurais voulu avoir plutôt ça :


QUOTE (machin)



QUOTE (moi)



message cité1



autre message cité




message reprenant les deux autres.





J'espère avoir été suffisamment claire dans ma demande

Et si quelqu'un avait une solution, ça m'aiderait vraiment beaucoup



@++ Mystic
0
Rejoignez-nous