ACEPOMPE


Présentation


AcePompe est un script PHP permettant de convertir un forum Aceboard en un forum phpBB.

Le principe de base est d'effectuer une lecture complète de votre forum Aceboard et d'extraire le maximum d'informations permettant de reconstruire le forum sur un autre support. En effet, si l'on peut lire entièrement un forum Aceboard, il n'y a pas de moyens de tout restaurer (encore que ... ).

AcePompe produit un ensemble de commande pour mySQL, destiné à être intégré dans la base de donnée d'un forum phpBB tout juste installé à neuf.

/!\ Avertissement /!\


En utilisant ce script, vous endossez l'entière responsabilité de votre acte.

L'auteur ne peut être en aucun cas être tenu responsable de dégats ou dysfonctionnements causés par l'utilisation de ce script. AceBoard interdit l'utilisation de programmes permettant l'aspiration de votre forum, en raison des fortes charges que celà peut engendrer sur leurs serveurs. Cependant, le contenu de votre forum est votre propriété et celle des utilisateurs ayant posté sur votre forum.

Respectez donc les serveurs de l'équipe Aceboard et leurs travaux accomplis tous les jours pour maintenir un service de qualité. En effet, l'utilisation de ce script peut provoquer une forte charge sur les serveurs aceboard, pour une durée proportionnelle à l'ampleur de votre forum.

Avant, de vous lancer dans l'opération, lisez l'ensemble de la documentation présente sur cette page, et notemment la FAQ en bas de page.

CHANGELOG/ TODOLIST

Testé avec Apache 1.3 / Php 4

CHANGELOG:

  • V0.1 18/08/2007: Première version opérationnelle
    • Importation des catégories du forum, topics et message datés, nombre de posts et topics dans chaque catégorie
    • Importation des comptes utilisateurs avec les informations suivantes: email, ville, signature, avatar (si lien externe), date d'inscription, nombre de message posté, mot de passe par defaut (voir explication dans l'installation)
    • Importation des message en BBCode (béta) ou HTML

TODOLIST:
  • Prise en charge des versions anglaises des forums AceBoard 
  • Prise en charge des anciens forums sans nom de domaine (ex: ID.aceboard.fr)
  • Elimination des bugs lors des gros changements de CSS
  • Messages d'erreurs explicite
  • Importer les autorisation des utilisateurs (admin/modo)
  • Importer la visibilité des section et droit des modérateurs sur chaque section
  • Importer les locks sur les topics
  • Améliorer le support du BBCode lors de l'importation (préferez l'HTML pour l'instant)

Utilisation


1. Principe de fonctionnement

    AcePompe est un script php qui parcourt l'ensemble des pages de votre forum. Il ne s'agit donc en aucun cas de l'utilisation d'une faille mais simplement l'aspiration et l'extraction des informations importantes du forum. 


