Partageur

Permet de recopier facilement des articles d’un site SPIP partageur à l’autre.

Présentation

Ce plugin est né d’un besoin de partager des articles entre sites SPIP.

Contrairement aux plugins SPIP2SPIP, Flux RSS en articles le principe d’import n’est pas basé sur la syndication automatique mais sur une sélection manuelle. Une fois installé, le plugin permet de "piocher" dans les articles des bases documentaires que l’on a préalablement inscrites.

Installation

Télécharger et installer comme un plugin habituel
Ce plugin nécessite l’utilisation du plugin Config (CFG)

Une fois activé, le site devient partageur.
Tous les sites qui utilisent « partageur » peuvent recopier vos articles publiés.

Techniquement, l’installation du plugin provoque :

  • La création d’une table spip_partageurs stockant les sites partageurs
  • L’ajout de deux champs supplémentaires sur la table spip_articles qui peuvent être exploités éventuellement dans un squelette, dans une boucle ARTICLES (ces champs sont communs avec le plugin Spip2Spip)
    • #S2S_URL l’adresse de l’article d’origine
    • #S2S_URL_TRAD l’adresse de la traduction de l’article d’origine
  • L’activation d’un flux au format Spip2Spip sur tous les articles publiés. L’adresse de ce flux est http://tld.org/spip.php?page=backend-partageur&id_article=XXX

Configuration

Dans le panneau de configuration vous pouvez définir les options d’export / import

  • Clé d’authentification (voir détails au chapitre suivant)
  • Faut il exporter les mots-clés de votre article ? si oui de quels groupes ?
  • Statut des articles importés : « Proposé » ou « Publié »
  • Mots-clés :
    • Faut-il importer les mots-clés d’articles ?
    • Faut-il importer les mots-clés d’événements ?
    • Si oui, où et comment faut-il importer ces mot-clés ?

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
define('_PARTAGEUR_RECUPERER_CONTENU', false);
define('_PARTAGEUR_RECUPERER_DOC', false);

Clé d’authentification

Par défaut, une fois que vous activez le plugin partageur, tous les sites peuvent potentiellement récuperer tous vos articles publiés.

Ceci peut s’avérer génant et un peu intrusif. C’est pourquoi nous avons introduit un système de clé d’authentification, par exemple si vous ne souhaitez diffuser vos articles à un groupe restreint de sites d’amis.

Dans ce cas, il faut définir dans le panneau de configuration une clé (au choix). Ensuite il suffit de donner cette clé aux sites qui veulent récupérer vos articles.

Exemple d’utilisation

Ce plugin n’est accessible qu’aux administrateur du site

Étape 1 : Inscrire vos sites partageurs
Dans le menu édition de votre site, aller sur le "Partageur"

Dans cette section, vous pouvez ajouter et supprimer les sites partageurs

La clé d’authenfication n’est nécessaire que sur les sites sur lesquels une clé est activée.

Attention : Pour inscrire un site partageur, il faut que ce site ait aussi installé le plugin partageur. C’est à dire que son flux partageur http://tld.org/spip.php?page=backend-partageur&id_article=XXX soit accessible.

Étape 2 : Aller sur la rubrique dans laquelle vous voulez ajouter des articles
En bas à droite de votre rubrique se trouve le bouton d’import

Étape 3 : Choisir l’article du site distant que vous voulez importer
Il est possible de sélectionner l’article en naviguant dans l’arborescence du site ou alors en utilisant le moteur de recherche

Étape 4 : Importer votre article

  • Par défaut, votre article importé a le statut "Proposé à la publication"
  • Le plugin recopie le texte (au format SPIP), les auteurs, les documents, logos et événements (si vous avez le plugin agenda), les liens de traductions.
  • Si l’article est déjà présent sur votre site, le plugin n’importe pas l’article et vous prévient.

Avertissement

Attention de ne pas abuser de la recopie d’articles sous peine de se voir bannir des moteurs de recherche pour Duplicate content.

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})]

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 13 février 2019

Discussion

