SPIP-Contrib

SPIP-Contrib

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

289 Plugins, 197 contribs sur SPIP-Zone, 136 visiteurs en ce moment

Accueil > Administration et BDD > Import-Export > SPIP2SPIP > Spip2Spip

Spip2Spip

Version Plugin

21 février 2008 – par erational, RealET – 166 commentaires

31 votes

Spip2spip permet de synchroniser le contenu de plusieurs sites SPIP entre eux en étendant le principe de la syndication thématique. Les articles d’un SPIP sont recopiés d’un site à l’autre en conservant leur formatage original.

Fonctionnalités

Spip2spip permet à des sites Spip qui ont des thématiques en commun de s’échanger directement les articles au format Spip.

À la différence d’une simple syndication, l’article va être importé en tant qu’article dans la rubrique du site destination. Cet article importé sera donc éditable et conservera ses raccourcis et le maximum d’informations (auteurs, pièces jointes, mots-clés ....)

Téléchargement et installation

  1. Téléchargez le plugin
  1. Activez le plugin dans le menu habituel.
    L’activation du plugin crée automatiquement le groupe de mots-clés -spip2spip- qu’il faudra compléter pour tagguer les thématiques à échanger.
  1. Renseignez les sites avec lesquels vous voulez importer des informations, en les ajoutant dans le menu édition > spip2spip

Paramétrage du plugin

Avec CFG, vous pouvez définir vos options d’import :

  • Quel est le statut des articles à importer : proposé ou publié ?
  • Faut-il citer l’adresse d’où provient l’article ?
  • Faut-il alerter un admin par email à chaque syndication ?
  • Faut-il importer / exporter les mots-clés des articles et de ses événements ?
  • Faut-il créer les mots-clés dans un groupé donné ou ré-créer les groupes de mots-clés du site d’origine ?

Via config/mes_options.php il est possible de :

  • Bloquer la récupération du contenu (si la seule information qui nous intéresse, c’est le titre et l’origine du contenu)
  • Bloquer la récupération des documents joints
  1. define('_SPIP2SPIP_RECUPERER_CONTENU', false);
  2. define('_SPIP2SPIP_RECUPERER_DOC', false);

Télécharger

Principe général

spip2spip est une syndication qui est basée sur un groupe de mots-clés commun appelé - spip2spip -

Chaque mot-clé de ce groupe sert à désigner une thématique donnée :

  • créer un mot clé dans ce groupe permet de créer un canal thématique
  • attribuer ce mot-clé à vos articles permet de les diffuser aux autres sites
  • attribuer ce mot-clé à une rubrique permet d’y importer les articles des autres sites

Les sites recopient les articles entre eux grâce au cron :

  • le formatage des articles spip des articles est conservé (raccourcis typographiques, saut à la ligne, insertion des images et documents ....)
  • citation automatique de la source (url de l’article d’origine)
  • reprise de la licence (voir contribution licence)
  • création de l’auteur si celui n’est pas présent le site SPIP cible.
  • les images et documents sont convertis en documents distants
  • les événements liés à l’article si vous utilisez le plugin Agenda 2.0 et ultérieur
  • logo de l’article version 2.3
  • langues, liens de traduction et balises <multi> version 2.3
  • mots-clés de l’article et de ses événements version 2.3

Diffuser de l’information

  1. Allez dans le groupe de mots-clés -spip2spip-
  2. Dans ce groupe, créez un mot-clé par chaîne thématique que vous voulez diffuser : sport, informatique, œnologie, ...
  3. Attribuez ces mots-clés aux articles concernés.

Cela permet à votre site de proposer ses articles à la syndication spip2spip via l’adresse reservée :
Flux simplehttp://monsite.org/spip.php?page=backend-spip2spip
Flux complet avec les événementshttp://monsite.org/spip.php?page=backend-spip2spip-agenda
Flux de tous les articles d’un auteurhttp://monsite.org/spip.php?page=backend-spip2spip-auteur&id_auteur=XX

