in english

wp2spip-0.1

Pendant un bout de temp, j’ai cherché une méthode pour passer une base de donnée Wordpress à Spip, sans trouver grand chose. Il y a bien un script php qui traîne sur les archives de la liste rezo.net, mais après essais, celui-ci ne me convenait pas. Le script fonctionne correctement (si on prend la peine de l’éditer un peu), mais, comme Wordpress, il ne fait pas la différence entre un article et un document. Par contre, ce script m’a beaucoup aidé pour écrire autre chose correspondant plus à mes besoins.

Notez que la démarche décrite ci-dessous n’est pas une solution toute faite qui fonctionnera pour tout le monde. Mais avec un peu de connaissance Spip et Wordpress, elle pourrait être facilement adaptable à vos besoins...

Principe de base :
On insère le contenu de la base de donnée wordpress dans la même base que celle de spip et, en appelant une page de squelette spéciale, on génère un fichier xml (dump) que spip pourra recharger via son système de sauvegarde.

Ne faites pas ceci sur un serveur en production. Copiez l’intégralité de votre site wordpress sur un serveur de test pour être sûr de ne rien écraser

En détail :
(sur le même serveur que wordpress)

  • Installer et configurez un Spip tout frais.
  • Exporter via la "Maintenance du site" un fichier temp/dump/mon_site_spip.xml
  • Copier et insérer la base de donnée de wordpress dans la même base de donnée que spip.
  • Editer le squelette wp2spip-0.1.html et remplacer les bouts de texte nécessaires pour qu’il ressemble à mon_site_spip.xml. Ce qu’il faut surtout copier, ce sont :
    • les notes de versions de spip
    • les informations de l’auteur 1 (l’administreur du site).
    • les "metas" (configuration du spip)
  • Placez ensuite wp2spip-0.2.html dans le dossier squelettes/ et appeler cette page depuis un navigateur.
  • Enregistrez la au format brut (la source) sous un nom du style wordpress.xml et uploader la dans temp/dump/
  • Chargez ensuite ce fichier via la "Maintenance du site". Si tout s’est passé correctement, vous devriez avoir tous les articles et tous les commentaires dans spip. ;-)

Notes :
Comme je vous l’ai déjà dit, ce script n’est pas complet. J’ai fait un certains nombre de choix en l’écrivant pour qu’il convienne à mes besoins et, donc, il lui manque encore certaines fonctions. Voici ce qu’il fait et ne fait pas :

  • il copie tous les articles qui sont publiés (pas les autres) dans une rubrique "site"
  • les articles de type ’attachment’ sont transformés en documents distants (ils ne bougent pas de leur dossier Wordpress), mais sont attachés (+ <embX> ) à l’article Spip auquel ils correspondent. (uniquement pour les formats suivants : jpeg, gif, png, mp3, mpeg, asf et wma)
  • les catégories d’articles sont transformées en mots-clefs du groupe "mots clef de wp"
  • seuls les commentaires validés sont sauvegardés
  • les liens sont sauvegardés
  • les pages ne sont pas importées

Todo :
J’aimerais qu’il convertisse automatiquement les liens <a href=" "><img src=" " /></a> en <embX> et d’autres petites fantaisies dans le genre. Avec un peu de courage, je pourrais étendre ce squellette afin qu’il devienne plus généraliste.