Je suis libre !
Ça faisait longtemps que je voulais me détacher de Forumactif. En effet, il y a plus de six ans (déjà !?!, ça passe trop vite !) j'ai eu envie de créer un forum d'entraide en sciences. À cette époque, je cherchais une solution clef en main (ne connaissant pas la programmation) et gratuite (je ne savais pas combien de temps j'allais y passer : six jours, six mois, six ans... ?). C'est alors que j'ai tapé "forum gratuit" sur Google et que j'ai cliqué sur le premier lien correspondant au site de Forumactif. Une inscription, et quelques clics plus tard, j'avais accès à MON forum tout [beau|neuf] (ou plutôt celui de Forumactif). Je me suis donc amusé pendant quelques jours à le paramétrer à base de clickodrome. Puis sont venus des visiteurs de passage, des membres réguliers, le forum s'est développé petit à petit avec sa propre ambiance et sa propre communauté.
Trois années plus tard, voilà que je me retrouve dans une école d'informatique où j'apprends entre autre la programmation. Du coup, j'ai envie de développer quelque chose. Mais quoi ? N'ayant rien appris en développement web à ce moment-là, je décide de me lancer dans la création d'un site Internet. Je farfouille donc sur la toile à la recherche de tutos/cours et peu à peu, je construis un petit site perso (celui-ci !) que je fais héberger gratuitement par Free (étant abonné chez eux) par la suite. N'ayant pas grand chose à raconter, je décide d'aller plus loin et je ne sais plus vraiment trop pourquoi, je commence à développer un site d'énigmes que j'héberge également chez Free. Puis il se développe et comme je prenais plaisir à le faire évoluer de jour en jour, j'achète un nom de domaine chez OVH pour faire plus sérieux (enigmes-a-thematiques.fr/ est tout de même mieux que julien.marmin.free.fr/enigmes/, vous en conviendrez !). Quoi de mieux qu'un forum pour développer une communauté autour de ce nouveau site d'énigmes ? Ça tombe bien, j'en ai déjà un chez Forumactif, je vais m'en servir !). Là, je me suis laissé tenter par la facilité en voulant créer une nouvelle partie sur le forum de sciences en trois clics de souris. Puis les membres se sont habitués à naviguer entre enigmes-a-thematiques.fr (EAT) et etudiant-scientific.forumactif.com.
Pour faire les liens entre les énigmes et les topics d'aide du forum, de gentils utilisateurs s'appliquaient à faire une manip fastidieuse à la sortie de chaque énigme à coup de copier-coller. Il y avait d'autres inconvénients :
- - une fois inscrit sur EAT, il fallait également s'inscrire sur le forum. Parfois, un membre choisissait un pseudo différent entre les deux sites. Ce n'était pas toujours évident pour se repérer ;
- - impossible de poster des messages automatiquement (lors de la sortie d'une énigme par exemple) ;
- - impossible de faire en sorte qu'un topic soit visible uniquement si le membre a résolu l'énigme correspondant à ce topic ;
- - impossible de personnaliser le profil d'un membre (avec le nombre d'énigmes résolues par exemple) ;
- - ...
De plus en plus je regrettais ce choix : si seulement j'avais choisi phpBB (ou un équivalent) dès le début ! Plus le temps passait, plus ça me démangeait de changer mais plus c'était pénible pour tout migrer. Impossible de récupérer une BDD chez Forumactif. Y a qu'à faire une recherche sur Google pour voir tous ceux qui désirent récupérer la BDD de leur forum Forumactif. :p J'ai donc fini par me décider et j'ai commencé à coder un script en Python pour récupérer tous les messages des topics d'énigmes du forum. En renseignant l'adresse du forum, le script parcourt toutes les pages de tous les sujets du forum et en récupère les parties intéressantes, à savoir l'auteur du message, sa date (au format "le Lun 19 Avr 2010 - 0:07" par exemple) et son contenu. Des traitements annexes sont à prévoir : - pour convertir une date au format du type "le Lun 19 Avr 2010 - 0:07" en un timestamp à stocker dans la future BDD de phpBB. - pour vérifier que les auteurs des messages sont bien inscrits avec le même pseudo sur EAT - gérer tous les morceaux de code correspondant aux citations, aux signatures, ...
J'obtenais ainsi un fichier du type :
Sujet du topic Nombre de vues Auteur //du premier message Timestamp //du premier message Contenu //du premier message Auteur //du premier message Timestamp //du premier message Contenu //du premier message . . . Auteur //du premier message Timestamp //du premier message Contenu //du premier message
À ce stade de la migration, j'ai voulu procéder à un travail (énormissime) de séparation d'un topic d'une énigme en deux parties. La première comportant les demandes d'indice et les réponses associées, la seconde contenant les messages de retours sur l'énigme (félicitations, propositions d'améliorations, méthodes de résolutions, ...). Ce travail a été très pénible mais nécessaire et j'ai été très bien aidé par des membres d'EAT que je remercie une fois de plus ici.
Enfin, il a fallu importer tout ce contenu collecté et trié dans le nouveau forum phpBB. Pour ce faire, j'ai codé un script en PHP pour lire les fichiers générés par le script en Python. En gros, il suffit de renseigner une vingtaine de paramètres pour chaque message dans un tableau et de l'envoyer à la fonction submit_post de phpBB. Je ne mettrai pas les sources de ces deux scripts en ligne d'une part parce qu'ils ont certaines spécificités par rapport à ce que je voulais récupérer de Forumactif (il faudrait les adapter pour les généraliser), et d'autre part pour ne pas porter préjudice à Forumactif. Si toutefois vous êtes intéressés pour récupérer des infos et/ou mes scripts, vous pouvez me contacter.
Julien