Aller au contenu

Problème BBcode : Pas de récupération de la transcription


Sujets conseillés

Posté

Bonjour,

Je suis entrain de coder un forum pour jeu. Et je voudrais appliquer la description de chaque forum au régime du BBcode afin d'avoir le même formatage. Le problème est que le parseur fait des siennes.

Voici le code :

<?php
$chargementForums = sprintf("SELECT * FROM `Forums_Liste` ORDER BY `Ordre` ASC");
$requeteForums = mysql_query($chargementForums);
$nombreForums = mysql_num_rows($requeteForums);

if ( $nombreForums >= 1 ) {
while($forums = mysql_fetch_array($requeteForums)) {
$description = $forums['Description'];
$description = bbcode($description);
if ($description) {
echo "<div class=\"forum\">";
echo "<a href=\"#tabs-2\" onclick=\"forum_sujet('".$forums['ID']."');\">".$forums['Titre']."</a><br/ >";
echo "<p>".$description."</p>";
echo "</div>";
}
else {
echo "<div class=\"message_information\">Impossible de charger le forum.</div>";
}
}
}
else {
echo "<div class=\"message_information\">Aucun forum de créé pour le moment.</div>";
}
?>

Et voici le message que me retourne cette partie de code :

Impossible de charger le forum.

Sur les autres pages pour lesquelles je l'utilise il fonctionne à la perfection. Mais la pas moyen d'afficher la moindre ligne de code.

PS : Dans le cas ou je retire cette ligne :

$description = bbcode($description);

Il m'affiche bel et bien la description.

Voici le parseur BBcode :

<?php
function bbcode($message) {
if ( !empty($message) ) {
$message = nl2br(htmlentities($message, ENT_NOQUOTES, 'UTF-8'));

$message = stripslashes($message);

$conv = array(
'#\[g\](.*)\[/g\]#Usi' => '<b>$1</b>',
'#\[i\](.*)\[/i\]#Usi' => '<i>$1</i>',
'#\[s\](.*)\[/s\]#Usi' => '<u>$1</u>',
'#\[align=centre\](.*)\[\/align\]#Usi' => '<div style="text-align : center">$1</div>',
'#\[align=droite\](.*)\[\/align\]#Usi' => '<div style="text-align : right">$1</div>',
'#\[align=justifie\](.*)\[\/align\]#Usi' => '<div style="text-align : justify">$1</div>',
'#\[url=(.*)\](.*)\[\/url\]#Usi' => '<a href="$1" target="_blank">$2</a>',
);

foreach ($conv as $key => $value) {
$message = preg_replace($key, $value, $message);
}

$message = preg_replace_callback('#\[image=(.*)\]#Usi', redim_image, $message);

$message = stripslashes($message);
}
else {
$message = "<div class=\"message_erreur\">Une erreur est survenue pendant le traitement du code BBcode.</div>";
}

return $message;
}
?>

Et la fonction de redimensionnement d'image :

<?php
function redim_image($message) {
// vous pouvez travailler en url relative aussi: img.jpg
$x = 500; # largeur a redimensionner
$y = 375; # hauteur a redimensionner

if (@fclose(@fopen($message['1'], 'r'))) {
if( substr($message['1'],-3) == "jpg" || substr($message['1'],-3) == "gif" || substr($message['1'],-3) == "png" || substr($message['1'],-3) == "bmp" ) {
$size = getimagesize($message['1']);

if ($size[0] > $x) {
$difference_x = $size[0]-$x;
}

if ($size[1] > $y) {
$difference_y = $size[1]-$y;
}

if (!empty($difference_x)&&!empty($difference_y)) {
if ($difference_x>$difference_y) {
$pourcentage = round((100*$x)/$size[0]);
}
else {
$pourcentage = round((100*$y)/$size[1]);
}
}
else {
if (!empty($difference_x) && empty($difference_y)) {
$pourcentage = round((100*$x)/$size[0]);
}
else if (empty($difference_x) && !empty($difference_y)) {
$pourcentage = round((100*$y)/$size[1]);
}
else {
$pourcentage = '100';
}
}

if ($pourcentage != 100) {
$multiplicateur = $pourcentage*0.01;
$new_x = $size[0]*$multiplicateur;
$new_y = $size[1]*$multiplicateur;
$style= "style=\"width : ".$new_x."px; height : ".$new_y."px; border : 1px solid #996633; margin : 0px; padding : 0px;\"";

$return = "<div><a href=\"".$message['1']."\" target=\"_blank\"><img src=\"".$message['1']."\" ".$style." /></a><br /><span style=\"background : #996633; margin : 0px; padding : 0px; padding : 5px;\">Image retouchée : ".$pourcentage."% de la taille originale.</span></div>";
}
else {
$return = "<img src=\"".$message['1']."\" />";
}
}
else {
$return = "<div class=\"message_erreur\" style=\"display : block;\">Type de fichier non pris en charge.</div>";
}
}
else {
$return = "<div class=\"message_erreur\" style=\"display : block;\">Le fichier spécifié n'éxiste pas.</div>";
}

return $return;
}
?>

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...