|
coolzen0 43
| Posté : 03-12-2008 12:01
Quelqu'un aurait un module qui permette de créer automatiquement un flux RSS à partir des articles ?
Merci d'avance |  Profil www Citation
|
|
Hotfirenet 1738
| |
coolzen0 43
| Posté : 03-12-2008 16:33
Ok merci.
Je vais me l'étudier avec d'autres trucs que j'ai trouvé sur le net parce que moi je veux que ce soit des articles pris au hasard et je veux pouvoir paramétrer le nombre d'article.
Encore merci. |  Profil www Citation
|
|
coolzen0 43
| |
coolzen0 43
| Posté : 03-12-2008 17:44
Donc au final ça me donne un fichier que j'ai appellé blocAleart.php et qui contient ça :
Début du fichier : la fonction aleart.
<?PHP
#autodoc aleart(x) : Bloc de liste de x articles pris de façon aléatoire <br />=> syntaxe : function#aleart puis params#5
#autodoc aleart_rss(x) : idem aleart() mais avec la création d'un flux rss en plus juste après...
//fonction aleart qui affiche dans le bloc x articles pris au hasard ; le x articles étant défini par le params#5 dans l'appel => 5 ici...
function aleart(&$nb) {
global $articles, $language;
$result = mysql_query("select sid, title from stories order& nbsp;by rand() limit 0,$nb");
$numrows = mysql_num_rows($result);
if ($numrows == 0) {
return;
} else {
$boxstuff .= "<ul>";
while (list($article_id, $artic le_titre) = mysql_fetch_row($result)) {
  ; $boxstuff .= "<li><a href=\"article.php?sid=$article_id\">$article_titre</a></li>";
}
$boxstuff .= "</ul>";
global $block_title;
if ($block_title=="")
$title=translate("Hasard");
else
$title=$block_title;
themesidebox($title, $boxstuff);
}
}
|  Profil www Citation
|
|
coolzen0 43
| Posté : 03-12-2008 17:48
Suite du fichier : La fonction aleart_rss.
//fonction aleart + buildRss (idem que précédemment, le nombre d'article est défini par params#5 ; exemple pour 5 articles...)
function aleart_rss(&$nb) {
aleart($nb);
buildRSS($nb);
}
|  Profil www Citation
|
|
coolzen0 43
| Posté : 03-12-2008 17:59
Suite du fichier : la fonction confXML
//fonction pour remplacer les caractères génants
function conf_XML($text)
{
$text = str_replace("&","&",$text);
$text = str_replace("<","<",$text);
$text = str_replace(">",">",$text);
$text = str_replace("\"",""",$text);
return $text;
}
|  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:43
Bon, je n'avais pas fini la dernière fois. Il faut aussi que je mette la fonction buildRSS($nb) mais j'ai du mal à la poster et ça m'énerve un peu.. aller, je retente. |  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:43
function buildRSS($nb) {
// En-tête du flux RSS version 2.0
$xml = '<?xml version="1.0" encoding="ISO-8859-1"?><rss version="2.0">';
$xml .= '<channel><title>WESRA - Web ESRA</title><link>http://wesra.free.fr/</link>';
$xml .= '<description>WESRA - Web Encyclopedie du Savoir Relatif et Absolu</description><la nguage>fr-fr</language><copyright>Copyright 2008 wesra .free.fr</copyright>';
// Ajout de la date actuelle de publicatio n (suivant la DTD RSS)
$xml .= '<lastBuildDate>'.date("D, d M Y H:i:s").' GMT</lastBuildDate>';
|  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:47
// paramêtres de connection à votre base de donnée (inutile ici car déjà fait en amont par NPDS)
//$host = 'sql.free.fr';
//$login = 'monLogin';
//$password = 'monPassword';
//$bdd = 'maBaseDeDonnée';
|  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:48
//mysql_connect($host,$login,$password);
//mysql_select_db($bdd);
|  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:48
// Sélection de 10 articles aléatoires
$Result = mysql_query("select sid, title, DATE_FORMAT(time, '%a, %d %b %Y %H:%i:%s') as date_heure, hometext from stories order by rand() limit 0,$nb");
// Creation des items : titre + lien + description + date de publication
while($val=mysql_fetch_array($Result)) {
$xml .= '<item>';
$xml .= '<title>'.conf_XML($val["title"]).'</title>';
$xml .= '<link>http://wesra.free.fr/article.php?sid='.$val["sid"].'</link>';
//$xml .= '<description>'.conf_XML($val["hometext"]).'</description>';
//$xml .= '<description>en savoir plus sur '.conf_XML($val["title"]).'...</description>';
$xml .= '<description><![CDATA['.$val["hometext"].']]></description>' ;
//$xml .= '<pubDate>'.date("D, d M Y H:i:s",$val["time"]).' GMT</pubDate>';
$xml .= '<pubDate>'.$val["date_heure"].' GMT</pubDate>';
$xml .= '</item>';
}
|  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:49
// Déconnexion (inutile ici)
//mysql_close();
// Fin du flux
$xml .="</channel></rss>";
// Ecriture du flux dans un fichier xml
$fp = fopen("rss.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
}
?>
|  Profil www Citation
|
|
coolzen0 43
| Posté : 08-12-2008 09:49
Et j'appelle mon bloc comme ça :
!include!#blocAleart.php
function#aleart_rss
params#5
ATTENTION : Sans le ! qui se mettent tout seul ici de chaque côté de l'includ
pour aficher 5 articles aléatoire dans le bloc et créer le fichier rss avec 5 articles aléatoire... Ce qui fait qu'à chaque fois que quelqu'un va sur le site un flux RSS est créé sans que je n'ai rien à faire...
Bon, c'était pour répondre à mon besoin mais vous devriez trouver votre bonheur dans ces fonctions si vous vous intéressez aux flux RSS |  Profil www Citation
|
|
Hotfirenet 1738
| Posté : 08-12-2008 09:49
arrete de poster ton code comme ca met le dans un fichier et envoi le moi, ou sur module |  Profil E-mail www Citation
|
|