![]() crocus et aglaé |
Syndication du
site
argos2001.org |
ARGOS2003
|
(extrait de l'aide de SPIP :
http://www.spip.net/fr_article2389.html )
"Le format XML/RSS a été conçu pour « exporter » la liste des
derniers
articles publiés par un site Web. De cette façon, différents outils
peuvent automatiquement récupérer et afficher les titres et
descriptions des dernières mises à jour d’un site Web.
L’usage premier de ce format est la syndication de contenu : un site Web affiche (automatiquement) les dernières mises à jour d’un autre site Web. On appelle cet usage la syndication de contenu. SPIP, comme la plupart des outils de gestion de contenu (CMS), permet d’afficher facilement les informations publiées sur d’autres sites (via la fonctionnalité « Référencer/syndiquer un site Web »).
Une utilisation plus récente de ce format consiste à permettre aux usagers de l’internet de s’« abonner » à un site Web en récupérant automatiquement et régulièrement la liste des dernières mises à jour du site. En utilisant un logiciel adapté (un newsreader), l’usager n’a plus besoin de visiter tous les sites qui l’intéressent pour voir s’il y a des mises à jour : le logiciel lui indique directement quelles sont les nouveautés des différents sites auxquels il s’est « abonné ». Cet usage est particulièrement utile pour suivre l’activité de plusieurs sites en même temps.
SPIP créée automatiquement les différents fichiers au format XML/RSS permettant à un autre site de syndiquer le contenu de son propre site, et/ou aux visiteurs du site de s’y « abonner » avec un newsreader. Ces fichiers se nomment des fichiers « backend »."
Voici
par exemple le début du fichier backend.php3.xml
pour argos2001.org
<rss
version="0.91"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
<title>ARGOS2001.org</title>
<link>http://www.argos2001.org/spip/</link>
<description></description>
<language>fr</language>
<image>
<title>ARGOS2001.org</title>
<url>http://www.argos2001.org/spip/IMG/ruboff0.gif</url>
<link>http://www.argos2001.org/spip/</link>
<description></description>
</image>
<item>
<title>Un internement
ordinaire</title>
<link>http://www.argos2001.org/spip/article.php3?id_article=64</link>
<date>2005-02-28
01:18:24</date>
<description>Un gachis
humain et financier.</description>
<author>pierralot</author>
<dc:date>2005-02-28T00:18:24Z</dc:date>
<dc:format>text/html</dc:format>
<dc:language>fr</dc:language>
<dc:creator>pierralot</dc:creator>
</item>
<item>
<title>Réinstitutionalisation
en Europe&nbsp;?</title>
SPIP automatise la production d'un flux RSS, soit
global, soit par rubrique ou pour les bréves.
|
Il suffit d'insérer sans une page HTM, l'appel de ce script :
<script type="text/javascript" src="http://www.argos2001.org/spip/distrib.php3"></script>
pour avoir
l'affichage de :
Programme d'affichage PHP4
<?
$headline_style = '';
$description_style = '';
$feed_url = 'http://www.argos2001.org/backend.php3.xml';
$show_detail = false;
$insideitem = false;
$tag = "";
$title = "Nouvelles Bipolaires";
$description = "";
$link = "";
$image = "";
$insideimage = false;
$max = 8;
$count = 0;
render_news($feed_url, true, 'news', 'news' );
function render_news($feed_url, $showdetail, $headlinestyle,
$detailstyle) {
global $show_detail, $headline_style, $detail_style,
$max, $count,
$insideitem, $insideimage;
$insideitem=false;
$insideimage=false;
$count = 0;
$show_detail = $showdetail;
$headline_style = $headlinestyle;
$detail_style = $detailstyle;
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement",
"endElement");
xml_set_character_data_handler($xml_parser, "characterData");
$fp = @fopen($feed_url,"r")
or die("Erreur à la lecture du fichier RSS.");
if ($fp) {
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("Erreur XML n° %s à la ligne %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
} else {
echo '<span class="'. $detail_style
.'">Contenu inaccessible</span>';
}
xml_parser_free($xml_parser);
}
function startElement($parser, $name, $attrs)
{
global $insideitem, $tag, $title, $description, $link,
$image, $insideimage;
if ($insideitem || $insideimage) {
$tag = $name;
}
if ($name == "ITEM" ) {
$insideitem = true;
}
if ($name == "IMAGE") {
$insideimage = true;
}
}
function endElement($parser, $name)
{
global $insideitem, $tag, $title, $description, $link, $image,
$insideimage,
$show_detail, $headline_style, $detail_style,
$count, $max;
if ($name == "URL") {
echo '<img src="'. htmlspecialchars(trim($image))
.'"/><br><br>';
$insideimage=false;
$image="";
}
else if ($name == "ITEM" && $count < $max) {
$count++;
printf('<a href="%s" class="'. $headline_style .'"
target="_blank"><b>%s</b></a><br>',
trim($link),trim(utf8_decode($title)));
if ($show_detail)
printf('<span
class="'.$detail_style.'">%s</span>
<br>',trim(utf8_decode($description)));
else {
echo "<br>";
}
$title = "";
$description = "";
$link = "";
$insideitem = false;
}
else if ($count >= $max) {
$title = "";
$description = "";
$link = "";
$insideitem = false;
}
}
function characterData($parser, $data)
{
global $insideitem, $tag, $title, $description, $link,
$image, $insideimage;
if ($insideimage) {
switch ($tag) {
case "URL":
$image .= $data;
break;
}
}
if ($insideitem ) {
switch ($tag) {
case "TITLE":
$title .= $data;
break;
case "DESCRIPTION":
$description .= $data;
break;
case "LINK":
$link .= $data;
break;
}
}
}
?>
Avec le résultat
suivant à l'appel :
Nouvelles BipolairesUn internement
ordinaire
Un gachis humain et financier.
R?stitutionalisation en Europe ?
Stats 1990-2002 compar? dans 6 pays d'Europe
Projet de plan de sant?entale
Le 4 f?ier pr?ntation du projet de plan de
sant?entale.
Rififi psy ?OISSY
Reprise en main de deux secteurs du 94 :
psychanalyse contre psychiatrie biologique
Conf?nces en Haute Alsace
vendredi,17h30, au pavillon 24/1 Rouffach.
Plans et notes sur les conf?nces
plans conf?nces FIAP
Plan de l'ancien site
Romans d'Abigail PADGETT
4 romans policiers traduits en fran?s
Jusqu'ou la psychiatrie peut-elle
soigner ?
Critique de ce livre publi?n 2003.
Références
Syndication
(disponibles sur le web-pdf, html - ou en document papier)