Aller au contenu

Création et automatisation d'un fil RSS


marius120

Sujets conseillés

Voilà, aucun site n'explique parfaitement l'installation d'un fil RSS, avec les infos de son propre site, tout cela fait automatiquement. Moi même, n'y comprends strictement rien lorsqu'il s'agit de se connecter à la base de donnée.

Voici l'installation avec certains logiciels:

PhpNuke postnuke: http://www.votresite.fr/backend.php , exemple: http://www.pdaddict.com/backend.php

Xoops (installer module BopComments http://www.frxoops.org/modules/referent ... mp;lid=114): http://www.votresite.fr/modules/BopComments/backend.php exemple: http://www.francefootball.org/modules/B ... ackend.php

Maintenant concernant les autres sites: (conseils d'utiliser: easyRSS, domRSS, RssBuilder) aux adresses: http://www.phpspirit.com/ , http://classes.scriptsphp.net:81/doc.domRSS , http://www.actifpub.com/create_rss.zip)

Maintenant, je vous demande de l'aide pour l'installation d'un de ces logiciels:

J'aimerai qu'on m'explique l'installation de RSS Builder:

(telechargeable ici: http://www.actifpub.com/create_rss.zip)

Le dossier create_rss comporte 2 fichiers:

- rss.php

- class.RSSBuilder.inc.php

Seul rss.php est à modifier et voici son contenu:

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4: */
//+----------------------------------------------------------------------+
//| WAMP (XP-SP1/1.3.24/4.0.12/4.3.0) |
//+----------------------------------------------------------------------+
//| Copyright © 1992-2003 Michael Wimmer |
//+----------------------------------------------------------------------+
//| I don't have the time to read through all the licences to find out |
//| what the exactly say. But it's simple. It's free for non commercial |
//| projects, but as soon as you make money with it, i want my share :-) |
//+----------------------------------------------------------------------+
//| Authors: Michael Wimmer <flaimo_AT_gmx.net> |
//+----------------------------------------------------------------------+
//
// $Id$

/**
* _AT_package RSSBuilder
* _AT_category FLP
* _AT_filesource
*/
error_reporting(E_ALL & ~E_NOTICE);
ob_start();
session_start();
include_once 'class.RSSBuilder.inc.php';

/* create the object - remember, not all attibutes are supported by every rss version. just hand over an empty string if you don't need a specific attribute */
$encoding =(string) 'ISO-8859-1';
$about = (string) 'http://www.francefootball.org'; // nom du site
$title = (string) 'Infos Football'; // titre du rss
$description = (string) 'Les news football; // description du rss
$image_link = (string) 'http://msn.messenger.free.fr/images/StdBallonFootball.gif'; // adresse logo
$category = (string) 'PHP Development'; // (only rss 2.0)
$cache = (string) 60; // in minutes (only rss 2.0)
$rssfile = new RSSBuilder($encoding, $about, $title, $description, $image_link, $category, $cache);

/* if you want you can add additional Dublic Core data to the basic rss file (if rss version supports it) */
$publisher = (string) 'nom '; // l'editeur du fil rss
$creator = (string) 'nom société'; // auteur ou société
$date = (string) date('Y-m-d');
$language = (string) 'fr';
$rights = (string) 'Copyright © '; // copyright
$coverage = (string) ''; // spatial location , temporal period or jurisdiction
$contributor = (string) 'nom'; // person, an organization, or a service
$rssfile->addDCdata($publisher, $creator, $date, $language, $rights, $coverage, $contributor);

/* if you want you can add additional Syndication data to the basic rss file (if rss version supports it) */
$period = (string) 'daily'; // hourly / daily / weekly / ...
$frequency = (int) 1; // every X hours/days/...
$base = (string) date('Y-m-d');
$rssfile->addSYdata($period, $frequency, $base);


[b]// ci-dessous votre article placer dans les ''
// si vous souhaitez creer plusieurs articles, il vous faut faire une boucle
// en prenant par exemple dans votre base de donnée
// une requete puis while ..... { [/b]

/* data for a single RSS item */
$about = $link = ''; // liens de l'article
$title = (string) ''; // titre des articles
$description = (string) ''; // news
$subject = (string) ''; // Thème optional DC value
$date = (string) ''; // DAte optional DC value date('Y-m-d')
$author = (string) ''; // author of item
$comments = (string) ''; // url to comment page rss 2.0 value
//$image = (string) 'http://real-rv9.com/small_logo2.png'; // optional mod_im value for dispaying a different pic for every item
$rssfile->addItem($about, $title, $link, $description, $subject, $date, $author, $comments, $image);

//...}


$version = '1.0'; // 0.91 / 1.0 / 2.0
$rssfile->outputRSS($version);
// if you don't want to directly output the content, but instead work with the string (for example write it to a cache file) use
// $rssfile->getRSSOutput($version);
ob_end_flush();
?>

Ce que je voudrais savoir, c'est comment créer une boucle comme ils disent: (et que j'ai mis en gras)

// ci-dessous votre article placer dans les ''

// si vous souhaitez creer plusieurs articles, il vous faut faire une boucle

// en prenant par exemple dans votre base de donnée

// une requete puis while ..... {

Voilà ce que j'aimerai savoir svp...

Si une personne "balaise" en tout ce qui est base de donné pourrait me donner tout le code ci dessus avec les modifications nécéssaires afin que le fil puisse s'actualiser automatiquement...

Ce serait vraiment tres sympathique! :wub:

Merci d'avance...

Lien vers le commentaire
Partager sur d’autres sites

Mon fichier make_rss.php, qui comme sont nom l'indique très peu, construit un fil à partir d'une base MySQL.

C'est du RSS 0.91 un peu dépassé mais fonctionnel que j'utilise car je ne voudrais pas surcharger les requêtes chez Free.

<?php
include ('config.php');

// on se connecte à notre base
$base = mysql_connect ($serveur, $login, $password);
mysql_select_db($nom_base, $base);

// lancement de la requête.
$sql = 'SELECT titre, id_news, description FROM news ORDER BY date_news DESC LIMIT 0,10';

// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on compte le nombre de news stockées dans la base de données
$nb_news = mysql_num_rows($req);

if ($nb_news == 0) {
   echo 'Problème de connexion à la base de données.';
}
else {

$xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?> \n";
$xml .= "<rss version=\"0.91\"> \n";
$xml .= "<channel> \n";
$xml .= "<title>Hardcode-fr</title> \n";
$xml .= "<link>http://hardcodefr.free.fr/</link> \n";
$xml .= "<description>News personnelles, ludiques et informatiques</description> \n";
$xml .= "<language>fr</language> \n";

   // si on a au moins une news, on l'affiche
   while ($data = mysql_fetch_array($req)) {

       // on affiche les résultats
       $xml .= "<item> \n";
       $xml .= "<title>".stripslashes(htmlspecialchars($data['titre']))."</title> \n";
       $xml .= "<link>http://hardcodefr.free.fr/index.php?page=commentaires&id=".$data['id_news']."</link> \n";
       $xml .= "<description>".htmlspecialchars($data['description'])."</description> \n";
       $xml .= "</item> \n";
   }

$xml .= "</channel> \n";
$xml .= "</rss>";

}
// on libère l'espace mémoire alloué à cette requête
mysql_free_result ($req);

// on ferme la connexion à la base de données
mysql_close ();

$fp = fopen("rss.xml", 'w+');
       fputs($fp, $xml);
       fclose($fp);
?>

Lien vers le commentaire
Partager sur d’autres sites

Donc il faut mettre juste cela, dans un fichier make_rss.php, dans notre FTP?

Et on ne met rien dans la base de donnée? Ou il faut des autres fichiers a mettre?

Et cela est alors automatique? lol Bcp de questions!

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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