Flux RSS en articles

Recopie des flux RSS en articles SPIP

Mode de fonctionnement

Ce plugin recopie les flux RSS (articles syndiqués) en articles

  • reprise du contenu du flux
  • crée l’auteur s’il est mentionné dans le flux
  • ajoute les documents distants présents dans le flux
  • dans le champs URL de l’article on indique l’adresse de l’article d’origine

Pour éviter les doublons et les imports successifs, une fois l’article créé, l’article syndiqué est rejeté (ce qui permet de suivre où en sont les recopiés).

Via cfg (configuration) il est possible de choisir:

  • le statut des articles (proposé ou publié)
  • le mode de fonctionnement:
    • automatique: tous les sites syndiqués validés sont recopiés
    • manuel: il faut sélectionner manuellement les sites syndiqués sur lequel on veut que la copie soit active
  • s’il faut être averti par e-mail à chaque flot de recopies (qui ont lieu tous les 10min)
  • s’il faut copier le logo du site comme logo d’article (facultatif car peut générer beaucoup de fichiers) (déprécié, utiliser plutôt la liaison avec la table spip_articles_syndic)

En mode automatique, pour éviter la saturation de la base, tous les articles syndiqués de plus de 2 mois sont effacés (inutile donc de cocher l’option).

Installation

Télécharger et installer comme un plugin habituel

Recommandations

Lorsque vous ajoutez un nouveau site à syndiquer:

  • bien choisir la rubrique où vous référencez le site. c’est là que les articles seront copiés
  • choisir l’option “le contenu complet des articles (au format HTML)” si vous voulez récupérer l’intégralité du contenu (et non son résumé). (Cette option est automatiquement validée si vous êtes en mode manuel)
  • ne pas oublier de valider le site (statut vert “validé”)

En terme de squelette:

  • En mode automatique, il est recommandé de ne pas utiliser la boucle SYNDIC_ARTICLES car les objets ne seront pas stables (en permanence copiés et effacés pour devenir des articles).
  • En mode manuel, vous pouvez ajouter le critère {rssarticle=non} à vos boucles SYNDIC pour ne traiter que les sites dont les articles syndiqués ne sont pas recopies

Le plugin peut créer beaucoup d’articles rapidement, il est donc conseillé d’être précis dans les flux RSS que vous soumettez.

Par exemple sur un site SPIP
au lieu de soumettre le flux général d’un site de type http://www.a-brest.net/spip.php?page=backend
Préférez un flux plus restreint, plus thématique

  • le flux d’une rubrique ex.http://www.a-brest.net/spip.php?page=backend&id_rubrique=161
  • le flux d’un mot ex. http://www.a-brest.net/spip.php?page=backend&id_mot=16

Liaison tables articles et sites

A partir de la version 0.2, le plugin crée une table spip_articles_syndic qui permet de lier l’article recopié et la fiche du site.

Voici par exemple une boucle qui permet d’afficher la fiche du site depuis l’article recopié

