SPIP - Contrib

[ar] [en] [es] [fr] [it]



Accueil du site > Administration > Import-Export > Archives Import-Export

SIEPS, script d’import/export d’articles SPIP

mercredi 7 avril 2004, par florent. Dernier ajout samedi 10 février 2007


SIEPS (Script d’Import/Export pour SPIP) est un script PHP permettant de faire de l’import/export d’articles SPIP. Les objets attachés aux articles sont aussi transférés : auteurs, documents, mots-clés, logos, rubriques.


Fonctionnement général

L’objet de base manipulé par SIEPS est l’article SPIP : l’utilisateur sélectionne des articles SPIP, qui sont empaquetés dans un fichier XML stocké au niveau du site d’orgine. Ce paquet peut ensuite être récupéré au niveau du site cible ; l’utilisateur peut l’ouvrir, et choisir le ou les articles qu’il veut importer.

Il faut installer SIEPS sur chacun des sites SPIP visés :

- les sites depuis lesquels on veut exporter les articles (sites origine ou d’export).
- les sites vers lesquels on veut importer les articles (sites cibles ou d’import).

Règles d’import

L’import teste l’existence des articles sélectionnés sur le site cible. Lorsque un article existe déjà, celui-ci est soit écrasé avec les nouvelles valeurs, soit créé en tant que nouvel article, suivant un critère fixé au préalable par l’utilisateur.

Lors de l’import d’un article, toutes les rubriques desquelles dépend celui-ci sont aussi importées. Si ces rubriques n’existaient pas, elles sont créées. En aucun cas, l’article ne sera importé dans un rubrique autre que celle dans laquelle il se trouvait au départ (l’article est "fortement" lié aux rubriques dans lesquelles il se trouve).

Fonctionnement interne

Le numéro de chaque objet est recalculé lors de l’opération d’import. C’est à dire, le numéro d’un article sur le site cible (ou tout autre objet attaché à l’article) peut être différent de son numéro sur le site d’origine. Le site cible peut donc avoir une structure différente du site origine.

SIEPS gère les correspondances entre les numéros ; lorsque l’objet existe déjà sur le site cible, le nouveau numéro est calculé et remis à jour. Pour tester la présence des différents objets sur le site cible, une règle particulière est appliquée suivant le type de l’objet.

Type d’objetTest de présence
article titre de l’article et présence des rubriques mères
rubrique titre de la rubrique et rubrique mère
mot titre
groupe mots titre
auteur nom
document document de même nom, de taille identique, et attaché au même article

Le format d’échange utilisé pour transférer les articles est un XML basique. Les objets binaires (images, documents) sont codés en base 64 directement dans le XML.

Impression d’écrans

L’export des articles : L’import des articles :

P.-S.

Page d’accueil de SIEPS / Téléchargement Cliquer Ici.


