croco argos2003
crocus et aglaé
Syndication du site
argos2001.org
ARGOS2003
accueil
plan du site
conférences
nouvelles
 Les notes et références sont rédigées par un groupe de travail et sont bien sûr SGDG (1)

syndication   SPIP et les flux RSS   script javascript   script PHP
  Références


Syndication de contenu et flux RSS.

(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&amp;nbsp;?</title>
     


Fonctions RSS offertes par SPIP.

SPIP automatise la production d'un flux RSS, soit global, soit par rubrique ou pour les bréves.

Vous pouvez syndiquer les nouveautés de ce site dans n'importe quel lecteur de fichiers au format XML/RSS (Rich Site Summary). C'est aussi le format qui permet à SPIP de lire les nouveautés publiées sur d'autres sites utilisant un format d'échange compatible (sites syndiqués).

Le fichier «backend» des articles de ce site se trouve à l'adresse:

Vous pouvez également obtenir des fichiers «backend» pour les articles de chaque rubrique du site:

Il existe de plus un fichier contenant les brèves du site. En précisant un numéro de rubrique, vous obtiendrez uniquement les brèves de cette rubrique.

                       http://www.argos2001.org/spip/backend-breves.php3


 

Script d'affichage Javascript.

  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 :

           ARGOS2001.org 

 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)

PCExpert , mars 2005, La syndication de contenus et les canaux RSS, p 113-118
   L'intérêt de la syndication.
   Comment acquérir des flux RSS
    Les moteurs d'affichage
    Exemple de fichier XML et de moteur d'affichage simple en PHP.

SPIP
   site de spip