Installer et transférer les commentaires de DotClear vers le service communautaire Disqus. (Dotclear2Disqus)
Je me lance: depuis quelques temps maintenant, les commentaires sur (mon) dotclear ont quelques soucis avec le spam (du moins sur mon blog), de plus à force de bidouiller avec le javascript, sous Ie, il est devenu quasiment impossible d'écrire des commentaires!. J'ai donc décidé de migrer mes données vers disqus, un service qui s'occupe de gérer les commentaires à ma place.
Je me lance: depuis quelques temps maintenant, les commentaires sur (mon) dotclear ont quelques soucis avec le spam (du moins sur mon blog), de plus à force de bidouiller avec le javascript, sous Ie, il est devenu quasiment impossible d’écrire des commentaires!. J’ai donc décidé de migrer mes données vers disqus, un service qui s’occupe de gérer les commentaires à ma place.
Forcément lorsque l’on migre de service, le point critique est le transfert des données existantes. Comment faire pour récupérer mes commentaires d’il y a 5 ans? Voici la marche à suivre:
1 – Récupération des données.
Pour cela, il suffit d’aller dans le menu Extensions > Import Export:
Après un clique sur le bouton « Export », un fichier contenant l’intégralité du site est téléchargé. Avant de faire mon export, j’ai supprimé tous les commentaires qui étaient classé en spam / hors ligne. Je gardé uniquement ceux actifs.
2 – Analyse rapide du fichier
Lorsqu’on ouvre le fichier téléchargé, on remarque qu’il s’agit globalement d’un export de la base. Ni plus, ni moins. Malheureusement, disqus ne prend pas en compte les exports dotclear. il va donc falloir trouver un format d’import: le WXR est supporté. Il s’agit du format de WordPress.
si l’on jette un oeil rapide au fichier, après la ligne commençant par « [comment comment_id,post_id » nous avons nos lignes de commentaires. Il faut donc convertir des données bruts en xml compréhensible par Disqus…
3 – Transformation
Je me suis donc codé un petit utilitaire pour faire le travail. Le Dotclear2Disqus. J’aurais pu le faire en PHP, mais bon, je maîtrise mieux le C# :)
Il suffit de sélectionner le fichier exporté de DotClear et de saisir l’url de votre site dotclear. A la fin de l’opération, il vous demandera d’enregistrer les données générées dans un fichier et si tout se passe bien, vous aurez un petit message: « Success« . Vous n’avez plus qu’à importer ce fichier dans l’interface de Disqus.
4 – Rendez vous sur la page d’import wordpress
Une fois le fichier uploadé, un message apparait en haut de la fenêtre indiquant que le fichier est en cours de traitement. Ca peut prendre plusieurs heures…
En attendant, on peut commencer à préparer l’arrivée de Disqus.
5 – Désactivation des commentaires dotClear
Il faut maintenant désactiver les commentaires sur dotclear: Décocher la croix « Accepter les commentaires » dans les parametres du blog.
6 – Installation du script Disqus
D’après la documentation de Disqus, il faut copier le code suivant:
<div id="disqus_thread"></div>
</script>
Il faut changer la variable « disqus_shortname » par votre identifiant disqus. J’ai aussi ajouter la variable « disqus_identifier » qui contient maintenant l’ID du billet dotclear. Cette variable servira à retrouver les commentaires d’un billet sur d’autres pages. Il faut maintenant placer ce code au bon endroit dans le template de la page post.html
Cherchez le code « <!– # Comments –> » dans le template. Et insérez juste après le code disqus! Ce qui donne quelque chose du genre:
Chez moi, cette modification dans le template permet d’avoir ça :
6 – Suppression des données dotclear
La dernière étape consiste à mettre « hors-ligne »les commentaires existants du blog dotclear (à ne faire forcément qu’une fois que disqus aura intégré le fichier fourni à l’étape 4.
Enjoy!
Ci dessous le zip contenant le programme convertisseur DotClear vers Disqus. Je donne aussi à qui veut les sources du programme! Ces manipulations comportent quand même un risque de perte de données. Faites attention et agissez en connaissant les risques. Le chemin inverse: Disqus => DotClear sera plus compliqué à faire!
ATTENTION /!\, Disqus utilise la balise <br /> au lieu du \n comme dotclear pour les sauts de ligne, il faut donc penser à modifier le fichier manuellement pour remplacer les balises!