S’abonner à une chaîne d’information

Je vais maintenant m’abonner à des sites amis pour recopier automatiquement les articles qu’ils proposent.

étape 1 : inscrire les sites amis
Je vais inscrire le flux spip2spip d’un site ami :

Exemple : Je m’abonne au flux spip2spip de
@-brest

étape 2 : s’abonner à un canal thématique
Je me suis abonné à un site, il faut maintenant choisir quel canal thématique m’intéresse.

J’observe donc le flux du site ami :

Exemple : Ce flux XML propose plusieurs « chaînes thématiques » :

  • a-brest-B pour les articles @-brest concernant la bretagne
  • a-brest-F pour les articles @-brest concernant la technologie
  • ...

Je décide de m’abonner à la « chaîne thématique »a-brest-B.

  1. Je crée dans la mot-clé a-brest-B dans le groupe de mots-clés -spip2spip-
  2. J’attribue ce mot-clé à la rubrique dans lequel je veux que les articles distants soient recopiés.

La synchronisation

La syndication se fait automatiquement grâce au cron.
Vous pouvez aussi forcer la syndication manuellement depuis
l’interface privée.

Le plugin examine alors tous les articles proposés et leur chaîne thématique. Si un article correspond à une chaine auquel vous vous êtes abonné, il importe l’article dans la rubrique sur lequel vous avez placé le mot-clé de cette chaîne thématique.

Origine de l’importation stockée par le plugin

2 champs supplémentaires dans la tables spip_articles permettent d’avoir accès à la source distante d’origine de l’article importé [1].

Sont donc stockés :

  • #S2S_URL_SITE_DISTANT : l’URL du site distant (en principe sans / final)
  • #S2S_ID_ARTICLE_DISTANT : l’identifiant de l’article sur le site distant