2. Utilisation du script et création d'une sauvegarde

    Vous devez disposer d'une serveur web permettant d'exécuter des script php. Si vous ne disposez pas d'un tel serveur, je vous recommande de lire la section "Tutoriel serveur PHP" ci dessous. Etant donné que l'execution du script est assez longue (de 10 à 30 min, voire plus), vous devez pouvoir controler le temps d'execution maximal d'un script php et le fixer à une valeur elevé ou illimité (configurable dans php.ini). N'esperez donc pas executer un tel script sur un hébergement personnel type FAI.
    Etant donné que certaines parties de votre forum sont surement restreintes aux utilisateurs inscrits, vous devez disposer dans ce cas d'une compte sur le forum ayant accès à toute les sections. Le cas échéant, vous ne récuperez que les données publiques.

  • En premier lieu, récuperez le script acepompe.phps sous forme de fichier texte, et renommez le fichier en acepompe.php.
  • Vous devez, avant toute execution, configurer le script php pour qu'il puisse acceder à votre forum. Ouvez le script avec un éditeur de texte. En début de script, vous devez éditer les variables pour obtenir la configuration suivante:  
            $forum_id = "1";       // Contenu du cookie "cookieid_XXXX" (id du forum)
            $forum_name = "support";    // Le nom de votre forum XXXXX.aceboard.fr
            $forum_user = "????";          // Votre login sur le forum
            $forum_mdp = "????";          // Votre mot de passe sur le forum
            $forum_sp = "????";             // Contenu du cookie "cookiesp_XXXX"

  • Une telle configuration permet au script de se connecter sur le forum http://support.aceboard.fr dont l'ID est 1, sans aucun authentification. Si vous ne savez pas quels sont tous ces paramètres, connectez vous sur votre forum avec votre identifiants. Ensuite, consultez les cookies de votre disque dur. Avec Firefox, par exemple, vous pouvez consulter les cookies stockés sur votre ordinateur dans le menu "Outils" -> "Options" -> [ONGLET] "Vie privée" -> [BOUTON] "Affichers les cookies".  Dans le champs "Rechercher", tapez "aceboard.fr.  Cherchez alors dans la liste les cookies suivants: cookieid_XXXX,  cookiesp_XXXX, où XXXX est l'ID de votre forum. Retournez alors au script et changez les ????, le nom du forum et l'id par les valeurs adéquates. Le script est alors pleinement configuré.
  • Le script comporte aussi les variables
         $sql_base = "?????";
         $sql_phpBB_prefix = "phpbb_";
  • Ces variables permettens de controler la configuration des données produites par le script pour s'adapter à votre phpBB. $sql_base doit contenir le nom de la base sql qui va recevoir les données, et $sql_phpBB_prefix est le préfixe des noms des tables de votre phpBB. Si vous n'avez aucune idée de ce que sont ces paramètres, reportez vous à l'installation de phpBB. Ce sont deux paramètres qui vous sont demandés lors de l'installation de votre forum phpBB.
  • Vous pouvez aussi configurer les variables $getBBCode et  $debug pour controler l'execution du script. Reportez vous aux commentaires dans le script pour comprendre leur fonctionnement. Si vous n'avez aucune idée du fonctionnement de ces variables, laissez les valeurs par défaut.
  • Copiez alors le script configuré dans le répertoire de votre choix sur votre serveur web et rendez vous à l'adresse web qui vous permet d'executer votre script. (ex: http://www.domaine.com/mon_repertoire/acepompe.php)
  • L'execution du script en mode normal (non Debug) provoque l'affichage de commandes sql. L'execution du script peut-être très longue. Si vous obtenez un message d'erreur concernant le temps d'exécution du script, augmentez le temps d'exécution maximum comme prescrit ci-dessus. Pour tout autre type d'erreur, consultez la FAQ. Le script se termine lorsque la page fini son chargement dans votre navigateur.
  • Enregistrez ou copier-collez l'intégralité du contenu produit dans un fichier forum_aceboard.txt. Ce fichier comporte l'intégralité des données exportées du forum AceBoard.
3. Importer la sauvegarde sur un forum phpBB

    A cet étape, vous devez disposer d'un forum phpBB installé. Si ce n'est pas le cas, reportez vous aux indications d'installation sur le site officiel phpBB. Vous devez aussi disposez d'une accès à votre base de donnée du forum par phpMyAdmin (ou tout moyen à votre convenance que nous ne détaillerons pas ici).
    Connectez vous sur phpMyAdmin du seveur de votre base de donnée. Vous devez retrouver les tables phpbb_XXX de votre forum précédemment crée.

  !!  AVANT TOUTE MODIFICATION, EXPORTEZ L'ENSEMBLE DE VOTRE BASE SQL EN CAS D'ERREUR POUR POUVOIR RESTAURER. !! Si vous avez un doute sur cet étape, n'allez pas plus loin. L'auteur du script ne pourra en aucun cas être tenu responsable de pertes de données.

    Cliquez alors sur l'icone SQL en haut à gauche (ou l'option qui permet d'executer des commandes SQL selon votre version de phpMyAdmin). Dans la fenêtre qui apparait, cliquez sur "Importez les fichiers", puis sur le bouton "Parcourir". Selectionnez alors le fichier "forum_aceboard.txt" crée à l'étape précédente. Dans la liste déroulante "Jeu de caractères du fichier", sélectionnez "LATIN1", puis cliquez finalement sur le bouton "Exécuter".
    Le déroulement de cette étape peut durer plusieurs minutes selon la taille du fichier importé (et donc de votre forum). Attendez patiemment la fin du chargement et ne vous inquiétez pas si il n'y a pas d'indicateur de progression. Lorsque le chargement est fini, vous devez obtenir un message, dans la fenetre principale de phpMyAdmin, qui explique le nombre d'instructions exécutées sans aucune erreur. Si vous avez une erreur pendant l'importation, restaurez entièrement votre base de donnée avec la sauvegarde effectuée précédemment et relisez le tutorial pour vérifier que vous n'avez pas sauté d'étape. Si vous ne trouvez pas l'erreur, consultez la FAQ.

4. Mise en route de votre nouveau phpBB

    A cet étape, vous diposez d'un forum phpBB fonctionnel. Cependant, quelques réglages sont nécéssaires, au travers de l'interface d'administration du phpBB.

       Lors de l'installation de votre phpBB, un compte administrateur a été crée. C'est ce seul compte qui est administrateur. Veillez à ce que le nom de ce compte n'existe pas dans votre forum aceboard, sinon l'importation ne sera pas possible forcément.

    Vous devez donc:
  • Remettre les droits des utilisateurs qui sont administrateurs ou modérateurs sur chaque section du forum. Vous pourrez alors détruire le compte utilisateur initial de phpBB qui vous a permis de faire ces modifications une fois que vous avez nommé les nouveaux administrateurs (à vous de voir).
  • Activez l'autorisation des avatars à distances (remote)
  • Chaque compte utilisateur est crée avec un mot de passe par défaut. Vos futurs utilisateur n'auront donc pas à s'inscrire. Leur profils ont été récupéré partiellement (avatar, email, signature...). Cependant, comme il est impossible de récuperer leur mot de passe sur aceboard, des mots de passe sont affectés par defaut à vos utilisateurs. Le mot de passe par défaut est "mdpNOMUTILISATEUR". Par exemple, si un utilisateur Aceboard possède un compte nommé "toto", son nouveau compte sur le forum phpBB a pour login "toto" et pour mot de passe "mdptoto". N'oubliez pas de rappeler à vos utilisateurs de changer de mot de passe très rapidement !
  • Remettre les droits d'acces à chaque section du forum.
  • Pour avoir plus de détails sur les ce que fait ou ne fait pas AcePompe, reportez vous à la TODOLIST. Gardez en tête que votre forum n'est pas intégralement récupéré dans le moindre détail. Seul les messages et utilisateurs sont récupérés ce qui est le principal. Vous devrez affiner la configuration de votre forum phpBB.

Tutoriel serveur PHP

Cette section est réservé aux personne ne sachant pas comment exécuter le script PHP. Si vous utilisez Windows, je vous conseille d'utiliser EasyPHP.

Téléchargez et installez tout d'abord EasyPHP, de préférence la version 1.8 ou une version qui comporte Apache 1.3 et PHP 4 (l'installation ne comporte pas de problèmes particuliers). A la fin de l'installation, vous disposez d'un serveur Apache permettant d'executer des script PHP. L'icone noir en bas de votre barre des taches permet, par un clic droit, d'effectuer des taches simples.