Répondre à cet article

  • SIEPS, script d’import/export d’articles SPIP

    29 avril 2008 13:49, par Muxort

    Bonjour,

    Connaissez vous une mise à jour de cet excellent script pour la 1.9.2 ?

    Cordialement

    Répondre à ce message

    Retour au début des forums

  • Essai

    10 octobre 2006 09:42, par orcieres

    Bonjour, j’ai installé sieps et voici le message d’erreur quand je pointe sur mon-url/sieps/

    Fatal error : Cannot redeclare get_extraabo() (previously declared in /web/www/html/html1/ecrire/options_spip_listes.php3:14) in /web/www/html/html1/ecrire/options_spip_listes.php3 on line 14

    comment faire pour éviter ce conflit avec un autre script ?

    autre question : en 1.9.1 est-ce que sieps fonctionne ?

    Répondre à ce message

    • Essai 25 octobre 2006 21:24, par asso.bachant

      voila pour 1.9.1 ; merdum moi qui profiter de la 1.9 pour vouloir fusionner les differnets sites de l’asso

      Warning : include(ecrire/inc_version.php3) [function.include] : failed to open stream : No such file or directory in /var/www/sieps/scripts/spip.php on line 29

      Warning : include() [function.include] : Failed opening ’ecrire/inc_version.php3’ for inclusion (include_path=’. :/usr/share/php :/usr/share/pear’) in /var/www/sieps/scripts/spip.php on line 29

      Warning : include(ecrire/inc_lang.php3) [function.include] : failed to open stream : No such file or directory in /var/www/sieps/scripts/spip.php on line 30

      Warning : include() [function.include] : Failed opening ’ecrire/inc_lang.php3’ for inclusion (include_path=’. :/usr/share/php :/usr/share/pear’) in /var/www/sieps/scripts/spip.php on line 30

      Warning : include(ecrire/inc_filtres.php3) [function.include] : failed to open stream : No such file or directory in /var/www/sieps/scripts/spip.php on line 31

      Warning : include() [function.include] : Failed opening ’ecrire/inc_filtres.php3’ for inclusion (include_path=’. :/usr/share/php :/usr/share/pear’) in /var/www/sieps/scripts/spip.php on line 31

      Warning : include(ecrire/inc_charsets.php3) [function.include] : failed to open stream : No such file or directory in /var/www/sieps/scripts/spip.php on line 32

      Warning : include() [function.include] : Failed opening ’ecrire/inc_charsets.php3’ for inclusion (include_path=’. :/usr/share/php :/usr/share/pear’) in /var/www/sieps/scripts/spip.php on line 32

      Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    25 avril 2006 00:32, par Laurent Simon

    Ayant rencontré des difficultés ("Erreur : fichier non valide : controle negatif (lisez la remarque sur le champ ’secret’ dans la documentation)") avec la version 07 de Sieps et la v 1.8.3 de Spip (comme d’autres), je me suis rabattu sur la v 06.

    Tout semble marcher, mais il faut sur la 1.8.3, inverser l’ordre des "include" (voir réponse de Florent ci-dessous). NB. Le code modifié fonctionne alors aussi sur la 1.8.2 apparemment.

    Trois remarques, à l’usage : 1. N’oubliez pas, si votre site cible est vierge, de créer un premier article.

    2. Attention si vous décrivez plusieurs sites (d’export par ex) dans le script sites.php, car selon l’ordre d’inscription dans ce fichier, le site sur lequel Sieps écrit le fichier est différent.

    3. Si vous rencontrez un message d’erreur au moment de l’export (probablement lié à une surcharge du serveur), cliquez sur la flèche orange permettant de revenir en arrière et recommencez. Il y a de bonnes chances pour que cela marche à la 2e tentative. Sinon essayez à un moment où le serveur est moins chargé.

    Souhaitant que ces infos aident, Bonne chance,

    laurent

    Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    9 avril 2006 06:43, par pascala

    Fantastique, tout juste ce qu’il me faudrait, mais ... Je viens d’installer sieps sur mon site spip 1.8.3, j’arrive à choisir les articles, mais le bouton Exporter me donne l’erreur : Fatal error : Call to a member function on a non-object in /.../sieps/scripts/impexp.php on line 806. Malheureusement je ne comprends par trop de php et je n’ai rien trouvé sur google qui pourrait m’aider.

    Pascal

    Répondre à ce message

    • SIEPS, script d’import/export d’articles SPIP 9 avril 2006 21:30, par florent

      quelle version de SIEPS utilisez-vous ? et quelle version de PHP ?

      merci

      Répondre à ce message

      • SIEPS, script d’import/export d’articles SPIP 10 avril 2006 21:51, par pascala

        J’ai eu le même problème avec la dernière version officielle comme avec la version CVS. Mon système : FreeBSD 5.4, PHP 4.4.0, Joomla 1.0.8.

        Pascal

        Répondre à ce message

      • SIEPS, script d’import/export d’articles SPIP 15 avril 2006 02:20, par pascala

        Bonjour, j’ai essayé de commenter la ligne en question : "$g_deb->log(0, __FILE__." ".__LINE__) ;" puis j’ai dû commenter tous les lignes "$g_deb->log..." pour finalement arriver à un problème de permissions : "Erreur : probleme lors de l’export : ouverture ./sieps/scripts//exportsieps.06.04.14.21.17.15 en ecriture impossible." Le problème est maintenant que ça m’arrive même avec les permissions 777 pour tout le folder sieps ! Vous avez une idée ? Merci pour votre aide.

        Pascal

        Répondre à ce message

      • SIEPS, script d’import/export d’articles SPIP 17 avril 2006 16:50, par Laurent Simon

        Bonjour,

        Apparemment le problème vient de la non compatibilité de la v07 (actuelle) de Sieps avec la v1.8.3 de Spip.

        Avec la v1.8.2d je n’ai pas ce message "Fatal error : Call to a member function on a non-object monsite/sieps/scripts/impexp.php on line 806"

        et j’ai pu exporter les articles. (à toutes fins utiles, je suis sur Free)

        Répondre à ce message

        • SIEPS, script d’import/export d’articles SPIP 17 avril 2006 19:24, par Laurent Simon

          je viens de vérifier sur la version précédente (Sieps 06, utilisée avec la 1.8.3.), mais un message très proche : "Fatal error : Call to a member function on a non-object in monsite/sieps/scripts/export.php on line 203"

          apparait, donc je suis coincé, pour les sites déjà passés en 1.8.3

          NB. il ne s’agit simplement pas du même fichier, mais c’est bien le même pb : la ligne 203 : $g_deb->log(0, "exportart=".$exportart) ;

          souhaitant que cela aide, j’avoue que je ne me sens pas trop compétent sur ce coup là,

          Laurent

          Répondre à ce message

    • SIEPS, script d’import/export d’articles SPIP 18 avril 2006 09:13, par florent

      bonjour,

      effectivement, sieps ne fonctionnait pas correctement avec spip 1.8.3 : il faut inverser les includes sur spip.php et commun.php dans les fichiers : index.php, import.php et export.php

      include(SCRIPT_PATH."/commun.php");
      include(SCRIPT_PATH."/spip.php");

      devient

      include(SCRIPT_PATH."/spip.php");
      include(SCRIPT_PATH."/commun.php");

      j’ai fait la modif sur la version CVS, donc elle sera prise en compte dans les versions futures de sieps.

      Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    9 janvier 2006 09:43, par cpmac

    Bonjour Je viens d’installer sieps en local. Easyphp 1.7 spip 1.8.2e En le lancant j’ai un message comme le suivant pour chaque appel de fonction.

    Warning : Call-time pass-by-reference has been deprecated - argument passed by value ; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in f :\program files\easyphp\www\spip\sieps\import.php on line 135

    J’ai mis call-time-pass-by-reference sur on mais ca ne change rien.

    Mais le script est sensé de continuer. En important le fichier dump.xml d’une autre base le script s’arrette - - ’fichier non compatible’

    cpmac

    Répondre à ce message

    • SIEPS, script d’import/export d’articles SPIP 25 janvier 2006 15:54, par florent

      bonjour,

      pour le pb. du call-by-reference, c’est certainement lié au fait que vous utilisez PHP5.. je n’ai pas testé sous PHP5 et les passages de valeurs par références émettent un warning dans cette version.

      pour l’autre problème, je viens de faire le test en installant directement le tout depuis la version téléchargeable et ça fonctionne. C’est peut être lié au fait que vous avez initialisé le champs "$secret" avec une valeur différente entre le site d’import et le site d’export : cette variable doit avoir *exactement* la même valeur sur les deux sites ; elle sert à vérifier que les fichiers qui sont importés ont bien été générés par vous.

      Répondre à ce message

    • SIEPS, script d’import/export d’articles SPIP 3 avril 2006 17:23, par florent

      la version du CVS devrait corriger le problème du call-by-reference

      Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    19 mars 2006 00:22, par Jislenn

    Je viens d’installer Sieps pour deux sites SPIP 1.8.2 chez Free. J’ai modifié le fichier sieps/scripts/commun comme indiqué :
    - J’ai changé la valeur du champ $secret(idem sur les deux sites),
    - /*set_time_limit(10000) ;*/.

    L’exportation fonctionne, mais au moment de l’importation j’obtiens toujours le message suivant : "Erreur : fichier non valide : controle negatif (lisez la remarque sur le champ ’secret’ dans la documentation)"

    Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    18 décembre 2005 13:47, par florent

    Bonjour,

    Je viens de mettre en ligne une nouvelle version de SIEPS (0-7). Cette version simplifie radicalement l’installation du script car les fichiers d’import/export ne sont plus échangés directement de site à site, mais doivent être downloadés/uploadés en utilisant le navigateur de l’utilisateur.

    Il n’y a donc plus tous les problèmes d’installation qui rendaient l’installation compliquée chez les hébergeurs tournant en safe-mode.

    Par contre, il faut toujours commenter la ligne set_time_limit dans commun.php chez les hébergeurs qui désactivent cette fonction.

    Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    15 décembre 2005 14:09, par Bionet

    Tout bonnement sublime.

    J’ai quand même du bidouiller deux petits trucs vu ci-avant dans le forum. En fait je n’avais aucune restriction citées dans la doc d’installation de sieps et pourtant il a fallu que :

    - mettre la ligne set_time_limit(10000) ; en commentaire : /* set_time_limit(10000) ; */ dans le fichier /sieps/scripts/commun.php
    - corriger les fichiers scripts/impexp.php et scripts/import.php pour renommer la fonction lire_fichier en lire_fichier_sieps ainsi que tout ses appels (trois lignes à corriger au total sur ces deux fichiers).

    J’ai un site sous Free et un autre sur Apinc.

    Répondre à ce message

    Retour au début des forums

  • SIEPS, script d’import/export d’articles SPIP

    27 septembre 2005 10:39, par Jerome De Greef

    Incroyable outil :)

    Je voudrais juste ajouter que la fonction lire_fichier doit être renommée (la vesion CVS utilise lire_fichier_sieps) ainsi que tout ses appels dans scripts/impexp.php et scripts/import.php. C’est peut-être évident pour certains mais n’est pas tout à fait clair dans la doc. Le message d’erreur "fichier d’import invalide" est affiché si cette modification n’a pas été faite.

    Répondre à ce message

    Retour au début des forums

  • Hello

    Cet outil peut il permettre d’exporter des articles d’une version SPIP à une autre (de la 1.6 à la 1.8 directement, par exemple) ?

    Merci pour l’inculte en PHP que je suis...

    Répondre à ce message

    Retour au début des forums

  • Page blanche

    30 juin 2004 18:29

    Je suis en train de tester en local entre deux versions de mon site avant d’utiliser ce script qui a l’air génial et qui répond vraiment à un de mes besoins, mais lorsque je le fais tourner, j’ai uniquement une page blanche.

    Qu’est-ce qui pourrait expliquer cela ? J’ai bien mis les URL des deux versions du site dans le ficher sites.php et supprimé ce fichier dans le site où seront importés les articles. Et Spip tourne impeccablement dans les deux versions du site.

    Que faire pour débloquer la situation et commencer à tester ?

    Répondre à ce message

    • > Page blanche 23 juillet 2004 00:42, par potiere

      Même problème, semble-t-il.

      J’ai téléchargé la dernière version (sieps.0-4.tgz) et suivi les instructions.

      J’obtiens une page blanche. Le source contient ceci :

      <frameset cols="50%,50%" frameborder="0" framespacing="0" framepadding="0">
        <frame src="scripts/sieps.php?op=export" name="export">
        <frame src="scripts/sieps.php?op=import" name="import">
      </frameset>

      Mais chacune des pages "scripts/sieps.php?op=export" et "scripts/sieps.php?op=import" ne contient rien d’autre que <html><body></body></html>

      Comment debugger ? Une idée ?

      Répondre à ce message

      • > Page blanche 2 août 2004 09:09

        pour débugger, il suffit d’initialiser les valeurs suivantes dans le fichier config.ini :

        var $debug_level = 0 ; // MAX = 10 (aucun log)
        var $debug_out = 3 ; // 0=fichier log apache, 3=fichier ’$err_log’
        var $err_log = "/tmp/debug.log" ;

        dans ce cas, le logs vont s’afficher dans le fichier /tmp/debug.log ; vous pouvez changer le nom du fichier en fonction de votre configuration.

        Lorsque le debug est terminé, il faut penser à remettre la variable $debug_level à 10 (pas de log).

        Répondre à ce message

        • > Page blanche 7 avril 2005 13:55, par DoriaN

          la page blanche je l’ai aussi en local (je vais devoir passer par le ouaib je sens...)

          - on ne peut rien debugger vu qu’il ne se passe rien ;-)

          - je viens de re-esayer avec la dernière version, change rien, j’ai vérifié mon phpinfo c ok pour alluw_url_fopen

          - en lançant script/export.php j’ai eu un souci avec mon fichier mes_options (sans doute à cause des extras) alors j’ai viré les déclaration des extras et l’avertissement a disparu, retour page blanche (est-ce compatible avec les extras au fait ?)

          - j’ai bien comme erreur si je lance /script/import.php : Erreur : erreur appel web service : http://www.exp.com/sieps/scripts/ex..., ce qui voudrait dire que je suis en "safe mode" d’après le fichier INSTALL mais mon phpinfo me dit "safe_mode Off" donc je ne sais plus qui croire ;-)

          Bref si jamais une idée vous venait à l’esprit merci d’avance

          Répondre à ce message

        • > Page blanche 12 avril 2005 11:32, par DoriaN

          aujourd’hui j’ai tenté avec les versions online de mes sites, sans succès le safe mode étant activé sur les serveurs si j’en crois ce message d’erreur :
          Warning : Cannot set time limit in safe mode in
          .../spip/sieps/scripts/commun.php on line 29

          Dommage, je vais devoir trouver une autre solution à ma situation :(

          Répondre à ce message

          • résolu sur FREE (safe mode) > Page blanche 4 juillet 2005 10:12, par Laurent Simon

            Bonjour,

            De mon côté j’ai eu quelques difficultés, qui se résolvent simplement en mettant la ligne set_time_limit(10000) ; en commentaire : /* set_time_limit(10000) ; */ dans le fichier commun.php

            Il n’y a plus l’avertissement (warning..) et surtout le logiciel fonctionne.

            Précisions : j’utilise la v 1.7.2, et mes deux sites sont sur FREE, qui utilise apparemment le "safe mode" et sur lequel cette mise en commentaire donne des résultats même si la variable "safe_mode_gid" est sur OFF (et non ON comme indiqué dans la doc sieps/INSTALL)

            Laurent

            Répondre à ce message

          • > Page blanche 11 juillet 2005 13:58, par Herold Milner

            J’ai réussi a faire fonctionner SIEPS (avec SPIP 1.7.2 et 1.8.1) et a m’affranchir des fameuses "pages blanches".

            + Vérifier l’ensemble des recommandations figurant dans Install (en particulier time limit)

            + Configurer correctement PHP/Apache via php.ini (fopen / safe mode) et verifier que register_globals = On (c’etait pour moi le point bloquant!!)

            + Modifier le fichier le fichier sieps/scripts/impexp.php en ligne 50 pour renommer la fonction lire_fichier (enlire_fichiersieps par exemple) pour éviter un problème de redeclaration.

            Voir aussi la contribution de Michel Jorda sur la liste spip.user (spip@rezo.net ) qui arrive au même résultat avec d’autres modifications.

            Répondre à ce message

    Retour au début des forums

  • Bonjour,

    Sur FREE, j’ai eu des avertissements (warning..) Cannot set time limit in safe mode in... /sieps/scripts/commun.php on line 29, qui ne semblaient pas graves, mais

    à l’origine apparemment de mon impossibilité d’utiliser SIEPS, difficultés qui se résolvent simplement en mettant la ligne set_time_limit(10000) ; en commentaire : /* set_time_limit(10000) ; */ dans le fichier /sieps/scripts/commun.php

    comme indiqué dans la doc /sieps/INSTALL, et ceci même si la variable "safe_mode_gid" est sur OFF (en tout cas sur Free)

    Précisions : j’utilise la v 1.7.2, et mes deux sites sont sur FREE, qui utilise apparemment le "safe mode"

    Répondre à ce message

    Retour au début des forums

0 | 25



Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | Charte et vie SPIP-Contrib | SPIP | L'autre.net