<BOUCLE_art_principal(ARTICLES){id_article}>
...
<BOUCLE_art_origine(ARTICLES_SYNDIC){id_article}><BOUCLE_infosite(SYNDIC){id_syndic}>  
<div class="info_site">
            <h1>#NOM_SITE</h1>
            #DESCRIPTIF
           [<small>URL: <a href="#URL_SITE">(#URL_SITE)</a></small>]              
</div>
</BOUCLE_infosite></BOUCLE_art_origine>
... 
</BOUCLE_art_principal>

Historique

Version Date Descriptif
1.1.5 14 août 2017 compatible PHP 7.0
1.1.3 13 novembre 2014 compatible SPIP 3.1
1.1 août 2012 version bêta pour SPIP 3.0
0.5 août 2011 date de l’article est celle du flux.
Ajout d’une page pour forcer la copie manuellement
0.4 avril 2011 performance (déclaration table via pipeline)
0.3 avril 2010 choix du mode: automatique ou manuel
0.2 septembre 2009 ajout de la liaison l’article et site
0.1 juillet 2009 sortie initiale

Avertissement

Ce plugin modifie globalement le fonctionnement de la syndication. Il répond à un besoin très particulier de sites qui veulent récupérer beaucoup d’informations de flux extérieurs (RSS, ATOM) et de pouvoir les re-travailler dans le flux habituel des articles SPIP (par exemple, les déplacer, les éditer, faire le lien faire l’auteur, ajouter des mots-clés, ....) ce que ne permettent actuellement pas les articles syndiqués.

La solution basique à base de boucles
Pour les autres sites, si vous désirez simplement afficher une rubrique type revue du presse, la solution la plus simple et économique est de le réaliser au niveau du squelette.
Par contre, vous n’aurez pas la possibilité d’éditer et d’intervenir sur les articles syndiqués (sauf les effacer) (c’est ce que permet le plugin)

Par exemple, je veux créer une rubrique regroupant les informations de 3 maisons de la culture (MJC)

  1. créer une rubrique “Actualités des maisons de la Culture”
  2. dans cette rubrique, ajouter les 3 flux RSS des sites de MJC. choisir l’option “le contenu complet des articles (au format HTML)
  3. compléter au besoin votre squelette.

Si ma rubrique possède le numéro 34, cela donne rubrique=34.html

<BOUCLE_rub_principal(RUBRIQUES) {id_rubrique}>
<html ...>
....
<BOUCLE_articlesyndic(SYNDIC_ARTICLES) {id_rubrique} {age<180} {par date}{inverse} {pagination 10}>
<div class="article">
		 <h1><a href="#URL_ARTICLE">[(#TITRE*)]</a></h1>
  	[<div class="enclosures">(#TAGS|afficher_enclosures)</div>]
  	<small>[(#DATE|affdate_court)][, <:par_auteur:> (#LESAUTEURS)][ &mdash; <em>(#TAGS|afficher_tags)</em>]</small>
  	[<div class="texte">(#DESCRIPTIF|image_reduire{500})<br class="nettoyeur" /></div>]
</div>
</BOUCLE_articlesyndic>
[<p class="pagination">(#PAGINATION)  - #GRAND_TOTAL billets</p>]
</div>
</B_articlesyndic>
...
</html>
</BOUCLE_rub_principal>

Astuces

La copie des articles syndiqués en articles spip se fait automatiquement par le mécanisme du cron (génie) tous les 10 minutes.
version 0.5 Si vous voulez forcer manuellement cette recopie, vous pouvez appeler cette page cachée ?exec=rss_article

updated on 2 October 2019

Discussion

67 discussions

  • 6

    Bonjour,
    j’utilise depuis quelques années votre plugin avec succès. Aujourd’hui pour un nouveau projet j’ai installé la dernière version de SPIP (3.2.4), j’ai pu installer l’archive mais elle ne fonctionne pas. Est-ce que ça pourrait venir du fait que j’utilise SQLite ?

    • Bonjour,
      c’est bizarre , je viens de l’installer récemment sur un SPIP 3.2.4 (MySQL) et le plugin fonctionne bien. Pouvez vous confirmer que le plugin ne fonctionne plus sur SQLite ?

    • Oui c’est ça , il ne fonctionne pas sous SQLite. Je l’ai testé sans aucun autre plugin installé.

    • Voici le message d’erreur

      Erreur SQL HY000 / 1
      no such column: rssarticle
      SELECT rssarticle FROM spip_syndic WHERE id_syndic=3
    • Dans :
      rssarticle/v1.1.7/formulaires/editer_rssarticle.php - ligne 15

      Boucle :
      formulaires_editer_rssarticle_charger_dist(){ sql_getfetsel(); }

    • Bonjour

      Je viens d’installer le plugin sur un SPIP 3.2.4 sous SQLite.
      Tout fonctionne bien parfaitement ....

      La ligne 15 est valide:

      1. $rssarticle = sql_getfetsel('rssarticle','spip_syndic','id_syndic='.intval($id_syndic));

      Apparemment votre installation ne marche pas et le plugin n’arrive pas à créer la colonne “rssarticle” sur la table “spip_syndic”

      J’ai donc repris le code du plugin en le normalisant.
      Pouvez vous donc ?

      • désinstaller l’ancien plugin
      • télécharger et installer le plugin rss article à la version 1.2.0 qui devrait être disponible en téléchargement d’ici une ou deux heures
    • C’est mieux comme cela ;) Merci

    Reply to this message

  • 6
    formatec

    Bonjour,
    J’ai deux sites qui utilisent à merveille ce plugin. Merci aux auteurs.
    Cependant, depuis que j’ai passé le serveur en PHP 7
    la syndication d’articles continue, mais plus de créations automatiques en articles.

    Y a t il conflit à cause de PHP7 ? faut il changer la config ou modifer quelquechose dans les fichiers php du plugin?

    • Il y a bien un problème avec PHP7. J’avais le même problème, et quand j’ai regardé les logs PHP7, il ralait à cause de l’utilisation de la fonction eregi() qui n’existe plus avec cette version.

      J’ai donc modifié le code dans le fichier genie/rssarticle_copie.php à la ligne 258 de la façon suivante :

      //Code original
      if (eregi("<title.*>(.*)</title>", $lapage, $regs))
      //À remplacer par
      if (preg_match("/<title.*>(.*)<\/title>/i", $lapage, $regs))

      Après modification, le plugin fonctionne parfaitement !

    • Merci beaucoup Marsu15.
      J’ai intégré ton patch dans la nouvelle version 1.1.5 du plugin.

    • Bonjour tout le monde,
      j’utilise le plugin Flux RSS en articles version 1.1.6 - stable avec spip 3.1.6 , ça marchait super bien, mais depuis quelques mois c’est bloqué les articles issus du flux rss ne sont plus copiés en articles spip !!!
      Quelqu’un a une idée du probléme ???
      Merci de votre réponse

    • Bonjour!

      De mon côté (plugin en version 1.1.6 et SPIP en version 3.2.0), pas de soucis.
      Est-ce que tu as essayé de forcer l’exécution de la tâche “rssarticle_copie” pour voir ce que ça donnait? ( http://tonsite.net/ecrire/?exec=job_queue )

      As-tu regarder s’il y avait des erreurs dans les logs de SPIP au déclenchement de la tâche? ( tmp/log/*.log )

      À plus.

    • Merci pour votre réponse
      Voici quelques lignes de mon fichier log, aidez moi a comprendre :)

      2018-03-06 12:37:35 154.124.99.43 (pid 14806) :Pri:ERREUR: syndic_a_jour doit etre appelee par JobQueue Cf. http://trac.rezo.net/trac/spip/changeset/10294
      2018-03-06 13:37:51 41.82.38.252 (pid 20575) :Pri:!INFO: Creation du cache e8b50ba604db4118f79659deab3a33a8.cache pour 86400 secondes

      J’ai vu une ERREUR et un lien qui est mort, mais j’avoue que je ne comprends pas !!!

    • Bonjour,
      Personne ne peut m’aider, le lien qui se trouve dans le fichier log est not found, comment faire pour corriger pour que mes flux remarchent ....Merci

    Reply to this message

  • Bonjour,

    Comment peut-on faire pour alimenter la redirection de l’article syndiqué vers sont URL d’origine automatiquement ?

    Merci

    Reply to this message

  • Merci pour ce super plugin qui marche très bien.

    Une suggestion : ajouter une option permettant d’éviter la génération automatique d’auteurs par le plugin (ça fait vite beaucoup d’entrées pas nécessairement utiles dans la base de données).

    Et une question : que se passe-t-il si on supprime un article proposé par le plugin ? Est-il recréé tant que la référence est présente dans le fil RSS ?

    Reply to this message

  • Salut,

    Tout d’abord merci pour cette contribution ! fort pratique. Cependant je rencontre un problème à la génération des articles :
    -  Malgré le fait d’avoir coché “le contenu complet des articles (au format HTML) dans les options de syndication et coché Passer le HTML en syntaxe SPIP.” et “Utilisez le plugin “ressource” pour afficher ensuite les images.”
    Mes articles sont un peu bizarre :

    1. <h5><a href="http://localhost/forum_ap/desherbage.html" title="Désherbage">Désherbage</a></h5> <b>Statistiques</b> : 1 Message || 461 Vus Message de Grégoire AP

    Une idée pour avancer là dessus ?

    Merci d’avance

    Reply to this message

  • minicircul

    MISE À JOUR ... ET PLUS RIEN

    Bonjour, ayant mis à jour tardivement rss_article sur la dernière version de SPIP 3.0.17, pas de message d’erreur, pas de soucis, pourtant la copie ne se réalise plus ...

    Une manip à faire ? (j’étais en rss_article 1.1.0)

    Merci

    Reply to this message

  • Plugin super avec, comme toujours, deux ou trois bricoles à travailler...

    J’utilise le plugin un peu à “l’envers”... Plutôt que d’alimenter “mon” site avec des flux RSS venant d’autres sites, je mets en place un site qui doit en alimenter un tas d’autres qui utiliseraient le plugin... Grosso modo, il s’agit d’écrire régulièrement des articles (dépêches) qui seraient répercutés automatiquement sur ces sites.

    Le seul souci que j’ai, c’est que ces articles ont souvent des notes et des références sous forme de liens (du style référence->http://site_de_reference)... Mais du coup, sur le site qui reçoit le flux, ces liens deviennent monsite.org/“http:/www.site_de_reference.html” ce qui aboutit, bien sur, sur un “Not Found”...

    J’ai fait une fausse manip ou y’a-t-il une solution ?

    Merci d’avance...

    Reply to this message

  • 1
    Cédric J

    Bonjour,

    Après installation du plugin (version 1.1.2) sur SPIP 3.0.17, j’ai le message d’erreur suivant à la place de la page de configuration : “Fichier configurer_rssarticle introuvable”.

    Effectivement, dans le répertoire “/exec/” du plugin, il n’y a pas de fichier “configurer_rssarticle.php”, uniquement le fichier “rss_article.php”.

    Quelqu’un a une piste ?

    Merci d’avance.

    • Cédric J

      Je me répond à moi-même, il ne fallait pas aller chercher bien loin ...
      Le transfert FTP du fichier “/prive/squelettes/contenu/configurer_rssarticle.html” avait échoué.
      En le ré-uploadant, ça fonctionne mieux ! ;-)

    Reply to this message

  • 1
    Gil Drouville

    Suite au passage à Spip 3.0.16, les flux sont bien visibles en partie privés, mais ne me créer pas d’article dans la partie publique.
    Une idée ?

    • Salut!

      Je l’utilise sans souci avec un SPIP 3.0.16. Quelle était ta version précédente de SPIP? Qu’elle est ta version actuelle du plugin?

      As-tu vérifier la présence de la tâche “rssarticle_copie” en te rendant sur la page “ecrire/?exec=job_queue” ?

       À plus.

      Ludo

    Reply to this message

  • minicircul

    BUG SUR LA MISE À JOUR LORS DE SOURCES.

    Bonjour,

    Que ce soit sous la version SPIP 3.0.15 ou 16, je suis confronté au problème suivant :
    -  Les articles créés via le flux RSS sont correctement importés
    -  lors du rafraichissment (je suppose), les articles en vert passent en bloqué automatiquement alors que le flux RSS source n’a pas été modifié.

    j’avais déjà remarqué un pbm de rafraichissement à la sortie de la nuit (articles passant de publiés à bloqués) j’effaçais alors l’ensemble de la liste et forçais un rafraichissement pour relancer le système.

    Si quelqu’un a une piste, je suis preneur !

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom