SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano

273 Plugins, 191 contribs sur SPIP-Zone, 39 visiteurs en ce moment

Accueil du site > Administration et BDD > Import-Export > Flux RSS en articles > Flux RSS en articles

Flux RSS en articles

29 juin 2009 – par erational – 99 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

43 votes

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 nouveautés version 0.3

Pour éviter les doublons et les imports successifs, une fois l’article crée 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 selectionner 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
Il est recommandé d’utiliser cfg

Exemple d’utilisation

Ce plugin est utilisé sur le site revue réseau TIC. Il permet d’établir une revue du web en syndiquant de nombreux sites fonctionnant sur diverses plateformes (SPIP, Joomla, Drupal, ...)

Une utilisation alternative de ce plugin est de l’utiliser comme moteur d’importation d’articles. Par exemple. importer une base d’articles issue d’un site non SPIP.

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 récopiés

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 récopié et la fiche du site.

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

  1. <BOUCLE_art_principal(ARTICLES){id_article}>
  2. ...
  3. <BOUCLE_art_origine(ARTICLES_SYNDIC){id_article}><BOUCLE_infosite(SYNDIC){id_syndic}>  
  4. <div class="info_site">
  5.             <h1>#NOM_SITE</h1>
  6.             #DESCRIPTIF
  7.            [<small>URL: <a href="#URL_SITE">(#URL_SITE)</a></small>]              
  8. </div>
  9. </BOUCLE_infosite></BOUCLE_art_origine>
  10. ...
  11. </BOUCLE_art_principal>

Historique

Version Date Descriptif
0.5 aout 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 exterieurs (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

  1. <BOUCLE_rub_principal(RUBRIQUES) {id_rubrique}>
  2. <html ...>
  3. ....
  4. <BOUCLE_articlesyndic(SYNDIC_ARTICLES) {id_rubrique} {age<180} {par date}{inverse} {pagination 10}>
  5. <div class="article">
  6.                  <h1><a href="#URL_ARTICLE">[(#TITRE*)]</a></h1>
  7.         [<div class="enclosures">(#TAGS|afficher_enclosures)</div>]
  8.         <small>[(#DATE|affdate_court)][, <:par_auteur:> (#LESAUTEURS)][ &mdash; <em>(#TAGS|afficher_tags)</em>]</small>
  9.         [<div class="texte">(#DESCRIPTIF|image_reduire{500})<br class="nettoyeur" /></div>]
  10. </div>
  11. </BOUCLE_articlesyndic>
  12. [<p class="pagination">(#PAGINATION)  - #GRAND_TOTAL billets</p>]
  13. </div>
  14. </B_articlesyndic>
  15. ...
  16. </html>
  17. </BOUCLE_rub_principal>

Pour voir un exemple en ligne, voir la rubrique blog de l’école d’art d’aix-en-provence où sont repris tous les blogs des étudiants et professeurs.

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

P.-S.

Pour SPIP 1.9, voir le projet Miroir de syndication

Retour en haut de la page

Vos commentaires

  • Le 14 juin 2011 à 17:34, par Jean-Baptiste Pressac En réponse à : Flux RSS en articles

    Bonjour,
    Dans le cas où l’on aurait paramétré un site référencé en mode modération à postériori, Il y a un certain temps de latence entre le moment où l’on valide un lien dans le flux RSS et où celui-ci est transformé en article. je suppose que cela est dû au traitement de cette conversion par le CRON. Mais y aurait-il un moyen de rendre une conversion immédiate si l’utilisateur le souhaite ?

    D’autre part, serait-il possible d’intégrer la librairie HTML2SPIP, utilisée dans le plugin CKEditor afin de transformer en raccourcis typographiques le code HTML qui pourrait se trouver dans le flux, surtout si celui-ci n’est pas issu d’un site en SPIP.

    Merci pour ce plugin.

    Cordialement,

    • Le 16 juin 2011 à 03:41, par erational En réponse à : Flux RSS en articles

      Bonjour,

      Mais y aurait-il un moyen de rendre une conversion immédiate si l’utilisateur le souhaite ?


      Il faudrait ajouter un bouton dans la partie privée pour forcer une conversion immédiate manuelle.
      Sinon pour améliorer la gestion du CRON, le plugin job_queue est très bien

      serait-il possible d’intégrer la librairie HTML2SPIP


      Je n’ai pas testé cette librairie mais c’est une bonne idée. il faudrait sans doute l’ajouter en option dans le panneau de configuration comme option.
      Ensuite pour l’intégrer HTML2SPIP, il faudrait

      • que la librairie soit indépendante de CKEditor (via une installation dans ./lib/ ou encore via plugin indépendant que d’autres plugins pourraient partager (comme spip-bonux ou facteur par exemple)
      • cela serait bien de placer HTML2SPIP sur la zone pour que la communauté puisse y travailler.

      Si ces chantiers vous intéressent, n’hésitez donc pas à commiter. merci !

    • Le 16 juin 2011 à 20:31, par Jean-Baptiste Pressac En réponse à : Flux RSS en articles

      Merci pour ces réponses.

      En ce qui concerne HTML2SPIP, elle est bien indépendante de CKEditor et s’installe dans /lib. J’ai essayé de la tester avec votre plugin, mais avec mes piètres connaissances de PHP ce n’est pour l’instant pas très concluant. A suivre, donc.

    • Le 14 décembre 2011 à 11:03, par Jean-Baptiste Pressac En réponse à : Flux RSS en articles

      Bonjour,
      J’ai trouvé comment utiliser la librairie HTML2SPIP avec Flux RSS en articles : Il faut rajouter dans /genie/rssarticle_copie.php, ligne 61 après $texte = $a['descriptif']; le code suivant :

      1. /* Reconversion HTML vers typo SPIP */
      2. require_once(find_in_path('lib/html2spip-0.6/misc_tools.php'));
      3. require_once(find_in_path('lib/html2spip-0.6/HTMLEngine.class'));
      4. require_once(find_in_path('lib/html2spip-0.6/HTML2SPIPEngine.class'));
      5. $parser = new HTML2SPIPEngine($GLOBALS['db_ok']['link'], _DIR_IMG);
      6. $parser->loggingEnable();
      7. $output = $parser->translate($texte);
      8. $texte = $output['default'];   

      Il faut bien sûr avoir au préalable installé la librairie HTML2SPIP dans /lib.

    • Le 15 décembre 2011 à 03:50, par erational En réponse à : Flux RSS en articles

      bonjour

      cela semble très prometteur ! Je viens de tester en local, il reste quelques soucis :

      • ajout de caractères dans le texte (problème d’encodage ou de parsing ?) sur certains blogs (notamment flux RSS issus de wordpress francophone)
      • rapatriement des images distant échouent

      Si la solution commence à être stable, je l’intégrerai en option dans le panneau de configuration du plugin.

      merci beaucoup.

    • Le 16 décembre 2011 à 16:47, par Jean-Baptiste Pressac En réponse à : Flux RSS en articles

      Hello,
      Effectivement la libraire HTML2SPIP ne fonctionne correctement qu’avec des tables en UTF8. Je me suis bien arraché les cheveux avec ça, car il ne suffit pas que le contenu soit déclaré comme étant en UTF8 dans SPIP, il faut aussi que les tables de la base de données soient interclassées en UTF8 (voir également cet échange sur le forum du plugin CKEditor).

      Au sujet des problèmes d’encodage sous SPIP, je conseille la lecture de la synthèse de François Daniel Giezendanner : utf-8 : problèmes d’affichage des caractères et dysfonctionnement de la recherche .

    Répondre à ce message

  • Le 18 novembre 2011 à 00:27, par joz En réponse à : Flux RSS en articles

    Bonjour,
    merci pour ce plugin.

    juste deux petit choses pour la wish liste :

    -  les articles importés n’ont pas leur url d’origine attaché mais un lien via feedproxy.google.com. ça serait géniale de pouvoir choisir entre garder l’url d’origine et celui via google dans le config.

    -  le ’nom du site’ du site syndiqué n’est pas importé dans le champs ’lien hypertexte/titre’ de l’article. un petit détail qui serai chouette d’avoir

    si non tout a l’air de très bien fonctionner. quel chouette outil :)
    joz

    • Le 18 novembre 2011 à 17:16, par joz En réponse à : Flux RSS en articles

      sooory, j’ai raconté des salades avec feedproxy... ignorez le svp

    Répondre à ce message

  • Le 27 octobre 2011 à 16:29, par cedric konan En réponse à : Flux RSS en articles

    Bjr la communauté. j’ai téléchargé le plugin mais je sais pas vraiment l’utiliser. j’ai lu l’article et c’est pareil. je veux integrer ds mon site des articles concernant les automobiles recupéré grace au flux rss.et au clic on puisse avoir l’article complet ds mon un peu comme le slide de yahoo fait. je suis novice en programmation web je sollicite votre aide.

    Répondre à ce message

  • Le 3 juillet 2011 à 11:10, par Reunig Kozh En réponse à : Flux RSS en articles

    Salut

    Si je veux conserver un affichage de tous les derniers articles syndiqués, dois-je doubler les sites dans « les sites référencés » : un pour le plugin et un autre pour l’affichage dans ma colonne « Sur le web » (en bas à droite)
    http://www.cornouaille-ecologie.eu/
    Merci de votre aide
    René

    • Le 19 octobre 2011 à 08:43, par Reunig Kozh En réponse à : Flux RSS en articles

      Sans réponse, j’ai doublé les sites :)

    Répondre à ce message

  • Le 4 juillet 2011 à 13:01, par crusty En réponse à : Flux RSS en articles

    Bonjour, merci pour ce plugin, cependant j’ai un soucis bizarre.
    Installé sur un spip en local (avec easyphp), ce plugin fonctionne très bien, mais en l’installant sur mon espace perso chez free (pour des tests plus poussés). La création des articles se fait bien, mais elle donne une date de publication improbable « 1er janvier 1970 »... Je ne comprends vraiment pas d’où pourrait venir ce soucis...
    Si quelqu’un a une idée je suis preneur...

    JPEG - 209.8 ko
    • Le 12 juillet 2011 à 09:03, par erational En réponse à : Flux RSS en articles

      pour la date, le 1er janvier 1970 est un bug classique .Le problème vient peut-être du flux RSS émetteur
      Pouvez vous vérifier la date du site RSS émetteur :

      • la date est-elle présente dans le flux ?
      • la date est-elle correctement formatée ?
    • Le 12 juillet 2011 à 09:23, par crusty En réponse à : Flux RSS en articles

      Bonjour, la date est formatée ainsi :
      Tue, 12 Jul 2011 07:14:31 GMT+00:00

    • Le 10 août 2011 à 21:59, par Stéphane Deschamps En réponse à : Flux RSS en articles

      Bonjour, et d’abord merci pour ce plugin. :

      Je l’ai testé à l’instant avec http://seenthis.net/people/notabene/feed

      Effectivement on a un problème de date.

      Le code de la date pour les articles est du type :

      <published>2011-08-10T13:24:42Z</published>
      

      Et pour un article ancien (No labels on radio buttons...) :

      <published>2011-03-29T14:27:58Z</published>
      

      En testant en local, il importe bien tous les articles, mais ils sont tous à la date et heure courante au moment de la conversion RSS vers article.

      À ta disposition si tu as besoin d’informations de debug plus complètes.

    • Le 12 août 2011 à 06:39, par erational En réponse à : Flux RSS en articles

      bonjour,

      suite à vos demandes, j’ai modifié le comportement du plugin, la date de l’article recopié est maintenant la date indiquée dans le flux et non la date d’import.

      j’ai aussi ajouté une page cachée (pour les admins) ?exec=rss_article qui permet de forcer la copie manuellement sans passer par le cron (genie).
      Cela peut être pratique en période de tests ou si on est pressé.

    • Le 17 août 2011 à 07:17, par Stéphane Deschamps En réponse à : Flux RSS en articles

      Génial, merci, ça marche très bien !

    Répondre à ce message

  • Le 29 mai 2011 à 22:03, par ygornet En réponse à : Flux RSS en articles

    Cher erational, me permettez-vous que je commite cela ?

    Cela qui permet de mettre à jour les dates d’une rubrique où l’on vient d’ajouter un article issu d’un flux rss lorsque ces articles sont directement publiés. Et donc de trier par date ces rubriques.

    -  dans le fichier genie/rssarticle_copie.php
    -  on ajoute cet include en tête du fichier (vers la ligne 135)

            include_spip('inc/rubriques');

    -  puis on insert ce code après la fonction de dépublication de l’article syndiqué

    // Mise à jour des dates de rubriques après création d'un article dedans
               if ($id_article) {
                   if (function_exists('calculer_rubriques'))
                       calculer_rubriques();
                   if (function_exists('calculer_langues_rubriques'))
                       calculer_langues_rubriques();
                   if (function_exists('propager_les_secteurs'))
                       propager_les_secteurs();
               }
    • Le 6 juin 2011 à 02:54, par erational En réponse à : Flux RSS en articles

      Bonjour, désolé pour ma réponse tardive (vacances ...),
      Je n’ai pas testé votre code mais cela me semble bien.
      N’hésitez donc pas à commiter. merci !

    Répondre à ce message

  • Le 17 mai 2011 à 17:05, par Oparici En réponse à : Flux RSS en articles

    Bonjour,
    Est-il possible de ne plus créer des auteurs des articles syndiqués en tant que rédacteurs ?
    Je souhaiterai simplement que ceux-ci apparaissent en sous-titre d’article.
    Est-ce dans le fichier rssarticle_copie.php qu’il faut intervenir et comment ?

    Merci pour votre aide.

    Répondre à ce message

  • Le 22 février 2011 à 16:03, par Christophe En réponse à : Flux RSS en articles

    Bonjour,

    En utilisant le pipeline « declarer_tables_auxiliaires », comme par exemple dans le plugin « Accès restreint 3 », on peut éviter de mettre une inclusion de ’base/rssarticle’ dans le fichier rssarticle_options.php, ce qui est préférable en termes de performances (les fichiers d’option sont chargées à chaque consultation de page).

    Par ailleurs, pourquoi est-ce que le pipeline « post_syndication » n’est pas utilisé ?

    Cordialement

    • Le 22 février 2011 à 20:51, par erational En réponse à : Flux RSS en articles

      très bonne suggestion, n’hésite pas à commiter

    • Le 19 avril 2011 à 14:23, par Christophe En réponse à : Flux RSS en articles

      Bonjour,
      Je n’ai pas les droits pour commiter. Aussi, ci-joint le fichier ZIP du plugin, basé sur la version du 10/02/2011, dans laquelle j’ai modifié les 3 fichiers : plugin.xml, rssarticle.php, rssarticle_options.php.

      Les modifications que j’ai apportées sont clairement délimitées dans le code.
      J’ai utilisé le plugin « declarer_tables_auxiliaires » ainsi que « declarer_tables_interfaces » (pour déclarer la jointure).

      Cordialement

    • Le 28 avril 2011 à 06:42, par erational En réponse à : Flux RSS en articles

      C’est parfait, je viens de le commiter 47161.
      Merci pour ce code qui permet de gagner en performance.

    Répondre à ce message

  • Le 18 mars 2011 à 17:15, par RiskManager En réponse à : Flux RSS en articles

    Bonjour,

    Je suis occupé à mettre en route un site qui collationne des fils RSS liés au dangers et au risques (http://filinfo.dangers-et-risques.net). Je souhaiterai publier ces articles dans leur langue d’origine en permettant, via la gestion multilingue et la sélection de la langue au menu, de « filtrer » les news en fonction de ses connaissances linguistiques (en particulier filtrer les news en allemand pour ceux qui y seraient allergiques). Y a-t-il un moyen simple de mettre en oeuvre cette fonctionnalité (autrement qu’en ajoutant un mot clef au site et en bidouillant les squelettes) ?

    D’avance merci de vos réponses.

    Cordialement

    Répondre à ce message

  • Le 15 mars 2011 à 15:02, par hichem En réponse à : Flux RSS en articles

    Bonjour, j’ai installé le plugin mais j’ai un problème, en fait la source et l’url de l’article d’origine n’apparaissent pas sur les articles publiés. Pouvez-vous m’aidez car je trouve pas de solution. Cordialement.

    Répondre à ce message

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d'abord sur gravatar.com (gratuit et indolore) et n'oubliez pas d'indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Transaction : créer des formulaires avec paiement en ligne

    13 mars 2011 – 32 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Transaction est une extension du plugin de création de formulaires Formidable pour concevoir des formulaires de paiement en ligne et les connecter aux principales API bancaires françaises. Présentation Transaction introduit 3 nouveaux types de (...)

  • Formulaire de contact avancé

    23 mars 2009 – 1041 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un formulaire de contact configurable, avec de multiples options.

  • Squelette Multi-Saisons

    19 février 2009 – 226 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Un squelette qui change de couleurs suivant les saisons, un graphisme tout en rondeurs et de très nombreuses options.

  • JQuery Masonry

    15 août 2011 – <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Ce plugin est un portage pour Spip du plugin jQuery Masonry de David DeSandro : http://masonry.desandro.com/ Principe Ce plugin réorganise les blocs de votre page page d’après une grille (de manière verticale et horizontale) pour réduire au maximum (...)

  • Thélia

    26 juin 2007 – 835 <blink style='color:red;'>public|spip|ecrire:commentaires</blink>

    Une approche basée sur l’utilisation conjointe des deux logiciels SPIP et Thélia pour la réalisation de sites de publication et de vente en ligne