Vous pouvez par exemple :

  • Faire un lien sur l’article d’origine :
    1. <a href="#S2S_URL_SITE_DISTANT/?article#S2S_ID_ARTICLE_DISTANT">#TITRE</a>
  • Appeler un squelette sur le site d’origine pour incorporer son résultat à votre page :
    1. [(#VAL{#S2S_URL_SITE_DISTANT?page=inc_pour_inclusion_distante&id_article=#S2S_ID_ARTICLE_DISTANT}|recuperer_url_cache|table_valeur{page})]

Astuces

Si vous voulez masquer l’affichage du groupe de mots-clés -spip2spip-, vous pouvez utiliser la boucle
<BOUCLE_listemot(MOTS){id_article}{type!==^[-]}>....</BOUCLE_listemot>

Alternative pour masquer le groupe -spip2spip : utiliser le critère doublons

  1. <BOUCLE_mot_cache(MOTS){type=- spip2spip -}{doublons spip2spip}> </BOUCLE_mot_cache>
  2. <BOUCLE_listemot(MOTS){id_article}{doublons spip2spip}>....</BOUCLE_listemot>

Télécharger

Astuces (bis)

Spip2spip version 2.3 ajoute 2 champs supplémentaires à la table spip_articles qui peuvent être exploités éventuellement dans un squelette dans une boucle ARTICLES

  • #S2S_URL l’adresse de l’article d’origine
  • #S2S_URL_TRAD l’adresse de la traduction de l’article d’origine

Astuces (ter)

À l’import, Spip2spip adopte le comportement par défaut de Spip lors de l’import de données externes : le filtre textebrut s’applique sur tous les champs pour empécher les injections de HTML, Javascript, XSS ....
Si vous désirez quand même (à vos risques et périls), importer du HTML brut, ajouter dans votre fichier config/mes_options.php

  1. define('_SPIP2SPIP_IMPORT_HTML', true);

Évolutions

version 3.4 Mars 2018 Ajout d’un flux pour exporter tous les articles d’un auteur
version 3.3 Mai 2017 Ajout des champs pour stocker l’origine et de la possibilité de bloquer la récupération du contenu et des documents
version 3.2 Juin 2016 Version SPIP 3.1
Correction de bugs sur l’import de documents et logos
Flux version 1.9 permettant l’import d’auteurs avec le nom comporte une virgule comme SMITH, Robert
version 3 Février 2013 Version SPIP 3
version 2.3 Juillet 2010 Gestion des liens de traduction
Ajout des champs s2s_url, s2s_url_trad à la table spip_articles
support des balises <multi>
version 2.2 Juillet 2010 Import/export des mots-clés des articles et événements
flux version 1.8
version 2.1 Mai 2009 Meilleure gestion des retours à la ligne (flux version 1.7)
version 2.0 Janvier 2009 Sortie de la version compatible SPIP 2
Abandon du mode synchronisation
version 1.7 Mai 2008 Intégration de cfg
version 1.6 Mai 2008 Intégration des objets événements (plugin agenda)
version 1.5 Février 2008 Sortie la version plugin

Alternative

Voir en ligne : https://plugins.spip.net/spip2spip

Notes

[1Notez bien que cette source est conservée même à travers des importations en cascade ; par exemple un site A qui importe depuis B qui lui-même importe depuis C : le site A a bien l’information que tel article vient du site C. Cas d’usage : centraliser des articles d’une galaxie de sites pour qu’ensuite des membres de cette galaxie récupèrent certains des articles sélectionnés

Dernière modification de cette page le 1er mai 2018

Retour en haut de la page

Tout afficher

Vos commentaires

  • Le 27 février à 22:11, par Stéphane Santon En réponse à : Spip2Spip

    Bonjour,

    Un petit bug il me semble :
    Dans le site cible, je crée une rubrique sans aucun article.
    J’y importe quelques articles du site source qui sont publiés automatiquement.
    Eh bien la rubrique n’a pas été publiée bien qu’elle a reçu des articles publiés.
    En dépubliant/republiant un article importé, la rubrique apparaît alors publiée.

    Répondre à ce message

  • Le 18 décembre 2017 à 11:49, par Teenoo En réponse à : Spip2Spip

    Bonjour,

    j’essaie de faire fonctionner le plugin sur un intranet/extranet (faire une petite passerelle) :) même en étant connectée la page backend-spip2spip n’affiche pas les articles dont j’ai attribué un mot-clé. Comment cela se fait-il ?

    Outre cette page à ouvrir à « tous », il y a t’il un autre élément à ouvrir via pipeline pour la récupération ?

    Merci :)

    • Le 1er février à 17:14, par Teenoo En réponse à : Spip2Spip

      Bon j’ai corrigé mon erreur ça marche presque bien ! J’ai juste un soucis d’import des documents, l’URL est bien dans le fichier backend mais rien n’atterrit dans l’article importé... J’ai forcé dans les options avec un true.

      Comment ça se fait ?

    • Le 1er février à 21:29, par Teenoo En réponse à : Spip2Spip

      Je me demande s’il n’y a pas un bug lors de la récupération, j’ai aussi le soucis avec les événements qui ne sont pas incorporés alors qu’ils sont bien dans le fichier XML... Comment corriger cela ?

    Répondre à ce message

  • Le 16 octobre 2017 à 15:39, par julien En réponse à : Spip2Spip

    Bonjour,

    Est-il possible que l’article importé se mette à jour automatiquement quand l’article de base est mis à jour ?

    Merci.

    Répondre à ce message

  • Le 12 juillet 2017 à 13:57, par Jean-Benoît RICHARD En réponse à : Spip2Spip

    Bonjour !

    Je crois avoir repéré un petit bug.

    Lors de l’échange de données entre deux sites, je constate que les champs #DESCRIPTIF et #ADRESSE d’un événement associé à un article sont mal filtrés : les balises ne sont pas supprimées, en dépit du filtre |texte_backend présent dans le squelette générateur du fichier .xml.

    La seule raison qui peut expliquer cela c’est que dans un traitement en amont les caractères < et /> sont traduits en & l t ; p & g t ; et & l t ; / p & g t ; et que donc, ils échappent au filtre.

    Effet de bord, le filtre |spip2spip_respecte_ln n’a aucun effet sur ces champs.

    Conséquence, le contenu de ces champs nécessite une correction manuelle avant d’être publiables.

    C’est grave, docteur ?

    NB : propositioin d’amélioration : il me semblerait judicieux d’ajouter la suite de filtres liens_absolus|spip2spip_respecte_ln|spip2spip_respecte_img|texte_backend sur le champ #DESCRIPTIF car ce champ est conçu pour recevoir du texte avec des raccourcis SPIP.

    Je le ferais volontiers moi-même, malheureusement ces correctifs sortent beaucoup du champ de mes compétences.

    Répondre à ce message

  • Le 22 mai 2017 à 15:58, par Spidermian En réponse à : Spip2Spip

    Ayant mis un motcle spip2spip sur un article de mon site je ne vois pourtant rien apparaitre dans le flux xml de spip2spip. j’ai oublié quelque chose ou bien ?

    Répondre à ce message

  • Le 29 avril 2017 à 16:16, par jeanmarie En réponse à : Spip2Spip

    Salut,

    je rencontre un problème en PHP 7.0.15 : les articles sont bien importés mais pas les documents, ni les évènements, ni les mots clefs.
    Sans rien changer à la config SPIP2SPIP du site cible, si je passe l’hébergement en PHP 5.6.30, tout se passe bien.
    J’ai commencé à regarder dans les logs, mais je n’y comprends pas grand chose...

    Ma config : SPIP 3.1.4 + tous les plugins à jour.

    Une idée d’où ça peut venir ?

    Merci

    Répondre à ce message

  • Le 22 février 2017 à 00:25, par RealET En réponse à : Spip2Spip

    Bonjour,

    Je rencontre un problème avec ce plugin et les vidéos insérées par le plugin Vidéos.

    En effet, ce plugin a un fonctionnement non standard pour les documents et remplis les champs de spip_documents avec par exemple :

    • extension : dist_youtu
    • media : video
    • fichier : oavMtUWDBTM alors que l’on a saisi : https://www.youtube.com/watch?v=oavMtUWDBTM
    • et il associe une vignette automatiquement qui elle est bien dans distant/jpg/hqdefaultjpg54b4.jpg

    Bref, dans le cas de ce plugin Vidéos, il faudrait changer le flux RSS de SPIP2SPIP et en tenir compte dans inc/spip2spip.php vers les lignes 125 et suivantes.

    Qu’en penses-tu ?

    Répondre à ce message

  • Le 26 décembre 2016 à 18:12, par jeanmarie En réponse à : Spip2Spip

    Salut erational,

    (je crée un nouveau sujet pour plus de lisibilité mais c’est en lien avec nos échanges de juin)

    Lorsque l’on importe les articles avec un statut proposé par défaut, les documents sont bien attachés à l’article importé mais les fichiers correspondants ne sont pas rapatriés en local (dans IMG/distant) automatiquement, c’est à la publication de l’article qu’ils le sont.

    Par contre, même s’ils sont bien présents dans IMG/distant (après publication de l’article donc), l’adresse des fichiers reste l’adresse sur le site d’origine dans la base.
    C’est le comportement normal ?

    Le problème, c’est que si il y a des modifs sur le site d’origine (suppression du doc...) on le perd également dans l’article importé.

    Merci,

    jean marie

    • Le 27 décembre 2016 à 18:30, par jeanmarie En réponse à : Spip2Spip

      je corrige mon message : les fichiers sont bien rapatriés dans IMG/distant même si les articles importés sont en statut proposé par défaut. Il y a dû avoir une merdouille dans mes tests.

      Par contre, c’est bien l’url du site d’origine qui est indiqué dans la base.

    • Le 21 janvier 2017 à 17:25, par jeanmarie En réponse à : Spip2Spip

      Hello,
      les fêtes n’étant sans doute pas le moment le plus propice, je retente un petit up maintenant que c’est plus calme...
      merci

    Répondre à ce message

  • Le 11 juin 2009 à 10:15, par ? En réponse à : Importations d’articles avec tableaux

    Bonjour,

    Ma config : importation d’articles d’un site Spip 1.9.2 vers un site Spip 2.
    Dans cette configuration, l’importation d’un tableau |xxx|xxx| etc. ne conserve pas totalement la mise en page d’origine.

    Je me suis aperçu que le tableau est importé normalement comme une chaine de caractère mais qu’un espace est ajouté après le dernier “pipe” d’une ligne. Cela a pour effet de ne pas revenir à la ligne et le tableau n’est pas interprété correctement. Ainsi, vous récupérez votre tableau à l’identique de celui-ci :

    Vous pouvez faire un copier - coller des lignes ci-dessus dans un article pour voir de quoi je parle.

    Il vous suffit d’éliminer ces espaces en trop pour retrouver votre tableau sous sa forme originale.

    Je ne dis pas que le problème vienne du plugin, c’est juste un constat.

    Philippe G.

    • Le 16 juin 2009 à 12:54, par erational En réponse à : Importations d’articles avec tableaux

      pour les tableaux, il s’agissait d’un bug sur les déclarations de fin de ligne. (\n au lieu de \n\n)
      cela a été corrigé dans la version 2.1 de SPIP2SPIP (mai 2009) (uniquement pour des syndications de SPIP2 à SPIP2 avec cette version)

      cordialement

    • Le 13 janvier 2017 à 12:24, par laëtitia En réponse à : Spip2Spip

      Bonjour,
      j’ai le même problème avec Spip2Spip 2.4.5 en émetteur et Spip2Spip 3.2.3 en récepteur, un satané espace se faufile à la fin de la ligne, derrière le pipe.

    Répondre à ce message

  • Le 28 décembre 2016 à 11:33, par olivierlef En réponse à : Spip2Spip

    Bonjour,

    Merci pour ce plugin, j’en use et j’en abuse. C’est trop cool de pouvoir partager ainsi des articles dans différents sites.
    J’ai une demande pour le Père Noel : est-ce qu’il serait possible que l’article créer par spip2spip prennent comme valeur de ’accepter_forum’, la valeur définie dans Configuration\gestion des forums et non pas ’non’ comme il le fait actuellement ?

    Merci pour tout ce boulot réalisé

    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

  • ORR v2

    21 mai 2013 – 106 commentaires

    ORR, le plugin d’Organisation des Réservations et des Ressources passe en version 2, avec quelques nouveautés attendues. Je ne reprendrai pas les explications données dans la version 1. Les nouveautés : 1. Gestion des autorisations Le principe (...)

  • Visualiser un PDF dans un article

    13 juin – commentaires

    SoyezCréateurs utilise un modèle pour afficher un PDF dans le corps d’un article Un peu d’histoire Avant, les navigateurs n’incluaient pas de lecteur PDF nativement ce qui avait conduit à la création du plugin Lecteur pdf javascript pdf.js. Mais, (...)

  • Aveline v2

    9 novembre 2012 – 97 commentaires

    Aveline est une collection de noisettes hautement paramétrables, compatibles avec les thèmes Z et à inclure dans vos pages avec le noiZetier. Compatibilité Cette version 2 du plugin Aveline s’utilise, sous SPIP 3, avec la version 2 du noizetier, (...)

  • Speedsyndic pour SPIP 2 et SPIP 3

    11 octobre 2010 – 32 commentaires

    Ce plugin est une version compatible spip 2.0.x / 2.1 / 3.1 du plugin Speedsyndic Note : Une bonne partie du texte ci-dessous a été pompé de cet article, expliquant la version précédente du plugin. je n’ai fait qu’adapter le code pour spip 2, ajouter (...)