Page 1 sur 1

[probleme php] pour un systeme de news en bbcode

Posté : 17 août 2008, 09:46
par 50centdu62
Bonjour,
voilà j'ai un systeme de news en catégorie, mais j'aimerais le mettre en bbcode j'ai reussi a intégrer la partie ou on insere les news en bbcode, mais quand je vais sur ma page ou il y a les news et bien le bbcode ne fonctionne pas donc voici ma page news.php qui sert a afficher les news
<td width="79%">
<?php
// affichages des nouvelles avec découpage.
require('includes/news-start.php');
if (!isset($HTTP_GET_VARS['page']))
{
  $i=0;
  $l=10;
}else{
$i=10*$HTTP_GET_VARS['page'];
$l=10;
}
$requete="select * from news order by datenews";
$resultat=mysql_query($requete);
$r=mysql_num_rows($resultat);
$t=round($r/10)+1;
// fin de récupération du nombre de résultat: $r est le nombre de nouvelles, $t le nombre de pages.
$requete="select * from news order by datenews desc limit $i,$l";
$resultat=mysql_query($requete);
while ($tableau=mysql_fetch_array($resultat)){
  echo "<h2><font color=\"#0000FF\">".stripslashes($tableau['titre'])."</font></h2>";
  echo"<p>".stripslashes($tableau['news'])."</p>";
  $datenews=substr($tableau['datenews'],8,2)."-".substr($tableau['datenews'],5,2)."-".substr($tableau['datenews'],0,4);
  echo"<p>".$datenews." - <b>".$tableau['categorie']."</b></p>";
  echo"<hr>";
}
$j=1;
echo"<a href=\"news.php\">Dernières news</a>";
while ($j<$t)
{
echo" - <a href=\"news.php?page=".$j."\">page".$j."</a></p>";
$j=$j+1;
}
?> </td>
  </tr>
</table>
</body>
</html>
et voici ma page view.php pour afficher les balise bbcode qui vien du tuto de Ishango du siteduzero.com
<?php 

function parseZCode($content) {

	// Parsage des balises
	$zcode = array(  
		'`<italique>(.+)</italique>`isU',  
		'`<gras>(.+)</gras>`isU',
		'`<barre>(.+)</barre>`isU',
		'`<lien>(.+)</lien>`isU',
		'`<lien url="(.+)">(.+)</lien>`isU',
		'`<image>(.+)</image>`isU',
		'`<citation>(.+)</citation>`isU',
		'`<citation nom="(.+)">(.+)</citation>`isU',
		'`<citation lien="(.+)">(.+)</citation>`isU',
		'`<taille valeur="(.+)">(.+)</taille>`isU'
	);  
	
	$html = array(  
		'<em>$1</em>',  
		'<strong>$1</strong>',
		'<del>$1</del>', 
		'<a href="$1">$1</a>',
		'<a href="$1">$2</a>',
		'<img src="$1" alt="Image utilisateur" />',
		'<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
		'<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
		'<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
		'<span class="$1">$2</span>'
	); 
	
	$content = preg_replace($zcode, $html, $content);
	
	// parsage des smilies
	$smiliesName = array(':magicien:', ':colere:', ':diable:', ':ange:', ':ninja:', '>_<', ':pirate:', ':zorro:', ':honte:', ':soleil:', ':\'\\(', ':waw:', ':\\)', ':D', ';\\)', ':p', ':lol:', ':euh:', ':\\(', ':o', ':colere2:', 'o_O', '\\^\\^', ':\\-°');
	$smiliesUrl  = array('magicien.png', 'angry.gif', 'diable.png', 'ange.png', 'ninja.png', 'pinch.png', 'pirate.png', 'zorro.png', 'rouge.png', 'soleil.png', 'pleure.png', 'waw.png', 'smile.png', 'heureux.png', 'clin.png', 'langue.png', 'rire.gif', 'unsure.gif', 'triste.png', 'huh.png', 'mechant.png', 'blink.gif', 'hihi.png', 'siffle.png');
	$smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/";
	
	for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
		$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
	}
	
	// Rtours à la ligne
	$content = preg_replace('`\n`isU', '<br />', $content); 
	
	return $content;

}


if (isset($_POST["string"])) {
	$content = $_POST["string"];
	
	if (get_magic_quotes_gpc()) {
		$content = stripslashes($content);
	}

	echo parseZCode($content); // Ecriture du contenu parsé. 
}
?>

voilà j'aimerais savoir que rajouter dans la page news.php pour que ceci fonctionne, ou que modifier merci davance :)

Posté : 17 août 2008, 10:45
par Berzemus
qu'est-ce que tu entends par "ne marche pas " ? Il affiche quoi alors ?

Posté : 18 août 2008, 03:40
par AB
qu'est-ce que tu entends par "ne marche pas " ? Il affiche quoi alors ?
Je dirais même mieux, c'est quand tu fais quoi que ça marche pas ?

Sinon plutôt que d'aller chercher les smiles sur le site du zero $smiliesPath = "http://www.siteduzero.com/Templates/images/smilies/"
tu gagnerais certainement en vitesse d'exécution de ton script si tu récupérais ces smiles sur ton site et d'indiquer l'adresse relative du dossier dans lequel tu les mets. Mais bon le pb ne doit pas venir de ça.

Cela dit si le site du zero venait à supprimer son dossier de smile (ou changer son nom), avec ton système tous tes smiles disparaîtraient. Quand on peux facilement le faire, autant ne dépendre que de son propre serveur :wink: