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’objet | Test 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 :
Discussions par date d’activité
19 discussions
Bonjour,
Connaissez vous une mise à jour de cet excellent script pour la 1.9.2 ?
Cordialement
Répondre à ce message
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 ?
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
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
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
quelle version de SIEPS utilisez-vous ?
et quelle version de PHP ?
merci
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
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
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)
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
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
devient
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
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
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.
la version du CVS devrait corriger le problème du call-by-reference
Répondre à ce message
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
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
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
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
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
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
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.
Suivre les commentaires : |