Export Dotclear 2 vers WordPress 2 (dc22wp2)
Contenu

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
- Installez WordPress 2.8.1 (français ou anglais)
- Téléchargez le fichier dc22wp2_latest.zip sur votre ordinateur
- Dézipper l’archive et copier le fichier dotclear2.php sur le serveur hébergeant WordPress dans le répertoire
<wordpress>/wp-admin/import/ - Vérifiez que le répertoire de <wordpress> et <wordpress>/wp-content sont accessible en écriture par votre serveur web équipé de PHP
- 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->commentset remplacercomment_post_IDparcomment_ID. - 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.
- Une fois la migration terminée, vous devez retrouver tous vos articles, commentaires et catégories dans votre interface de WordPress
- Copier le répertoire
imagesde 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 :
- Vendeesign : Migrer de Dotclear a WordPress 2.3+ simplement
- WordPress-Fr : Import depuis DotClear 2.1.5
- WordPress-Fr : Passage de DotClear 2.1.5 à WordPress 2.7.1
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.
Bonjour,
moi j’ai un problème tout con, je n’ai pas de dossier « import » dans wordpress/wp-admin
:o
si quelqu’un peut m’aider…
merci ;)
@Laura : Hmm … En créant le dossier « import », j’ai pu passer la première étape …
Par contre, j’ai un message d’erreur de WordPress :
« Catchable fatal error: Object of class WP_Error could not be converted to string in C:\wamp\www\dev.wptest.fr\wp-includes\formatting.php on line 2772″ …
J’ai exactement la meme erreur !
@Maarc : j’ai la même erreur, apparemment, il ne trouve aucun post à importer (pour info, c’est un Dotclear 2.1.6 vers un WordPress 3.0.1)
Euh vous savez pas, mais dotclear marche très bien sur une base de donnée postgresql (mieux que Oracle/Mysql).
Et là pour wordpress, hein on fait comment :-)
Un peu tardivement, certes, mais je rend compte de la fin de ma migration :
En forçant l’étape suivante, ça passe …
Il faut *avant* de faire la migration, faire une modification dans le script à un certain endroit pour avoir le titre des billets au complet, sinon la première lettre manque : confere un des commentaires de Julien, dans les commentaires précédents.
Sinon, ça fonctionne.
Pour forcer l’étape suivante, il suffit d’augmenter de 1 le nombre (en fait un paramètre passé en GET, pour ceux qui savent) passé en paramètre de l’étape par l’URL, lorsque vous êtes dans la page du plugin de migration à l’intérieur de l’interface d’admin de votre blog WP …
On a l’URL : http://www.votresite.tld/blog_ou_ce_que_vous_avez_configure/wp-admin/je_ne_sais_plus_ce_quil_y_a_la?step_ou?etape=le_nombre_a_augmenter … Et là vous appuyez sur entrée, normalement, le script passe à l’étape suivante.
Assurez-vous d’avoir des sauvegardes de vos bases avant, c’est de la bidouille, et cela remonte a deux mois, je ne voudrais pas être la cause d’arrachages de cheveux ;) … Si quelqu’un peut être plus précis sur la manipulation a effectuer, je l’en remercie par avance.
Merci à l’auteur de ce plugin, et toutes mes confuses pour la longueur de ce commentaire.
Merci Maarc pour ces feedbacks, je vais regarder cette histoire de caractère manquant et livrer un update.
Salut Bruno, si tu lis l’anglais je t’invite à découvrir http://codex.wordpress.org/Using_Alternative_Databases
[...] me suis servi de cet outil d’importation de Dotclear 2 pour WordPress, simple et [...]
A l’import des utilisateurs, je reçois le message « Catchable fatal error: Object of class WP_Error could not be converted to string in /space/www/gl-ouv/0/1/0104011300536013/web/zecite.org/www.zecite.org/html/blog/wp-includes/formatting.php on line 2773″ et tout s’arrête.
Que faire ?
Bonjour,
J’ai une erreur à l’activation du plugin :
Fatal error: Call to undefined function register_importer() in /homez.421/mandora/www/animasia2011/wp-content/plugins/dc22wp2_latest/dotclear2.php on line 1158
Une idée de soluce ?
Merci !
Chez moi (WP à jour) le plugin provoque une erreur500 lors de son activation. Assez gênant.
Hop correction ça fonctionne correctement !
Superbe travail.
Mais j’ai des soucis d’imports de commentaires , sur 22000 il n’en importe que 6700 (et forcément les plus vieux ) : une solution ?
22 000 oui ça fait du monde. Est-ce que ta base DotClear est exportable ? Si oui, je veux bien pour faire un tentative sur un hébergement à moi et trouver ce qui va pas. Pour l’upload du fichier d’archive, le mieux c’est de me le mettre à dispo et me donner l’url (et l’éventuel login/password) afin que j’y regarde de plus près.
Tu veux un export sous quel format et de quelles données ?
SQL fait par mysqldump ça m’ira très bien.
Alors j’ai utilisé avec succès le plugin de migration : un grand merci pour ce plugin.
Pour arriver à mes fins :
- conversion de tous mes billets en xhtml (bouton convertir en xhtml dans la page de modification du billet de dotclear)
- validation du xhtml (bouton éponyme). Important car j’ai 2 billets récalcitrants (sur 80 au total) qui sont NOK. Je les ai supprimés et recréés dans WP.
- traque des potentiels caractères invalides dans les titres des billets : en effet, le smiley ;-) faisait que l’url du billet contenait cette chaîne, qui se retrouve ensuite dans le fichier .htaccess : cela fait planter mon apache (erreur 500). En modifiant cette url (petit cadenas à côté de l’URL spécifique, toujours dans la page de modification du billet), ça passe impec ensuite.
J’espère que mon commentaire vous sera utile.
Olivier
Bonjour à tous, les premières étapes ne m’ont pas posé de problème. Toutefois lors de l’importation des Users voici l’erreur :
Catchable fatal error: Object of class WP_Error could not be converted to string in /home/meteocen/public_html/testv7/wp-includes/formatting.php on line 2829
j’ai essayé de changer d’étape et de passer à la troisième et voilà ce que j’obtiens :
Steps may take a few minutes depending on the size of your database. Please be patient.
Voulez-vous vraiment faire cela ?
Merci d’avance de vos réponses
Cordialement
Olivier
Bonjour,
je veux exporter les données de Dotclear vers wordpress.
je suit ce tutoriel Merci bien .
mais le probléme reside que la quantité des données est trop et que le nombre des posts dépasse les 50 billets.
qu’est ce que je peux faire?
est ce que tu peux m’aider?
Merci
Bonjour,
j’ai procédé à l’installation d’un DC 2 sur le même hébergement que le WP. J’ai restauré un export de la base DC sur l’instance WP. J’ai suivi votre mode opératoire à la lettre. Seul le compte admin est importé de DC vers WP ; tout le reste (posts, catégories, commentaires, liens) est à 0.
Avez-vous une idée ? Merci pour votre aide.
@Le Malouin : Pas d’idée mais si la base DotClear n’est pas confidentielle, je veux bien un dump que j’essaye de reproduire le bug sur un wordpress de lab. Mon email est antoine (chez/at/arobase) drochon (point/dot) net
[...] migration de Dotclear vers WordPress s’est très facile grâce au plugin dc22wp2. Pour ma part, l’étape a consisté de [...]