26 discussions

  • 3

    merci pour le plugin messieurs, celui ci va me faire gagner pas mal de temps en mutu pour dispatcher rmes publications :-)

    En revanche il y a un glitch : dès qu’on sélectionne une clée d’authentification vraiment efficace (comprendre par là, avec tout ce qui fait une clée efficace : MAJ min symboles à coucher dehors, etc ...) le plugin choucroute et ne permet pas de retrouver dans le privé les flux des sites partageurs

    Pour info j’ai généré ma clée avec ça (la config est contractuelle - cf captures)

    Répondre à ce message

  • Bonjour,

    Sur un de mes sites, les pages /ecrire/ ?exec=partageur&id_partageur=XXX ont ce message d’erreur :


    -  message Erreur SQL HY000 / 1 no such column : partageurs.date
    -  squelette SELECT id_partageur FROM spip_partageurs AS ’partageurs’ WHERE (partageurs.statut = ’publie’) AND partageurs.date<’2018-07-19 11:31:00’ AND partageurs.id_partageur=3
    -  boucle /var/www/htdocs/monnomdomaine/public/ecrire/public/composer.php calculer_select() sql_select() ;
    -  Ligne 1005

    Et quand je veux apporter un article d’un site partagé, sur une rubrique comme : ecrire/ ?exec=partageur_add&id_rubrique=3 , j’ai « Aucun site partageur disponible », alors que j’ai bien déclaré le partage des deux côtés.

    j’ai spip 2.0 et partageur 1.1.1
    Sur l’autre site (même spip et même plugin), ici le site source, je n’ai pas ce message d’erreur, mais quand je clique sur un site partagé, ça m’envoie sur le site au lieu d’avoir la liste des articles.

    J’ai désactivé/résinstallé Partageur des deux côtés, mais ça n’a rien changé.
    Peut-être faut-il tenter désinstaller/réinstaller ?

    merci pour les pistes éventuelles

    Répondre à ce message

  • 2

    Bonjour, et merci pour ce super plugin. Quand le plugin sera-t-il portable pour la version 3.2 de SPIP ?

    • Le plugin est peut être déjà compatible... Il faudrait tester en modifiant manuellement ses bornes à SPIP 3.2 et en vérifiant s’il fonctionne ou non.
      Merci de vos retours

    • Je viens de passer le plugin à SPIP 3.2.
      Le zip devrait être disponible d’ici quelques heures.

    Répondre à ce message

  • Bonjour,
    Pourrait-on préciser sur cet article l’adresse de flux utilisée pour obtenir la liste d’articles disponibles ?
    Pas celle d’un article particulier http://tld.org/spip.php?page=backend-partageur&id_article=XXX, mais l’arbo (?) de tous les articles.
    Merci

    Répondre à ce message

  • Stéphane Santon

    Bonjour,
    Extra ce plugin ! Bravo !

    Un petit bug :
    Dans un article j’ai [<emb20>->doc20] ,
    sur l’import ça devient [->doc20]

    Répondre à ce message

  • 8

    Bonjour,
    Merci beaucoup pour ce plugin très utile. J’ai constaté un petit bug et je me demandais si c’était possible d’avoir une correction. En transférant un article d’une rubrique en particulier j’ai constaté que le secteur de l’article n’est pas transféré sur la cible.
    Par avance merci,
    Brice

    • Matthieu (plugin champs extra 3) a mis le doigt sur le problème.
      Il semble que la fonction partageur_get_id_secteur($id_rubrique) utilise id_parent à la place de id_secteur.
      Je ne suis pas assez calé en dev pour faire la correction moi-même.
      L’autre axe de solution proposée serait d’appeler la fonction « calculer_rubriques() » de SPIP pour recalculer les identifiants de secteurs sur les rubriques.
      J’en profite pour te demander si il serait possible de prendre en compte aussi les champs extra de l’article si ils sont présents.
      Mais peut-être est-ce une trop grande modification par rapport à l’architecture actuel du plugin ? Et dans ce cas ce pourrait être une fonctionnalité à programmer dans une version future si c’est possible.
      En tout cas merci encore pour les services rendus par ce plugin.

    • Oui c’est une erreur de ma part.
      Merci pour le signalement et la solution de Mathieu

      C’est corrigé avec la nouvelle version du plugin 1.0.6
      Merci de me dire si cela corrige le problème.

    • Erational,
      Je viens de faire le test en récupérant la dernière version et j’ai un écran blanc après mise à jour du plugin (plugin seul sans rien d’autre et cache vidé)
      spip 3.1.3 ; php 5.6.29 ; mysql 5.5.54

    • Bonjour,

      Je confirme le problème de page blanche après mise à jour en 1.0.6 sur SPIP 3.1.3...

      J’ai désactivé le plugin en renommant le dossier et j’ai de nouveau accès au backend et au site.

      Cordialement

    • En effet, il y a un bug qu’il avait été introduit.
      C’est corrigé avec la version 1.0.7 qui devrait sortir sous peu.

      Désolé pour le dérangement.

    • Merci du retour plus que rapide ;-)

    • En effet merci beaucoup pour la rapidité et la correction.
      J’ai vérifié et le souci évoqué au début est réglé. Le secteur qui est affecté est celui de l’article dans la rubrique où il est créé.

      Est ce que tu penses pouvoir me donner un avis sur l’intégration des champs extra durant le transfert ?
      Je sais qu’il faut prendre en compte le fait que le plugin peut ne pas être présent sur la cible et avoir la possibilité (en paramètre) d’autoriser ou non l’ajout de ces champs.
      Merci d’avance

    • Merci pour le retour sur la correction du bug.

      Pour les champs extras,
      Cela doit être faisable mais il faut trouver une solution générique pour bien exporter tous les champs extras en plus. Ensuite, au niveau de l’import, il faut trouver la solution pour trouver les correspondances (ou nonà

      Je n’ai pas le temps de m’y consacrer maintenant mais n’hésitez à lancer le développement si vous avez les compétences pour.

    Répondre à ce message

  • 2

    Bonjour,

    Bravo et merci pour cet excellent plugin qui fonctionne parfaitement, à l’exception de deux anomalies que j’ai relevées :

    • Les images qui ne sont pas dans le portfolio dans le site distant sont déposées dans le portfolio dans le site d’accueil.
    • Tous ce qui est placé entre les balises <code> et </code> (y inclues les balises) dans le site distant disparait dans le site d’accueil.

    Meilleurs messages

    FDG

    • PS : je suis en SPIP 3.1.1 [22913]

      FDG

    • Bonjour,

      j’ai pour ma part un problème avec les logos des articles qui ne sont pas importés et les codes HTML présents au sein des articles pour, par exemple, embarquer une vidéo Dailymotion.

      Par exemple :

      <div>
      <iframe src="//www.dailymotion.com/embed/video/...." allowfullscreen></iframe>
      </div>

      Sinon, super plugin extrêmement pratique.

    Répondre à ce message

  • (y) testé et approuvé, simple à mettre en place, fonctionne nickel en 3.1 :)

    (il manque juste la possibilité de sélectionner plusieurs ou tous les articles d’une rubrique)

    Répondre à ce message

  • 1
    Joseph-tux

    Les 2 sites sont en version 3.1, tous les plugins mis à jour, les caches vidés et neutralisés

    Les clés vérifiées, les adresses justes (s’ouvrent d’un clic sur le nom dans le menu Edition->Sites partageurs), bref je ne vois aucune anomalie

    • Joseph-tux

      Bonjour,

      je viens de trouver par hasard ce qu’il faut aussi cocher dans :

      Configuration => Contenu du site => Site partageur.

      Le problème est ainsi facilement résolu.

      merci pour ce plugin réellement important.

    Répondre à ce message

  • Joseph-tux

    Bonjour
    tout s’est bien passé (SPIP 3.1.0), tout se présente bien, les 2 sites sont inscrits avec les clés (la même en définition comme en référence dans les 2 sites), mais lorsque je demande à importer une article, j’obtiens le message de mépris (ou de méprise ?) :

    Aucun site partageur disponible

    dans les 2 sites, même réponse alors qu’aucune erreur n’a été signalée.

    Auriez-vous une piste ?

    merci pour votre intérêt

    Répondre à ce message

Ajouter un commentaire

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