Dotclear vers WordPress

dc22wp2-450px

Cette page est consacrée à la présentation d’un outil de migration de blog DotClear 2 (DC2) à WordPress 2 (WP).

Aujourd’hui, le plugin est encore très basique mais il se veut simple et rapide.

Il existe déjà une solution mais elle fait référence à des anciennes versions de DotClear et de WordPress. Bref, devant la difficulté je suis reparti d’un plugin d’import officiel.

Fonctionnalités

  • Testé avec DotClear 2.1.5 et WordPress 2.7 et supérieur (avec 3000 articles et 8000 commentaires)
  • Le serveur sur lequel est installé WordPress doit avoir accès à la base de données MySQL de DotClear 2.x
  • Import des catégories et des tags
  • Import des billets (doivent être écrit au format XHTML)
  • Import des commentaires
  • Réécriture des anciennes URLs (limité aux Apache équipés de mod_rewrite)
  • Intégré au menu Outils > Importer de WordPress

Problèmes connus

Si votre blog DotClear contient de nombreux articles, il se peut que la page de transfert partent en time-out. Un mécanisme a été mis en place pour découper l’insertion (coûteuse en ressources serveur) par paquet de 50 billets.

TODO

  • Améliorer l’interface dans pour les blog important où les opérations base de données longues oblige à faire des rechargement de pages.
  • Améliorer les performances dans le cas de blog ayant de très nombreux billets/commentaires (testeur, n’hésitez pas à vous manifester)
  • Package à diffuser sur wordpress.org
  • Traduction multilingue (at least english!)
  • Support des billets en Wiki

Historique

Version 0.36 (15 juillet 2009)
La fonction put_file_contents n’existe qu’en PHP 5 et plus. Elle a été ajoutée pour tous ceux qui fonctionne avec les anciennes version de PHP. Merci à Lazy.

Version 0.35 (2 juillet 2009)
Deux bugs majeurs ont été détectés. Le premier concerne la connexion à la base MySQL qui échouait car il y avait un filtrage des caractères spéciaux. Le second concerne le fichier .htaccess qui au passage de l’étape d’import des billets déclenchait une erreur 500 Apache. Effacer votre fichier .htaccess si ça arrive. La nouvelle version ajoute un <IfModule> devrait éviter le problème. Merci à Renard Blanc et à Sébastien.

Version 0.3-beta (26 mai 2009)
Grâce à l’aide de David, cette nouvelle version est plus robuste mais a fait ses preuves sur plus de 3000 billets et près de 8000 commentaires. Plusieurs optimisations ont été faites, des bugs corrigés et surtout un nouveau panel fait son apparation pour tester l’accès à la base de données et la possibilité d’écrire dans le répertoire ‘wp-content’.

Version 0.1-alpha (9 mai 2009)
Version téléchargeable avec pas mal de bug

FAQ

Certains billets n’apparaissent pas après l’import
C’est probablement lié à certains billets DotClear qui n’ont pas de catégorie. Pour leur affecter une catégorie « par défaut », connecter sur l’interface d’administration DotClear et créer une nouvelle catégorie « default » et notez son ID (cat_id). Pour mettre tous vos billets sans catégorie dans cette catégorie, exécuter la requête SQL suivante :
UPDATE <prefix_table>post SET cat_id = <nouvelle_categorie_id> WHERE cat_id IS NULL
Mon blog WordPress est sur un autre hébergement que mon blog DotClear 2, je suis bloqué
L’astuce consiste à installer WordPress et DotClear sur votre nouvel hébergement. Exporter les données de votre ancien blog DotClear 2 vers le DotClear 2 fraichement installé de votre nouvel hébergement et les opérations de migration seront ensuite possible.

Téléchargement

Encore en version alpha, n’oubliez pas de sauvegarder vos blogs avant de tenter l’opération

Installation

  1. Installez WordPress 2.8.1 (français ou anglais)
  2. Téléchargez le fichier dc22wp2_latest.zip sur votre ordinateur
  3. Dézipper l’archive et copier le fichier dotclear2.php sur le serveur hébergeant WordPress dans le répertoire <wordpress>/wp-admin/import/
  4. Vérifiez que le répertoire de <wordpress> et <wordpress>/wp-content sont accessible en écriture par votre serveur web équipé de PHP
  5. Pour les anciennes version de WordPress (avant la 2.8) Un bug (enfin je crois que s’en est un !) s’est glissé dans <wordpress>/wp-admin/includes/comment.php. Trouvez la ligne $wpdb->prepare("SELECT comment_post_ID FROM $wpdb->comments et remplacer comment_post_ID par comment_ID.
  6. Identifiez-vous dans l’interface d’administration WordPress, aller dans Outils > Importer puis choisissez Dotclear2. L’assistant vous demandera les paramètres de votre base de données DotClear 2 pour réaliser le transfert vers la base de données WordPress.
  7. Une fois la migration terminée, vous devez retrouver tous vos articles, commentaires et catégories dans votre interface de WordPress
  8. Copier le répertoire images de votre blog Dotclear dans l’arborescence WordPress

Dons

Ce plugin vous a été utile ? N’hésitez pas à faire un don à son auteur pour l’encourager à l’améliorer ! Pas d’inquiètude, le don se fait par le site sécurisé de PayPal.

Support & liens

Quelques sujets à suivre :

Poster vos questions/demandes/rapports de bug dans les commentaires ci-dessous.

Update du 15 janvier 2011. A tous les lecteurs qui ont essayé en vain le plugin, je peux essayer de regarder en reproduisant l’import dans un environnement lab. Envoyez moi l’URL vers le dump MySQL de votre base de données par email (antoine (at) drochon (point) net et je verrais ce que je peux faire dans la limite de mon temps disponible.