Syndication RSS en javascript

Ceci est une ARCHIVE, peut-être périmée. Vérifiez bien les compatibilités !

Attention : l’API Google Feed n’est plus supportée par Google depuis décembre 2016. Ce plugin est donc obsolète. Pas de remplacement connu à ce jour.

Le plugin RssJs permet à l’aide de l’API Google Feed, d’afficher des informations de syndication sans passer par les sites syndiqués de spip. Ceci est particulièrement adapté aux sites hébergés par exemple chez free.fr, puisque l’ouverture / lecture de fichiers distants est désactivée, rendant la syndication intégrée à Spip inopérante. Avec cette solution, tout se passe entre le navigateur et le serveur de l’api google.

Ce plugin s’installe et s’active comme tous les plugins. Il n’installe aucune table supplémentaire. Il se contente d’appeler l’API Google Feed ainsi qu’un javascript d’activation et d’initialisation. Il propose deux modèles à insérer dans n’importe quel article pour afficher les informations d’un flux Rss donné.

Modèle rssjs

Ce modèle permet d’afficher un flux en donnant directement son url
<rssjs |url=adresse de mon flux |nbre_entrees=... |mode=.... |class=... >

Les paramètres :
-  url est l’adresse du flux rss à afficher. Ce paramètre est obligatoire.
-  nbre_entrees (facultatif). Indique le nombre d’items du flux à afficher, la valeur par défaut est 12.
-  mode (facultatif). Par défaut, le titre avec lien vers l’article original, ainsi que le contenu (balise content, summary ou description des items) sont affichés. Si mode=no_content, comme on peut le deviner seul le titre avec lien sera affiché. Si mode=snippet, c’est le début du contenu tronqué à 200 caractères et sans balises html qui sera affiché.
-  class. Le nom d’une class css affectée à la balise dl (voir plus bas).

Modèle rssjs_site

Ce modèle permet d’afficher un flux à partir des informations enregistrées dans les sites syndiqués de Spip (il est nécessaire de renseigner le champ « Adresse du fichier de syndication », mais pas d’activer la syndication).
<rssjs_site xx |nbre_entrees=... |mode=... |class=.... > ou <rssjs_site |id_site=xx |nbre_entrees=... |mode=.... |class=... >

Les paramètres :
-  xx est l’identifiant du site enregistré dont on veut afficher le flux. <rssjs_site 4 |> ou <rssjs_site |id_site=4> donnera le même résultat.
-  les autres paramètres sont identiques à ceux du modèle rssjs.

Pour aller plus loin

J’ai choisi de développer les utilisations en modèles car plus souples à mon sens, mais rien n’empêche d’inclure ces modèles dans un squelette.

Les fonctionnalités sont mises en place par le couple modèle / fonction javascript. Les deux modèles fournis utilisent la même fonction javascript disponible dans le fichier « js/rssjs.js » du dossier du plugin. Il est possible de surcharger l’appel à ce fichier en plaçant un fichier du même nom dans un dossier « js » du dossier « squelettes ». le fichier pourra contenir plusieurs fonctions d’initialisation de l’affichage suivant le modèle désiré. Le mécanisme d’initialisation du plugin est alors conservé.

L’affichage des informations de syndication se fait sur la base de balises dl dt dd. la balise dl a pour classe css « rssjs » par défaut. Il est possible d’ajouter une ou plusieurs classe à cette balise par le paramètre « class ».

Si un fichier « css/rssjs.css » existe dans le dossier squelettes, celui-ci sera appelé automatiquement.

Pour exemple voir le modèle « rssjs_complet » et la fonction javascript associée.

Plugin disponible sur la zone

Révisons

-  Construction d’un modèle / fonction javascript avec d’avantage d’informations affichées
-  Version spip 3

Discussion

3 discussions

  • 3

    Bonsoir,

    Est t’il possible d’appeler le plugin dans une squelette comme c’est le cas avec GIS ? Si oui quelle est la commande ? sinon comment faire pour voir afficher mes articles syndiqués sur la page sommaire ?

    D’avance merci de votre retour
    Cordialement,
    Arielle

    • Tous les modèles peuvent être inclus dans les squelettes, l’équivalent de #INCLURE est alors [(#MODELE{nomdumodele}{paramètres séparés par des virgules})]. Ce n’est ni propre à GIS ou a tel ou tel modèle, c’est une fonctionnalité générale de spip (donc à la limite même les modèles img, doc, etc...).

      Donc ici [(#MODELE{rssjs}{url=adresse de mon flux, nbre_entrees=...  ,mode=...., |class=...})] doit fonctionner, les paramètres ayant les mêmes propriétés que pour le modèle inclus en article.

    • Bonjour Domiw

      Je vous remercie de votre retour. Cependant j’ai rien qui m’affiche (ne faudrait t’il pas surcharger d’autres fichiers du plugin par hasard dans le répertoire squelettes ?)

      D’avance merci de votre retour.
      Cordialement,
      Arielle

    • Non pas besoin de surcharger quoi que ce soit si on veut utiliser les modèles du plugin. C’est probablement dû au fait que #INSERT_HEAD n’est pas présent dans les entêtes du squelette, entre les balises <head> et </head>. Voir ici pour plus d’explications http://www.spip.net/fr_article4629.html et voir sur les squelettes de la dist pour exemple.

    Répondre à ce message

  • 2
    awelvor

    Ce plugin semble incompatible avec spip 3.0.7,
    est-ce normal ?

    • Je ne sais pas. Pas testé avec spip 3.0.x pour le moment. En tout cas il n’y a pas de fichier paquet.xml et de version spécifique. Laissons du temps au temps…

    • Version pour spip 3 disponible

    Répondre à ce message

  • 1

    Bonjour,
    je trouve que c’est une très bonne idée, merci pour ce plugin !
    Je l’ai tout de suite testé pour SPIP3 et tout fonctionne très bien sauf qu’il faut appeler le modèle avec la variable « url » et non « flux » comme décrit dans cet article... ça doit être pareil pour SPIP2 non ?

    • Oui bien sûr c’est url et pas « flux », je corrige.
      Pour spip3, même si la version n’est pas optimisée, ça doit fonctionner, vu qu’il n’y a pas de création de table dans la base de données.
      Merci du retour.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom