Annonce

#1 Re : Aide technique » affichage archive » 2006-09-19 11:23:56

J'ai fait un petit script pour afficher les archives sur mon site, je vous le met ici au cas où ça interresserait quelqu'un :

<?
include("../header.php");//ça c'est juste un fichier perso qui inclut les en-têtes html de mes pages

/*Inclures les fichiers de config de wanewsletter pour profiter des variables déjà définies*/
include("../newsletter/includes/config.inc.php");
include("../newsletter/includes/wadb_init.php");


//HTML PRINT
echo "<h1>Archives des newsletters</h1>";
echo "<br>";



$infodb=parseDSN($dsn);
$infodb=$infodb[0];

// Connexion et sélection de la base
$link = mysql_connect($infodb['host'], $infodb['user'], $infodb['pass']) or die("Nous sommes d&eacute;sol&eacute;s, mais les flashs d'informations ne peuvent pas &ecirc;tre affich&eacute;s &agrave; cause d'une erreur de connexion au serveur de base de donn&eacute;e.");

@mysql_select_db($infodb['dbname']);

//je récupère le nombre de newsletter pour les afficher toutes sauf la dernière...
$query="SELECT COUNT(*) FROM ".LOG_TABLE." WHERE liste_id=1 AND log_status=2;";
$result = @mysql_query($query);
$row = mysql_fetch_row($result);
$count=$row[0];

/* Je récupère le dernier enregistrement 
log_status=2=>flash publié
liste_id=1 IL FAUT indiquer l'indentifiant DE LA LISTE QUE L'ON VEUT AFFICHER
*/
$query = "SELECT DATE_FORMAT(FROM_UNIXTIME(log_date),'%e/%c/%Y'),log_subject,log_body_html FROM ".LOG_TABLE." WHERE liste_id=1 AND log_status=2 ORDER BY log_id DESC LIMIT 1,$count;";
$result = @mysql_query($query);

$i=1;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
   //HTML PRINT
   echo "<h2>".htmlentities($row[0])."</h2>";
   echo "<h3>&laquo; ".htmlentities($row[1])." &raquo;</h3>";

   if (preg_match("/<.+>/",$row[2])) {
    //Si je trouve quelques chose qui ressemble a une balise, je considère que c'est du html
       echo str_replace("{LINKS}","",$row[2]);        
   }else {
    //je considère que c'est du texte
       echo nl2br(htmlentities(str_replace("{LINKS}","",$row[2])));
   }

   $i++;
}

// Libération des résultats
@mysql_free_result($result);

// Fermeture de la connexion
@mysql_close($link);


include("../footer.php");//ça c'est juste un fichier perso qui inclut les pieds-de-page html

?>

Alors bien sûr, il peut être largement amélioré (ici, affichage que d'une seule liste, le n° de la liste est codé en dur, détection html discutable...), mais je l'utilise comme ceci sans problème.

Pied de page des forums

Propulsé par FluxBB