La première chose à faire est de configuer PHP pour empecher certains messages d'avertissement de s'afficher. Dans l'onglet "Configuration", cliquez sur l'option "Php". Vous obtenez alors l'affichage du fichier php.ini. Recherchez alors le bloc de texte suivant:

; Print out errors (as a part of the output).  For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below).  Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
display_errors = Off

Changez alors la ligne: 

   display_errors = On      

en

display_errors = Off

Normalement, le serveur PHP est rédemarré automatique pour prendre en compte la modification effectué. Au besoin, utilisez l'option "Redémarrer".

Maintenant, vous devez copier l'intégralité du script dans un fichier nommé acepompe.php. Vous devez ensuite copier ce fichier dans le répertoire maison du serveur apache, c'est à dire dans le répertoir où le serveur apache pourra exécuter le script. Pour cela, utilisez le menu (clic droit sur l'icone noir dans la barre des taches), et sélectionnez l'option "Explorer". Vous obtenez alors une fenêtre de l'explorateur windows visualisant le dossier dans lequel vous devez copier le script PHP (Le seul fichier présente dans ce dossier est index.php au départ). Effectuez alors la copie du script PHP dans ce dossier.

A présent, vous êtes pret à utiliser le script. Reportez vous à l'explication "Utilisation", pour utiliser le script correctement.

Pour exécuter votre script PHP, ouvrer votre explorateur, et allez à l'adresse:

http://127.0.0.1/acepompe.php


FAQ


- J'ai relu toute la méthode d'installation, mais j'ai toujours une erreur à l'éxecution du script ou à l'importation.

Si vous n'arrivez pas à localiser l'erreur, sauvegardez votre feuille de style dans l'interface d'administration de AceBoard, et restaurez celle par defaut. Cela facilite en général l'extraction des informations.

- Je n'arrive pas à installer phpBB !

Reportez vous au forum phpbb-fr

- Il me manque des topics une fois mon forum importé dans phpBB

Vérifiez que vous avez bien rentré les informations de votre compte dans la configuration du script. Le cas échéant, le script n'aura accès qu'aux catégories publiques de votre forum.

- Il me manque des messages une fois mon forum importé dans phpBB. Certains messages ne sont pas complet.

Si le problème ne se situe qu'au niveau niveau des messages, et que vous n'avez eu aucun message d'erreur lors de l'exécution du script, il s'agit d'un bug. Cela peut se produire sur certain messages comportant une mise en page complexe. Désolé.

- Mon forum n'est pas à l'identique après l'exportation.

Le script ne produit pas un clone de votre forum, mais exporte seulement les données essentielles du forum.

- Que pense AceBoard de votre script?

Je n'en ai aucune idée. Toujours est-il que ce script a vocation d'effectuer une sauvegarde de votre forum AceBoard pour apporter une tranquilité d'esprit. Cela vous permet de repartir sur un forum phpBB en imaginant que AceBoard perde vos données. De plus, c'est votre droit de possèder une copie des données du forum au cas où les utilisateurs vous réclamerait une copie de leurs posts.

Cependant, sachez que l'équipe AceBoard est compétente et effectue des sauvegardes régulières de vos forums, donc n'abusez pas de ce script.

- J'ai exporté mon forum AceBoard vers une phpBB, et apres?

Vous venez de quitter un forum clé en main, avec hébergement et sauvegardes régulières, et support client. Votre phpBB est hébergé sur un serveur de votre choix, votre base de données aussi. Vous êtes alors seul maitre du devenir de votre forum. C'est à vous d'assurer tout de A à Z. Si vous décidez d'abandonner AceBoard, c'est une déscision lourde de conséquences, et vous ne pourrez plus revenir en arrière. Réfléchissez-y à 2 fois.

- Lorsque j'exécute le script, j'obtiens énormément de messages de warning

Configurez votre php pour fonctionner en safe mode off sans warning.

- Lorsque j'exécute le script, je n'obtiens aucun résultat, ou le script s'arrete au bout de quelque secondes

Votre forum est totalement différent d'un forum AceBoard. Vérifiez bien les paramètres permettant d'identifier votre forum (id, nom, etc...). Vérifiez aussi que la version de votre forum AceBoard est 5.3. Si votre version est supérieur, le script ci-présent n'est pas conçu pour travailler avec une telle version. Cependant, avec très peu de modifications et quelques connaissances en php, vous pourrez adapter le script en gardant le squelette du programme.

- Comment fonctionne le script?

Le script procède au chargement complet du forum par niveaux hiérarchiques. D'abord la page d'index, puis les pages des sous catégories, puis les pages des topics. L'extraction des informations se fait au moyen des PCRE (Perl Compatible Regular Expressions).

- Pourquoi avoir choisi le PHP?

Par simplicité et portabilité.

- J'ai parcouru la page en entier, je ne trouve pas le script acepompe.php dont tu parles dans le processus d'installation.

C'est normal. Si tu as eu le courage de lire jusqu'ici, celà veut dire que tu est motivé et que tu est conscient de ce que tu vas faire. Le script est ici.