<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.nofrag.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bibiwan</id>
	<title>NoFrag - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nofrag.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bibiwan"/>
	<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/Sp%C3%A9cial:Contributions/Bibiwan"/>
	<updated>2026-08-13T17:26:53Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Cyka_Blyat&amp;diff=2941</id>
		<title>Cyka Blyat</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Cyka_Blyat&amp;diff=2941"/>
		<updated>2020-02-05T15:51:19Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : Annulation des modifications 2937 de 109.14.138.164 (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Définition==&lt;br /&gt;
Le terme &#039;&#039;&#039;Cyka Blyat&#039;&#039;&#039; est un meme internet populaire dans les différentes communautés de FPS en ligne. Il fait référence à des insultes en langues slaves et européennes de l&#039;Est lancées par des joueurs originaires de ces régions et réputés comme étant particulièrement toxiques sur les FPS multijoueurs et, notamment Counter-Strike : Global Offensive.&lt;br /&gt;
Ce mot toujours accompagner de (Blyat) en français qui donne fils de pute, est parmis la liste des gros mots vulgaire dans la majorité des pays salves, cependant, plusieurs personnes l&#039;utilise sans savoir sa définition exacte. Par ailleur, avec la nouvel mode des jeunes d&#039;aujourd&#039;hui qui écoutent du HardBass (bass boosted) et qui s&#039;influencent pas la culture slave notamment l&#039;USSR. Emploie ce mot chaque jours.&lt;br /&gt;
&lt;br /&gt;
==Traduction et controverses==&lt;br /&gt;
La traduction communément admise pour l&#039;expression &amp;quot;Cyka Blyat&amp;quot; est &amp;quot;Putain de salope&amp;quot; en russe mais plusieurs sources s&#039;accordent à dire que celle-ci n&#039;est pas correcte : il y a, en effet, une différence entre &amp;quot;blyad&amp;quot; et &amp;quot;blyat&amp;quot;, le premier désignant vulgairement une prostituée, le second étant une insulte utilisée comme une interjection - auquel cas, &amp;quot;Cyka blyat&amp;quot; signifierait alors plutôt &amp;quot;Merde, putain !&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Cyka_Blyat&amp;diff=2940</id>
		<title>Cyka Blyat</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Cyka_Blyat&amp;diff=2940"/>
		<updated>2020-02-05T15:51:04Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : Annulation des modifications 2936 de 109.14.138.164 (discussion)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Définition==&lt;br /&gt;
Le terme &#039;&#039;&#039;Cyka Blyat&#039;&#039;&#039; est un meme internet populaire dans les différentes communautés de FPS en ligne. Il fait référence à des insultes en langues slaves et européennes de l&#039;Est lancées par des joueurs originaires de ces régions et réputés comme étant particulièrement toxiques sur les FPS multijoueurs et, notamment Counter-Strike : Global Offensive.&lt;br /&gt;
Ce mot toujours accompagner de (Blyat) en français qui donne fils de pute, est parmis la liste des gros mots vulgaire dans la majorité des pays salves, cependant, plusieurs personnes l&#039;utilise sans savoir sa définition exacte. Par ailleur, avec la nouvel mode des jeunes d&#039;aujourd&#039;hui qui écoutent du HardBass (bass boosted) et qui s&#039;influencent pas la culture slave notamment l&#039;USSR. Emploie ce mot chaque jours.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
подписал CCCP1110000110001011101001000010110110110011111001010110&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Nofrag,_source_de_savoir&amp;diff=2866</id>
		<title>Nofrag, source de savoir</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Nofrag,_source_de_savoir&amp;diff=2866"/>
		<updated>2018-08-17T08:24:34Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Administratif */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page rassemble les topics du forum à haute valeur ajoutée en information, classés par thèmes.&lt;br /&gt;
&lt;br /&gt;
== Administratif ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=4&amp;amp;t=19009 La CAF : si toi aussi t&#039;y comprends rien, ce topic est fait pour toi.]&lt;br /&gt;
&lt;br /&gt;
== Sciences et Technologies ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/384343 Garage dev - jeu vidéo]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/532616 Le topic de la science et des découvertes]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/778833 Administration systèmes]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/591166 Le topic des NAS] pas si naze.&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/580084 Oculus RIFT]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/777255 Le topic des cryptomonnaies (Bitcoin, Litecoin...)]&lt;br /&gt;
* [[Le guide pour devenir cryto-développeur sur Ethereum]]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/419965 A quoi ça sert, comment ça marche]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/894262 Voitures autonomes]&lt;br /&gt;
&lt;br /&gt;
== Voyages ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/entre_aide/topics/313933 Voyage au Japon]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/519662 S&#039;expatrier : pourquoi, comment, les bons plans]&lt;br /&gt;
&lt;br /&gt;
== Loisirs, Culture et Sports ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/196550 Jeux de plateau/figurines/rôle]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/597563 Ce que vous venez de regarder]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/51391 Le topic des documentaires]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/888596 Expos]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/507078 Quelle est la meilleure enseigne de fast-food ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/212658 Tout le monde le sait... sauf moi]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/139443 Le saviez vous ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/942078 Le topic de la danse]&lt;br /&gt;
&lt;br /&gt;
== Musique ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/462845 Le monde de l&#039;Hi-Fi]&lt;br /&gt;
** Voir aussi [[:Catégorie:Audio]]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/618073 Le topic de la production musicale]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/362821  Le topic des guitaristes]&lt;br /&gt;
&lt;br /&gt;
== Vidéo ==&lt;br /&gt;
&lt;br /&gt;
* [[Cadence vidéo sur PC]]&lt;br /&gt;
&lt;br /&gt;
== Mode de vie ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/899037 Le topic des papas]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/602330 Faire ou ne pas faire d&#039;enfants]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/371544 Le topic du coeur et des pleurnicheries]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/457606 Sexe, déviances et gens nus]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/787999 Nutrition: régime cétogène]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Nofrag,_source_de_savoir&amp;diff=2865</id>
		<title>Nofrag, source de savoir</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Nofrag,_source_de_savoir&amp;diff=2865"/>
		<updated>2018-08-17T08:24:24Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Administratif */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Cette page rassemble les topics du forum à haute valeur ajoutée en information, classés par thèmes.&lt;br /&gt;
&lt;br /&gt;
== Administratif ==&lt;br /&gt;
* [hhttps://forum.nofrag.com/viewtopic.php?f=4&amp;amp;t=19009 La CAF : si toi aussi t&#039;y comprends rien, ce topic est fait pour toi.]&lt;br /&gt;
&lt;br /&gt;
== Sciences et Technologies ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/384343 Garage dev - jeu vidéo]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/532616 Le topic de la science et des découvertes]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/778833 Administration systèmes]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/591166 Le topic des NAS] pas si naze.&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/580084 Oculus RIFT]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/777255 Le topic des cryptomonnaies (Bitcoin, Litecoin...)]&lt;br /&gt;
* [[Le guide pour devenir cryto-développeur sur Ethereum]]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/419965 A quoi ça sert, comment ça marche]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/894262 Voitures autonomes]&lt;br /&gt;
&lt;br /&gt;
== Voyages ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/entre_aide/topics/313933 Voyage au Japon]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/519662 S&#039;expatrier : pourquoi, comment, les bons plans]&lt;br /&gt;
&lt;br /&gt;
== Loisirs, Culture et Sports ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/196550 Jeux de plateau/figurines/rôle]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/597563 Ce que vous venez de regarder]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/51391 Le topic des documentaires]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/888596 Expos]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/507078 Quelle est la meilleure enseigne de fast-food ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/212658 Tout le monde le sait... sauf moi]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/139443 Le saviez vous ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/942078 Le topic de la danse]&lt;br /&gt;
&lt;br /&gt;
== Musique ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/462845 Le monde de l&#039;Hi-Fi]&lt;br /&gt;
** Voir aussi [[:Catégorie:Audio]]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/618073 Le topic de la production musicale]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/362821  Le topic des guitaristes]&lt;br /&gt;
&lt;br /&gt;
== Vidéo ==&lt;br /&gt;
&lt;br /&gt;
* [[Cadence vidéo sur PC]]&lt;br /&gt;
&lt;br /&gt;
== Mode de vie ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/899037 Le topic des papas]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/602330 Faire ou ne pas faire d&#039;enfants]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/371544 Le topic du coeur et des pleurnicheries]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/457606 Sexe, déviances et gens nus]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/787999 Nutrition: régime cétogène]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_memes_de_Nofrag&amp;diff=2864</id>
		<title>Les memes de Nofrag</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_memes_de_Nofrag&amp;diff=2864"/>
		<updated>2018-08-17T08:22:08Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* V */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1 ==&lt;br /&gt;
* [[120000|120 000 euros]]&lt;br /&gt;
== A ==&lt;br /&gt;
* [[L&#039;Accueil NoFrag]]&lt;br /&gt;
* &#039;&#039;Contenu X&#039;&#039; supprimé à la demande d&#039;[[Activision]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== B ==&lt;br /&gt;
* Bidou - mot de passe universel&lt;br /&gt;
== C ==&lt;br /&gt;
* [http://communaute.nofrag.com/ Communauté Nofrag]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?p=901015#p901015 Les Crêpes]&lt;br /&gt;
* Il campait, il ne savait pas&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/95614/125#post_841268 Cache-sexe]&lt;br /&gt;
* La console pute la famille&lt;br /&gt;
* Et avec un chapeau ? [https://youtu.be/ig-aJzjLe6s]&lt;br /&gt;
* Plie lui le coffre ! [https://forum.nofrag.com/viewtopic.php?p=868869#p868869] Une sorte d&#039;encule là, en plus poli.&lt;br /&gt;
&lt;br /&gt;
== E ==&lt;br /&gt;
* [[Encule la]]&lt;br /&gt;
* Extracteur de jus&lt;br /&gt;
&lt;br /&gt;
== F ==&lt;br /&gt;
* [[Frapper ces gens avec de la violence]]&lt;br /&gt;
* [[Le_Flam&#039;s|Le Flam&#039;s]]&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
* [[Gagagou|Gagagou]]&lt;br /&gt;
== H ==&lt;br /&gt;
* [[hl2kultur|HL2 sai tt ma kultur]]&lt;br /&gt;
== I ==&lt;br /&gt;
* [https://web.archive.org/web/20070506143636/http://blogs.nofrag.com/seskemachine/2006/sep/23/21299-il-a-pisse-le-sang-cet-encule/ il a pissé le sang, cet enculé.]&lt;br /&gt;
== K ==&lt;br /&gt;
* [[Jte niaue q lq Kqlqsh]]&lt;br /&gt;
* [[Kronenchips]]&lt;br /&gt;
== L ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/149738/1780#post_1069078 Laisser un espace sur les bords]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/7811/130#post_110508 La vague ?]&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
* [[Matt]]&lt;br /&gt;
* [[Maxkarting]]&lt;br /&gt;
* [[Le Magnésium]]&lt;br /&gt;
* Le Marteau de [[affaire_Sam_Hassanine|Sam Hassanine]]&lt;br /&gt;
* Les mondes engloutis, série animée des années 80 dont on aime s&#039;envoyer le générique en lien bidon sur la tribune et dont la chanson [https://www.youtube.com/watch?v=UgtVFEZBgQo&amp;amp;feature=youtu.be&amp;amp;t=43 RESTE DANS LA TÉTE !] &lt;br /&gt;
* [http://forum.nofrag.com/forums/nofrag/topics/952495#post_952513 C&#039;est très &#039;&#039;middle&#039;&#039;]&lt;br /&gt;
* [[Le Mouddle]]&lt;br /&gt;
&lt;br /&gt;
== O ==&lt;br /&gt;
* [[Opposing Force: Source]]&lt;br /&gt;
== P ==&lt;br /&gt;
* [[:Fichier:Popcorn.jpg|Le pop-corn, j&#039;en bouffe des kilos sur NoFrag.com]]&lt;br /&gt;
* [[Photoshop_collaboratif|Photoshop Collaboratif]] (&#039;&#039;&#039;toshop collabo&#039;&#039;)&lt;br /&gt;
* Pour info, X est mort et Y est en prison pour pédophilie&lt;br /&gt;
* [http://blogs.wefrag.com/divide/2008/05/21/cabinet-a-pratiques-douteuses/ Pratiques douteuses]&lt;br /&gt;
* Pizza (livraison de) [http://forum.nofrag.com/forums/partage/topics/61663#post_61694] [http://forum.nofrag.com/forums/partage/topics/526762/3#post_529871] [http://forum.nofrag.com/forums/partage/topics/777368/3#post_789336] [http://forum.nofrag.com/forums/partage/topics/88364#post_88398]&lt;br /&gt;
* Page 272 [http://forum.nofrag.com/forums/threads_rallonge/topics/200655/272]&lt;br /&gt;
&lt;br /&gt;
== Q ==&lt;br /&gt;
* [http://www.nofrag.com/2009/mai/30/31523/ Qualité nazi]&lt;br /&gt;
== S ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/259176/543#post_978560 Salaire Brut]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/39437/13#post_41987 Snickers]&lt;br /&gt;
* [http://w.nofrag.com/Fichier:Ynbevl92.gif Singes dans une voiture jaune]&lt;br /&gt;
* [[Saint Axe]]. La dictature grammaticale sur Travian.&lt;br /&gt;
* Sur&#039;&#039;&#039;vi&#039;&#039;&#039;varium[http://forum.nofrag.com/forums/nofrag/topics/704430#post_704479]&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
* [[Tactifrais]]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/75909 Taper des mains]&lt;br /&gt;
* [https://www.youtube.com/watch?v=D_mU3LqGp0g Tuer, tuer, tuer]&lt;br /&gt;
* Ta gueule Biblix&lt;br /&gt;
&lt;br /&gt;
== W ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?p=400680#p400680 Une bouteille de Whisky]&lt;br /&gt;
&lt;br /&gt;
== V ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=16600 La voie du milieu et les gens qui roulent dessus]&lt;br /&gt;
* Violer avec de la frappance.&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_memes_de_Nofrag&amp;diff=2863</id>
		<title>Les memes de Nofrag</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_memes_de_Nofrag&amp;diff=2863"/>
		<updated>2018-08-17T08:18:15Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1 ==&lt;br /&gt;
* [[120000|120 000 euros]]&lt;br /&gt;
== A ==&lt;br /&gt;
* [[L&#039;Accueil NoFrag]]&lt;br /&gt;
* &#039;&#039;Contenu X&#039;&#039; supprimé à la demande d&#039;[[Activision]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== B ==&lt;br /&gt;
* Bidou - mot de passe universel&lt;br /&gt;
== C ==&lt;br /&gt;
* [http://communaute.nofrag.com/ Communauté Nofrag]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?p=901015#p901015 Les Crêpes]&lt;br /&gt;
* Il campait, il ne savait pas&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/95614/125#post_841268 Cache-sexe]&lt;br /&gt;
* La console pute la famille&lt;br /&gt;
* Et avec un chapeau ? [https://youtu.be/ig-aJzjLe6s]&lt;br /&gt;
* Plie lui le coffre ! [https://forum.nofrag.com/viewtopic.php?p=868869#p868869] Une sorte d&#039;encule là, en plus poli.&lt;br /&gt;
&lt;br /&gt;
== E ==&lt;br /&gt;
* [[Encule la]]&lt;br /&gt;
* Extracteur de jus&lt;br /&gt;
&lt;br /&gt;
== F ==&lt;br /&gt;
* [[Frapper ces gens avec de la violence]]&lt;br /&gt;
* [[Le_Flam&#039;s|Le Flam&#039;s]]&lt;br /&gt;
&lt;br /&gt;
== G ==&lt;br /&gt;
* [[Gagagou|Gagagou]]&lt;br /&gt;
== H ==&lt;br /&gt;
* [[hl2kultur|HL2 sai tt ma kultur]]&lt;br /&gt;
== I ==&lt;br /&gt;
* [https://web.archive.org/web/20070506143636/http://blogs.nofrag.com/seskemachine/2006/sep/23/21299-il-a-pisse-le-sang-cet-encule/ il a pissé le sang, cet enculé.]&lt;br /&gt;
== K ==&lt;br /&gt;
* [[Jte niaue q lq Kqlqsh]]&lt;br /&gt;
* [[Kronenchips]]&lt;br /&gt;
== L ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/149738/1780#post_1069078 Laisser un espace sur les bords]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/7811/130#post_110508 La vague ?]&lt;br /&gt;
&lt;br /&gt;
== M ==&lt;br /&gt;
* [[Matt]]&lt;br /&gt;
* [[Maxkarting]]&lt;br /&gt;
* [[Le Magnésium]]&lt;br /&gt;
* Le Marteau de [[affaire_Sam_Hassanine|Sam Hassanine]]&lt;br /&gt;
* Les mondes engloutis, série animée des années 80 dont on aime s&#039;envoyer le générique en lien bidon sur la tribune et dont la chanson [https://www.youtube.com/watch?v=UgtVFEZBgQo&amp;amp;feature=youtu.be&amp;amp;t=43 RESTE DANS LA TÉTE !] &lt;br /&gt;
* [http://forum.nofrag.com/forums/nofrag/topics/952495#post_952513 C&#039;est très &#039;&#039;middle&#039;&#039;]&lt;br /&gt;
* [[Le Mouddle]]&lt;br /&gt;
&lt;br /&gt;
== O ==&lt;br /&gt;
* [[Opposing Force: Source]]&lt;br /&gt;
== P ==&lt;br /&gt;
* [[:Fichier:Popcorn.jpg|Le pop-corn, j&#039;en bouffe des kilos sur NoFrag.com]]&lt;br /&gt;
* [[Photoshop_collaboratif|Photoshop Collaboratif]] (&#039;&#039;&#039;toshop collabo&#039;&#039;)&lt;br /&gt;
* Pour info, X est mort et Y est en prison pour pédophilie&lt;br /&gt;
* [http://blogs.wefrag.com/divide/2008/05/21/cabinet-a-pratiques-douteuses/ Pratiques douteuses]&lt;br /&gt;
* Pizza (livraison de) [http://forum.nofrag.com/forums/partage/topics/61663#post_61694] [http://forum.nofrag.com/forums/partage/topics/526762/3#post_529871] [http://forum.nofrag.com/forums/partage/topics/777368/3#post_789336] [http://forum.nofrag.com/forums/partage/topics/88364#post_88398]&lt;br /&gt;
* Page 272 [http://forum.nofrag.com/forums/threads_rallonge/topics/200655/272]&lt;br /&gt;
&lt;br /&gt;
== Q ==&lt;br /&gt;
* [http://www.nofrag.com/2009/mai/30/31523/ Qualité nazi]&lt;br /&gt;
== S ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/259176/543#post_978560 Salaire Brut]&lt;br /&gt;
* [http://forum.nofrag.com/forums/threads_rallonge/topics/39437/13#post_41987 Snickers]&lt;br /&gt;
* [http://w.nofrag.com/Fichier:Ynbevl92.gif Singes dans une voiture jaune]&lt;br /&gt;
* [[Saint Axe]]. La dictature grammaticale sur Travian.&lt;br /&gt;
* Sur&#039;&#039;&#039;vi&#039;&#039;&#039;varium[http://forum.nofrag.com/forums/nofrag/topics/704430#post_704479]&lt;br /&gt;
&lt;br /&gt;
== T ==&lt;br /&gt;
* [[Tactifrais]]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/75909 Taper des mains]&lt;br /&gt;
* [https://www.youtube.com/watch?v=D_mU3LqGp0g Tuer, tuer, tuer]&lt;br /&gt;
* Ta gueule Biblix&lt;br /&gt;
&lt;br /&gt;
== W ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?p=400680#p400680 Une bouteille de Whisky]&lt;br /&gt;
&lt;br /&gt;
== V ==&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/419435 La voie du milieu et les gens qui roulent dessus]&lt;br /&gt;
* Violer avec de la frappance.&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Forum_NoFrag&amp;diff=2862</id>
		<title>Forum NoFrag</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Forum_NoFrag&amp;diff=2862"/>
		<updated>2018-08-17T07:08:26Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Le forum V2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Les racines du Mal.&lt;br /&gt;
&lt;br /&gt;
== Forum, le début ==&lt;br /&gt;
CeD et Dr.Loser, alors total noobz de l&#039;Internet, décident d&#039;utiliser tForum au lancement de NoFrag. Pourquoi tForum ? &amp;quot;C&#039;est le moins gros, donc ça doit aussi être le moins bordélique&amp;quot;. C&#039;était surtout un petit truc bricolé à l&#039;arrache par des amateurs et dont le support a cessé quelques années plus tard.&lt;br /&gt;
&lt;br /&gt;
== La lettre de motivation ==&lt;br /&gt;
Parce que les jeux vidéo, c&#039;est avant tout une passion de gros abrutis, NoFrag rajoute un questionnaire lors de l&#039;inscription en demandant aux candidats de rédiger une brève lettre de motivation. Dans la réalité, à partir du moment où les inscrits n&#039;écrivaient pas en langage SMS, ils étaient quasiment tous admis.&lt;br /&gt;
&lt;br /&gt;
== L&#039;apartheid ==&lt;br /&gt;
Parce que l&#039;idée semblait complètement conne, Dr.Loser propose de mettre en place l&#039;apartheid sur le forum. CeD et Netsabes, toujours avides de tester un truc débile, acceptent. &lt;br /&gt;
&lt;br /&gt;
A partir de ce moment, les personnes qui ratent le test de l&#039;inscription deviennent des &amp;quot;visiteurs&amp;quot; et n&#039;ont pas la possibilité de poster sur les forums des membres. Les news proposent alors deux types de commentaires : ceux des visiteurs (des analphabètes totalement cons) et ceux des membres (des cons lettrés).&lt;br /&gt;
&lt;br /&gt;
== La scission ==&lt;br /&gt;
Début 2005 est fermée une section particulière des forums (&amp;quot;l&#039;asile&amp;quot;, devenu &amp;quot;l&#039;hospice&amp;quot;) où la modération était beaucoup plus souple. Beaucoup d&#039;anciens membres sont bannis. Ils décident de créer leur propre site,  [http://lasile.fr/  l&#039;asile], qui aura droit à [https://www.lesitedecuisine.fr/forum/index.php  sa propre scission] quelques années plus tard.&lt;br /&gt;
&lt;br /&gt;
== Le grand cataclysme ==&lt;br /&gt;
Le 4 juillet 2007, Netsabes et Dr.Loser décident de désactiver le forum [http://www.nofrag.com/forums/] pour une raison à présent à mi-chemin entre #YOLO et &amp;quot;ils saoulent et on n&#039;a pas besoin d&#039;eux&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Les membres, tels des cafards refusant de crever, continueront d&#039;entretenir la communauté sur les blogs durant un an.&lt;br /&gt;
&lt;br /&gt;
== WeFrag ==&lt;br /&gt;
Le forum jusqu&#039;en 2017 a été créé en quelques jours par [[CeD]]. Il tournait sur une vieille version de Ruby que plus personne ne connaît. C&#039;était  le forum le plus épuré du web, dommage que personne ne soit là pour corriger les quelques bugs et la page d&#039;accueil qui ramait. Le bug le plus étrange faisait qu&#039;une personne se retrouve connectée avec le compte d&#039;un autre[http://forum.nofrag.com/forums/bugs/topics/833446]. Bizarrement, plus personne ne semble en avoir été témoin depuis fin 2015 ou début 2016.&lt;br /&gt;
&lt;br /&gt;
Pour s&#039;inscrire sur wefrag, il était demandé aux futurs membres de scanner leur carte d&#039;identité avec un code unique (qui faisait office de timestamp), en effet, l&#039;inscription n&#039;était pas anonyme. Ceci dans le but de limiter les tentatives de retour des bannis. Comme il n&#039;est pas légal en france de demander aux mineurs leur identité, le forum était réservé aux plus de 18 ans. Ce mode d&#039;inscription a toujours induit en erreur une partie des membres qui croyaient se trouver dans un espace sécurisé, ce qui explique leur propension à raconter leur vie dans le topic du cœur ou celui des beuveries. &lt;br /&gt;
&lt;br /&gt;
Une feature magique du forum était le bouton &amp;quot;new&amp;quot; jaune [[Fichier:new.png]] qui apparaissait sur les threads avec des messages non lus. Ce bouton était un lien vers le dernier message non lu du thread. Bizarrement, de nombreux membres ont mit plusieurs années à le découvrir.&lt;br /&gt;
&lt;br /&gt;
Le forum était composé des catégories suivantes :&lt;br /&gt;
* &#039;&#039;&#039;Débats&#039;&#039;&#039;[http://forum.nofrag.com/forums/debats] : Pour les discussions ouvertes, les échanges d&#039;avis et les polémiques. Dans ce sous-forum, vous n&#039;êtes pas modérateur des threads que vous créez, pour éviter les abus&lt;br /&gt;
* &#039;&#039;&#039;Partages&#039;&#039;&#039;[http://forum.nofrag.com/forums/partage] : Pour exposer son avis sur quelques chose, pour parler de ses passions, pour monter des projets. C&#039;était la partie la plus grosse du forum. Vous êtes modérateur des threads que vous y créez, afin d&#039;éviter qu&#039;ils ne dégénèrent, et pour limiter les polémiques&lt;br /&gt;
*&#039;&#039;&#039;Impressions&#039;&#039;&#039;[http://forum.nofrag.com/forums/impressions] : c&#039;était un forum créé suite à l&#039;explosion de partage, pour regrouper l&#039;ensemble des threads où on raconte ses impressions sur un jeu, un mod, un film, une fille.&lt;br /&gt;
*&#039;&#039;&#039;Entre-aide&#039;&#039;&#039;[http://forum.nofrag.com/forums/entre_aide] : Pour les coups de mains, pour demander quelle carte graphique acheter ou comment aménager son salon luxueux, c&#039;était le forum où on se faisait aider et où on aidait, et où on n&#039;aimait pas quand quelqu&#039;un clôture un thread. Vous êtes modérateur des threads que vous y créez, afin de pouvoir clôturer votre problème pour bien embêter ceux qui avaient un truc à ajouter. &lt;br /&gt;
*&#039;&#039;&#039;Jouer ensemble&#039;&#039;&#039;[http://forum.nofrag.com/forums/jouer] : C&#039;est là que s&#039;organisaient les parties entre membre de la [http://forum.nofrag/communauté communauté de Nofrag].&lt;br /&gt;
*&#039;&#039;&#039;Petites annonces&#039;&#039;&#039;[http://forum.nofrag.com/forums/petites_annonces] : pour vous faire arnaquer par des membres qui mentent sur la taille des clés USB ou pour vous débarrasser de votre vieux frigo. Vous êtes modérateur des threads que vous y créez, pour changer le montant des offres des gens qui postent dans vos annonces.&lt;br /&gt;
*&#039;&#039;&#039;Thread à Rallonge&#039;&#039;&#039;[http://forum.nofrag.com/forums/threads_rallonge] : C&#039;est ici que nofrag stockait les threads trop longs, pour éviter qu&#039;ils ne mangent les petits. On y trouvait donc le condensé des threads qui durent depuis longtemps, certains depuis 2008. &lt;br /&gt;
*&#039;&#039;&#039;News&#039;&#039;&#039;[http://forum.nofrag.com/forums/nofrag] : Sous forum regroupant un thread pour chaque news pour permettre à ceux dont l&#039;avis est hyper important de l&#039;exprimer. &lt;br /&gt;
*&#039;&#039;&#039;Bugs et suggestions&#039;&#039;&#039;[http://forum.nofrag.com/forums/bugs] : Sous forum technique destiné à signaler les problèmes pour s&#039;entendre dire qu&#039;on ne peut rien y faire avant la [[Nouvelle Version]], et pour suggérer des modifications qui seront bien évidemment ajoutées à la [[Nouvelle Version]]. &lt;br /&gt;
*&#039;&#039;&#039;Développement&#039;&#039;&#039; : Sous forum top secret pour faire croire qu&#039;il y avait une [[Nouvelle Version]] dans les tuyaux (ah ils sont malin à la [[noCorp]])&lt;br /&gt;
*&#039;&#039;&#039;Pro&#039;&#039;&#039; :  Dernier sous-forum où les [[admins]] racontaient comment ils partagent des saladiers de putes avec de la coke et choisissent les membres qu&#039;ils vont [[bannir]] incessamment.&lt;br /&gt;
&lt;br /&gt;
== Le forum V2 ==&lt;br /&gt;
A la suite d&#039;un appel au secours des admins de l&#039;époque sur le forum [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=35716] en 2016 et d&#039;un second qui concernait la tribune cassée [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=37655], une petite équipe s&#039;est formée autour de DrLoser : Bibiwan pour la mise en place d&#039;un forum sous phpbb, Elitius pour la partie CSS. Le 22 septembre 2017 (après un peu moins d&#039;un mois de boulot) était lancée la nouvelle version, toujours en production. Le gros du travail a été la migration du contenu de Wefrag vers le forum V2, consistant à simuler par des scripts l&#039;écriture d&#039;1 million de messages par les mécanismes proposés dans phpbb. L&#039;opération de migration en elle-même a duré 1 semaine.&lt;br /&gt;
&lt;br /&gt;
Ont été reprises les notions de tribune, de calendrier de jeu (WePlay), le découpage du forum dans sa quasi-totalité, les topics associés aux news.&lt;br /&gt;
&lt;br /&gt;
Plusieurs évolutions :&lt;br /&gt;
* Plus de demande de carte d&#039;identité à l&#039;inscription. Cependant, une sous-section du forum est réservée aux adultes et requiert de transmettre sa carte d&#039;identité à un administrateur pour validation.&lt;br /&gt;
* Des évolutions dans le découpage du forum :&lt;br /&gt;
** Plus de threads à rallonge&lt;br /&gt;
** Plus de modération par le créateur du topic, elle est désormais effectuée par les administrateurs sur signalement des messages.&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Forum_NoFrag&amp;diff=2861</id>
		<title>Forum NoFrag</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Forum_NoFrag&amp;diff=2861"/>
		<updated>2018-08-17T07:01:12Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Les racines du Mal.&lt;br /&gt;
&lt;br /&gt;
== Forum, le début ==&lt;br /&gt;
CeD et Dr.Loser, alors total noobz de l&#039;Internet, décident d&#039;utiliser tForum au lancement de NoFrag. Pourquoi tForum ? &amp;quot;C&#039;est le moins gros, donc ça doit aussi être le moins bordélique&amp;quot;. C&#039;était surtout un petit truc bricolé à l&#039;arrache par des amateurs et dont le support a cessé quelques années plus tard.&lt;br /&gt;
&lt;br /&gt;
== La lettre de motivation ==&lt;br /&gt;
Parce que les jeux vidéo, c&#039;est avant tout une passion de gros abrutis, NoFrag rajoute un questionnaire lors de l&#039;inscription en demandant aux candidats de rédiger une brève lettre de motivation. Dans la réalité, à partir du moment où les inscrits n&#039;écrivaient pas en langage SMS, ils étaient quasiment tous admis.&lt;br /&gt;
&lt;br /&gt;
== L&#039;apartheid ==&lt;br /&gt;
Parce que l&#039;idée semblait complètement conne, Dr.Loser propose de mettre en place l&#039;apartheid sur le forum. CeD et Netsabes, toujours avides de tester un truc débile, acceptent. &lt;br /&gt;
&lt;br /&gt;
A partir de ce moment, les personnes qui ratent le test de l&#039;inscription deviennent des &amp;quot;visiteurs&amp;quot; et n&#039;ont pas la possibilité de poster sur les forums des membres. Les news proposent alors deux types de commentaires : ceux des visiteurs (des analphabètes totalement cons) et ceux des membres (des cons lettrés).&lt;br /&gt;
&lt;br /&gt;
== La scission ==&lt;br /&gt;
Début 2005 est fermée une section particulière des forums (&amp;quot;l&#039;asile&amp;quot;, devenu &amp;quot;l&#039;hospice&amp;quot;) où la modération était beaucoup plus souple. Beaucoup d&#039;anciens membres sont bannis. Ils décident de créer leur propre site,  [http://lasile.fr/  l&#039;asile], qui aura droit à [https://www.lesitedecuisine.fr/forum/index.php  sa propre scission] quelques années plus tard.&lt;br /&gt;
&lt;br /&gt;
== Le grand cataclysme ==&lt;br /&gt;
Le 4 juillet 2007, Netsabes et Dr.Loser décident de désactiver le forum [http://www.nofrag.com/forums/] pour une raison à présent à mi-chemin entre #YOLO et &amp;quot;ils saoulent et on n&#039;a pas besoin d&#039;eux&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Les membres, tels des cafards refusant de crever, continueront d&#039;entretenir la communauté sur les blogs durant un an.&lt;br /&gt;
&lt;br /&gt;
== WeFrag ==&lt;br /&gt;
Le forum jusqu&#039;en 2017 a été créé en quelques jours par [[CeD]]. Il tournait sur une vieille version de Ruby que plus personne ne connaît. C&#039;était  le forum le plus épuré du web, dommage que personne ne soit là pour corriger les quelques bugs et la page d&#039;accueil qui ramait. Le bug le plus étrange faisait qu&#039;une personne se retrouve connectée avec le compte d&#039;un autre[http://forum.nofrag.com/forums/bugs/topics/833446]. Bizarrement, plus personne ne semble en avoir été témoin depuis fin 2015 ou début 2016.&lt;br /&gt;
&lt;br /&gt;
Pour s&#039;inscrire sur wefrag, il était demandé aux futurs membres de scanner leur carte d&#039;identité avec un code unique (qui faisait office de timestamp), en effet, l&#039;inscription n&#039;était pas anonyme. Ceci dans le but de limiter les tentatives de retour des bannis. Comme il n&#039;est pas légal en france de demander aux mineurs leur identité, le forum était réservé aux plus de 18 ans. Ce mode d&#039;inscription a toujours induit en erreur une partie des membres qui croyaient se trouver dans un espace sécurisé, ce qui explique leur propension à raconter leur vie dans le topic du cœur ou celui des beuveries. &lt;br /&gt;
&lt;br /&gt;
Une feature magique du forum était le bouton &amp;quot;new&amp;quot; jaune [[Fichier:new.png]] qui apparaissait sur les threads avec des messages non lus. Ce bouton était un lien vers le dernier message non lu du thread. Bizarrement, de nombreux membres ont mit plusieurs années à le découvrir.&lt;br /&gt;
&lt;br /&gt;
Le forum était composé des catégories suivantes :&lt;br /&gt;
* &#039;&#039;&#039;Débats&#039;&#039;&#039;[http://forum.nofrag.com/forums/debats] : Pour les discussions ouvertes, les échanges d&#039;avis et les polémiques. Dans ce sous-forum, vous n&#039;êtes pas modérateur des threads que vous créez, pour éviter les abus&lt;br /&gt;
* &#039;&#039;&#039;Partages&#039;&#039;&#039;[http://forum.nofrag.com/forums/partage] : Pour exposer son avis sur quelques chose, pour parler de ses passions, pour monter des projets. C&#039;était la partie la plus grosse du forum. Vous êtes modérateur des threads que vous y créez, afin d&#039;éviter qu&#039;ils ne dégénèrent, et pour limiter les polémiques&lt;br /&gt;
*&#039;&#039;&#039;Impressions&#039;&#039;&#039;[http://forum.nofrag.com/forums/impressions] : c&#039;était un forum créé suite à l&#039;explosion de partage, pour regrouper l&#039;ensemble des threads où on raconte ses impressions sur un jeu, un mod, un film, une fille.&lt;br /&gt;
*&#039;&#039;&#039;Entre-aide&#039;&#039;&#039;[http://forum.nofrag.com/forums/entre_aide] : Pour les coups de mains, pour demander quelle carte graphique acheter ou comment aménager son salon luxueux, c&#039;était le forum où on se faisait aider et où on aidait, et où on n&#039;aimait pas quand quelqu&#039;un clôture un thread. Vous êtes modérateur des threads que vous y créez, afin de pouvoir clôturer votre problème pour bien embêter ceux qui avaient un truc à ajouter. &lt;br /&gt;
*&#039;&#039;&#039;Jouer ensemble&#039;&#039;&#039;[http://forum.nofrag.com/forums/jouer] : C&#039;est là que s&#039;organisaient les parties entre membre de la [http://forum.nofrag/communauté communauté de Nofrag].&lt;br /&gt;
*&#039;&#039;&#039;Petites annonces&#039;&#039;&#039;[http://forum.nofrag.com/forums/petites_annonces] : pour vous faire arnaquer par des membres qui mentent sur la taille des clés USB ou pour vous débarrasser de votre vieux frigo. Vous êtes modérateur des threads que vous y créez, pour changer le montant des offres des gens qui postent dans vos annonces.&lt;br /&gt;
*&#039;&#039;&#039;Thread à Rallonge&#039;&#039;&#039;[http://forum.nofrag.com/forums/threads_rallonge] : C&#039;est ici que nofrag stockait les threads trop longs, pour éviter qu&#039;ils ne mangent les petits. On y trouvait donc le condensé des threads qui durent depuis longtemps, certains depuis 2008. &lt;br /&gt;
*&#039;&#039;&#039;News&#039;&#039;&#039;[http://forum.nofrag.com/forums/nofrag] : Sous forum regroupant un thread pour chaque news pour permettre à ceux dont l&#039;avis est hyper important de l&#039;exprimer. &lt;br /&gt;
*&#039;&#039;&#039;Bugs et suggestions&#039;&#039;&#039;[http://forum.nofrag.com/forums/bugs] : Sous forum technique destiné à signaler les problèmes pour s&#039;entendre dire qu&#039;on ne peut rien y faire avant la [[Nouvelle Version]], et pour suggérer des modifications qui seront bien évidemment ajoutées à la [[Nouvelle Version]]. &lt;br /&gt;
*&#039;&#039;&#039;Développement&#039;&#039;&#039; : Sous forum top secret pour faire croire qu&#039;il y avait une [[Nouvelle Version]] dans les tuyaux (ah ils sont malin à la [[noCorp]])&lt;br /&gt;
*&#039;&#039;&#039;Pro&#039;&#039;&#039; :  Dernier sous-forum où les [[admins]] racontaient comment ils partagent des saladiers de putes avec de la coke et choisissent les membres qu&#039;ils vont [[bannir]] incessamment.&lt;br /&gt;
&lt;br /&gt;
== Le forum V2 ==&lt;br /&gt;
A la suite d&#039;un appel au secours des admins de l&#039;époque sur le forum [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=35716] en 2016 et d&#039;un second qui concernait la tribune cassée [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=37655], une petite équipe s&#039;est formée autour de DrLoser : Bibiwan pour la mise en place d&#039;un forum sous phpbb, Elitius pour la partie CSS. Le 22 septembre 2017 (après un peu moins d&#039;un mois de boulot) était lancée la nouvelle version, toujours en production.&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Forum_NoFrag&amp;diff=2860</id>
		<title>Forum NoFrag</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Forum_NoFrag&amp;diff=2860"/>
		<updated>2018-08-17T06:53:27Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Les racines du Mal.&lt;br /&gt;
&lt;br /&gt;
== Forum, le début ==&lt;br /&gt;
CeD et Dr.Loser, alors total noobz de l&#039;Internet, décident d&#039;utiliser tForum au lancement de NoFrag. Pourquoi tForum ? &amp;quot;C&#039;est le moins gros, donc ça doit aussi être le moins bordélique&amp;quot;. C&#039;était surtout un petit truc bricolé à l&#039;arrache par des amateurs et dont le support a cessé quelques années plus tard.&lt;br /&gt;
&lt;br /&gt;
== La lettre de motivation ==&lt;br /&gt;
Parce que les jeux vidéo, c&#039;est avant tout une passion de gros abrutis, NoFrag rajoute un questionnaire lors de l&#039;inscription en demandant aux candidats de rédiger une brève lettre de motivation. Dans la réalité, à partir du moment où les inscrits n&#039;écrivaient pas en langage SMS, ils étaient quasiment tous admis.&lt;br /&gt;
&lt;br /&gt;
== L&#039;apartheid ==&lt;br /&gt;
Parce que l&#039;idée semblait complètement conne, Dr.Loser propose de mettre en place l&#039;apartheid sur le forum. CeD et Netsabes, toujours avides de tester un truc débile, acceptent. &lt;br /&gt;
&lt;br /&gt;
A partir de ce moment, les personnes qui ratent le test de l&#039;inscription deviennent des &amp;quot;visiteurs&amp;quot; et n&#039;ont pas la possibilité de poster sur les forums des membres. Les news proposent alors deux types de commentaires : ceux des visiteurs (des analphabètes totalement cons) et ceux des membres (des cons lettrés).&lt;br /&gt;
&lt;br /&gt;
== La scission ==&lt;br /&gt;
Début 2005 est fermée une section particulière des forums (&amp;quot;l&#039;asile&amp;quot;, devenu &amp;quot;l&#039;hospice&amp;quot;) où la modération était beaucoup plus souple. Beaucoup d&#039;anciens membres sont bannis. Ils décident de créer leur propre site,  [http://lasile.fr/  l&#039;asile], qui aura droit à [https://www.lesitedecuisine.fr/forum/index.php  sa propre scission] quelques années plus tard.&lt;br /&gt;
&lt;br /&gt;
== Le grand cataclysme ==&lt;br /&gt;
Le 4 juillet 2007, Netsabes et Dr.Loser décident de désactiver le forum [http://www.nofrag.com/forums/] pour une raison à présent à mi-chemin entre #YOLO et &amp;quot;ils saoulent et on n&#039;a pas besoin d&#039;eux&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Les membres, tels des cafards refusant de crever, continueront d&#039;entretenir la communauté sur les blogs durant un an.&lt;br /&gt;
&lt;br /&gt;
== WeFrag ==&lt;br /&gt;
Le forum jusqu&#039;en 2017 a été créé en quelques jours par [[CeD]]. Il tournait sur une vieille version de Ruby que plus personne ne connaît. C&#039;était  le forum le plus épuré du web, dommage que personne ne soit là pour corriger les quelques bugs et la page d&#039;accueil qui ramait. Le bug le plus étrange faisait qu&#039;une personne se retrouve connectée avec le compte d&#039;un autre[http://forum.nofrag.com/forums/bugs/topics/833446]. Bizarrement, plus personne ne semble en avoir été témoin depuis fin 2015 ou début 2016.&lt;br /&gt;
&lt;br /&gt;
Pour s&#039;inscrire sur wefrag, il était demandé aux futurs membres de scanner leur carte d&#039;identité avec un code unique (qui faisait office de timestamp), en effet, l&#039;inscription n&#039;était pas anonyme. Ceci dans le but de limiter les tentatives de retour des bannis. Comme il n&#039;est pas légal en france de demander aux mineurs leur identité, le forum était réservé aux plus de 18 ans. Ce mode d&#039;inscription a toujours induit en erreur une partie des membres qui croyaient se trouver dans un espace sécurisé, ce qui explique leur propension à raconter leur vie dans le topic du cœur ou celui des beuveries. &lt;br /&gt;
&lt;br /&gt;
Une feature magique du forum était le bouton &amp;quot;new&amp;quot; jaune [[Fichier:new.png]] qui apparaissait sur les threads avec des messages non lus. Ce bouton était un lien vers le dernier message non lu du thread. Bizarrement, de nombreux membres ont mit plusieurs années à le découvrir.&lt;br /&gt;
&lt;br /&gt;
Le forum était composé des catégories suivantes :&lt;br /&gt;
* &#039;&#039;&#039;Débats&#039;&#039;&#039;[http://forum.nofrag.com/forums/debats] : Pour les discussions ouvertes, les échanges d&#039;avis et les polémiques. Dans ce sous-forum, vous n&#039;êtes pas modérateur des threads que vous créez, pour éviter les abus&lt;br /&gt;
* &#039;&#039;&#039;Partages&#039;&#039;&#039;[http://forum.nofrag.com/forums/partage] : Pour exposer son avis sur quelques chose, pour parler de ses passions, pour monter des projets. C&#039;était la partie la plus grosse du forum. Vous êtes modérateur des threads que vous y créez, afin d&#039;éviter qu&#039;ils ne dégénèrent, et pour limiter les polémiques&lt;br /&gt;
*&#039;&#039;&#039;Impressions&#039;&#039;&#039;[http://forum.nofrag.com/forums/impressions] : c&#039;était un forum créé suite à l&#039;explosion de partage, pour regrouper l&#039;ensemble des threads où on raconte ses impressions sur un jeu, un mod, un film, une fille.&lt;br /&gt;
*&#039;&#039;&#039;Entre-aide&#039;&#039;&#039;[http://forum.nofrag.com/forums/entre_aide] : Pour les coups de mains, pour demander quelle carte graphique acheter ou comment aménager son salon luxueux, c&#039;était le forum où on se faisait aider et où on aidait, et où on n&#039;aimait pas quand quelqu&#039;un clôture un thread. Vous êtes modérateur des threads que vous y créez, afin de pouvoir clôturer votre problème pour bien embêter ceux qui avaient un truc à ajouter. &lt;br /&gt;
*&#039;&#039;&#039;Jouer ensemble&#039;&#039;&#039;[http://forum.nofrag.com/forums/jouer] : C&#039;est là que s&#039;organisaient les parties entre membre de la [http://forum.nofrag/communauté communauté de Nofrag].&lt;br /&gt;
*&#039;&#039;&#039;Petites annonces&#039;&#039;&#039;[http://forum.nofrag.com/forums/petites_annonces] : pour vous faire arnaquer par des membres qui mentent sur la taille des clés USB ou pour vous débarrasser de votre vieux frigo. Vous êtes modérateur des threads que vous y créez, pour changer le montant des offres des gens qui postent dans vos annonces.&lt;br /&gt;
*&#039;&#039;&#039;Thread à Rallonge&#039;&#039;&#039;[http://forum.nofrag.com/forums/threads_rallonge] : C&#039;est ici que nofrag stockait les threads trop longs, pour éviter qu&#039;ils ne mangent les petits. On y trouvait donc le condensé des threads qui durent depuis longtemps, certains depuis 2008. &lt;br /&gt;
*&#039;&#039;&#039;News&#039;&#039;&#039;[http://forum.nofrag.com/forums/nofrag] : Sous forum regroupant un thread pour chaque news pour permettre à ceux dont l&#039;avis est hyper important de l&#039;exprimer. &lt;br /&gt;
*&#039;&#039;&#039;Bugs et suggestions&#039;&#039;&#039;[http://forum.nofrag.com/forums/bugs] : Sous forum technique destiné à signaler les problèmes pour s&#039;entendre dire qu&#039;on ne peut rien y faire avant la [[Nouvelle Version]], et pour suggérer des modifications qui seront bien évidemment ajoutées à la [[Nouvelle Version]]. &lt;br /&gt;
*&#039;&#039;&#039;Développement&#039;&#039;&#039; : Sous forum top secret pour faire croire qu&#039;il y avait une [[Nouvelle Version]] dans les tuyaux (ah ils sont malin à la [[noCorp]])&lt;br /&gt;
*&#039;&#039;&#039;Pro&#039;&#039;&#039; :  Dernier sous-forum où les [[admins]] racontaient comment ils partagent des saladiers de putes avec de la coke et choisissent les membres qu&#039;ils vont [[bannir]] incessamment.&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Trombinoscope&amp;diff=2859</id>
		<title>Trombinoscope</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Trombinoscope&amp;diff=2859"/>
		<updated>2018-08-17T06:49:32Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sujet de discussion [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=39038] où tous les [[Nofragés]] peuvent mettre en ligne leur acné ou leurs rides suivant qu&#039;ils aient connu le [[Xåñàx Ñ0w]] ou non.&lt;br /&gt;
&lt;br /&gt;
Le taux de barbe y est d&#039;au moins 70%.&lt;br /&gt;
&lt;br /&gt;
Le taux d&#039;armes à feu y est d&#039;au moins ElTynooky%&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2858</id>
		<title>Les topics légendaires du forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2858"/>
		<updated>2018-08-17T06:49:09Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&amp;#039;Histoire. Putain c&amp;#039;est beau. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Le plus long thread du forum ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=37981 Les gens ou choses qui vous donnent envie de tuer] - plus de 40.000 réponses, 17 messages par jour en moyenne ([https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=8048 son premier topic, pour mémoire]).&lt;br /&gt;
&lt;br /&gt;
== Les études sociologiques du Docteur Loser ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=4897 Quand vous vous faites prendre les fesses, combien facturez-vous ?]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=4&amp;amp;t=6018 La crotte claque porte]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=1782 Assis debout caca]&lt;br /&gt;
&lt;br /&gt;
== Les autres débats sociologiques majeurs ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=6730 Pipi sous la douche]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=16600 Rouler au milieu]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=15993 Les vieux qui puent - mais pourquoi pas autant qu&#039;on le pense ?]&lt;br /&gt;
&lt;br /&gt;
== Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&#039;Histoire. Putain c&#039;est beau. ==&lt;br /&gt;
&lt;br /&gt;
* Le [[Trombinoscope]] [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=39038]&lt;br /&gt;
* [https://web.archive.org/web/20050206035248/http://www.nofrag.com/forums/halflife2/22884/  Le mod Viette Evil !!! venez !!!]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=4&amp;amp;t=14508 Paranormal activity... chez moi]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2857</id>
		<title>Les topics légendaires du forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2857"/>
		<updated>2018-08-17T06:48:06Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Les autres débats sociologiques majeurs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Le plus long thread du forum ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=37981 Les gens ou choses qui vous donnent envie de tuer] - plus de 40.000 réponses, 17 messages par jour en moyenne ([https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=8048 son premier topic, pour mémoire]).&lt;br /&gt;
&lt;br /&gt;
== Les études sociologiques du Docteur Loser ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=4897 Quand vous vous faites prendre les fesses, combien facturez-vous ?]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=4&amp;amp;t=6018 La crotte claque porte]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=1782 Assis debout caca]&lt;br /&gt;
&lt;br /&gt;
== Les autres débats sociologiques majeurs ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=6730 Pipi sous la douche]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=16600 Rouler au milieu]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=15993 Les vieux qui puent - mais pourquoi pas autant qu&#039;on le pense ?]&lt;br /&gt;
&lt;br /&gt;
== Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&#039;Histoire. Putain c&#039;est beau. ==&lt;br /&gt;
&lt;br /&gt;
* Le [[Trombinoscope]] [http://forum.nofrag.com/forums/partage/topics/735859]&lt;br /&gt;
* [https://web.archive.org/web/20050206035248/http://www.nofrag.com/forums/halflife2/22884/  Le mod Viette Evil !!! venez !!!]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/348580 Paranormal activity... chez moi]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2856</id>
		<title>Les topics légendaires du forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2856"/>
		<updated>2018-08-17T06:46:31Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Les études sociologiques du Docteur Loser */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Le plus long thread du forum ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=37981 Les gens ou choses qui vous donnent envie de tuer] - plus de 40.000 réponses, 17 messages par jour en moyenne ([https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=8048 son premier topic, pour mémoire]).&lt;br /&gt;
&lt;br /&gt;
== Les études sociologiques du Docteur Loser ==&lt;br /&gt;
&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=6&amp;amp;t=4897 Quand vous vous faites prendre les fesses, combien facturez-vous ?]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=4&amp;amp;t=6018 La crotte claque porte]&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=3&amp;amp;t=1782 Assis debout caca]&lt;br /&gt;
&lt;br /&gt;
== Les autres débats sociologiques majeurs ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/114074 Pipi sous la douche]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/419435 Rouler au milieu]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/397591 Les vieux qui puent - mais pourquoi pas autant qu&#039;on le pense ?]&lt;br /&gt;
&lt;br /&gt;
== Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&#039;Histoire. Putain c&#039;est beau. ==&lt;br /&gt;
&lt;br /&gt;
* Le [[Trombinoscope]] [http://forum.nofrag.com/forums/partage/topics/735859]&lt;br /&gt;
* [https://web.archive.org/web/20050206035248/http://www.nofrag.com/forums/halflife2/22884/  Le mod Viette Evil !!! venez !!!]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/348580 Paranormal activity... chez moi]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2855</id>
		<title>Les topics légendaires du forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2855"/>
		<updated>2018-08-17T06:44:54Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Le plus long thread du forum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Le plus long thread du forum ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=37981 Les gens ou choses qui vous donnent envie de tuer] - plus de 40.000 réponses, 17 messages par jour en moyenne ([https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=8048 son premier topic, pour mémoire]).&lt;br /&gt;
&lt;br /&gt;
== Les études sociologiques du Docteur Loser ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/entre_aide/topics/67970 Quand vous vous faites prendre les fesses, combien facturez-vous ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/94169 La crotte claque porte]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/10179 Assis debout caca]&lt;br /&gt;
&lt;br /&gt;
== Les autres débats sociologiques majeurs ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/114074 Pipi sous la douche]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/419435 Rouler au milieu]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/397591 Les vieux qui puent - mais pourquoi pas autant qu&#039;on le pense ?]&lt;br /&gt;
&lt;br /&gt;
== Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&#039;Histoire. Putain c&#039;est beau. ==&lt;br /&gt;
&lt;br /&gt;
* Le [[Trombinoscope]] [http://forum.nofrag.com/forums/partage/topics/735859]&lt;br /&gt;
* [https://web.archive.org/web/20050206035248/http://www.nofrag.com/forums/halflife2/22884/  Le mod Viette Evil !!! venez !!!]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/348580 Paranormal activity... chez moi]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2854</id>
		<title>Les topics légendaires du forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2854"/>
		<updated>2018-08-17T06:44:44Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Le plus long thread du forum ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=37981 Les gens ou choses qui vous donnent envie de tuer] - plus de 40.000 réponses, 17 messages par jour en moyenne [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=8048 son premier topic, pour mémoire].&lt;br /&gt;
&lt;br /&gt;
== Les études sociologiques du Docteur Loser ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/entre_aide/topics/67970 Quand vous vous faites prendre les fesses, combien facturez-vous ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/94169 La crotte claque porte]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/10179 Assis debout caca]&lt;br /&gt;
&lt;br /&gt;
== Les autres débats sociologiques majeurs ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/114074 Pipi sous la douche]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/419435 Rouler au milieu]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/397591 Les vieux qui puent - mais pourquoi pas autant qu&#039;on le pense ?]&lt;br /&gt;
&lt;br /&gt;
== Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&#039;Histoire. Putain c&#039;est beau. ==&lt;br /&gt;
&lt;br /&gt;
* Le [[Trombinoscope]] [http://forum.nofrag.com/forums/partage/topics/735859]&lt;br /&gt;
* [https://web.archive.org/web/20050206035248/http://www.nofrag.com/forums/halflife2/22884/  Le mod Viette Evil !!! venez !!!]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/348580 Paranormal activity... chez moi]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2853</id>
		<title>Les topics légendaires du forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Les_topics_l%C3%A9gendaires_du_forum&amp;diff=2853"/>
		<updated>2018-08-17T06:44:26Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Le plus long thread du forum */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Le plus long thread du forum ==&lt;br /&gt;
* [https://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=37981 Les gens ou choses qui vous donnent envie de tuer] - plus de 40.000 réponses, 17 messages par jour en moyenne [hhttps://forum.nofrag.com/viewtopic.php?f=17&amp;amp;t=8048 son premier topic, pour mémoire].&lt;br /&gt;
&lt;br /&gt;
== Les études sociologiques du Docteur Loser ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/entre_aide/topics/67970 Quand vous vous faites prendre les fesses, combien facturez-vous ?]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/94169 La crotte claque porte]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/10179 Assis debout caca]&lt;br /&gt;
&lt;br /&gt;
== Les autres débats sociologiques majeurs ==&lt;br /&gt;
&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/114074 Pipi sous la douche]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/419435 Rouler au milieu]&lt;br /&gt;
* [http://forum.nofrag.com/forums/debats/topics/397591 Les vieux qui puent - mais pourquoi pas autant qu&#039;on le pense ?]&lt;br /&gt;
&lt;br /&gt;
== Les topics légendaires, gravés à jamais dans le marbre chatoyant du grand temple de l&#039;Histoire. Putain c&#039;est beau. ==&lt;br /&gt;
&lt;br /&gt;
* Le [[Trombinoscope]] [http://forum.nofrag.com/forums/partage/topics/735859]&lt;br /&gt;
* [https://web.archive.org/web/20050206035248/http://www.nofrag.com/forums/halflife2/22884/  Le mod Viette Evil !!! venez !!!]&lt;br /&gt;
* [http://forum.nofrag.com/forums/partage/topics/348580 Paranormal activity... chez moi]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2395</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2395"/>
		<updated>2017-08-31T15:31:21Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
* Ancien forum (à peu près) : https://github.com/Conardo/wefrag&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email et ancien user wefrag, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On crée une table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les tables des topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Envoi par mail des mots de passe par un batch (ou outil genre mailchimp ?)  en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2394</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2394"/>
		<updated>2017-08-31T15:30:45Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
* Ancien forum (à peu près) : https://github.com/Conardo/wefrag&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email et ancien user wefrag, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On crée une table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les tables des topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2393</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2393"/>
		<updated>2017-08-31T15:29:58Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
* Ancien forum (à peu près) : https://github.com/Conardo/wefrag&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email et ancien user wefrag, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On crée une table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les tables des topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2392</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2392"/>
		<updated>2017-08-31T15:29:30Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
* Ancien forum (à peu près) : https://github.com/Conardo/wefrag&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email et ancien user wefrag, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On crée une table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2391</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2391"/>
		<updated>2017-08-31T15:29:11Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
* Ancien forum (à peu près) : https://github.com/Conardo/wefrag&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email et ancien user wefrag, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=Accueil&amp;diff=2390</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=Accueil&amp;diff=2390"/>
		<updated>2017-08-31T15:09:22Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* NoFrag.com */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div id=&amp;quot;mainpage_topbox&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;mainpage_pagetitle&amp;quot;&amp;gt;&#039;&#039;&#039;Bienvenue sur le NoWiki&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;mf-intro&amp;quot;&amp;gt;Le NoWiki est une tentative qui a pour but de compiler l&#039;histoire de [http://www.nofrag.com/ NoFrag], de son site, son forum, ses membres ou toute autre chose en rapport avec NoFrag. Chacun est libre d&#039;apporter ses informations et de modifier toutes les pages du wiki. Dans la mesure du possible, il est recommandé d’étayer le texte avec des références (sources, images, vidéos, liens...).&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mainpage_boxcontents&amp;quot;&amp;gt;&amp;lt;div id=&amp;quot;mf-intro&amp;quot;&amp;gt;&lt;br /&gt;
== Pour démarrer ==&lt;br /&gt;
* Posez votre gamepad et lavez-vous les mains 3 fois.&lt;br /&gt;
* Le NoWiki utilise le logiciel MediaWiki qui possède un formatage particulier pour par exemple mettre en gras ou créer des liens. Plus d&#039;infos à propos du [https://www.mediawiki.org/wiki/Help:Formatting/fr formatage] et des [https://www.mediawiki.org/wiki/Help:Links/fr liens]..&lt;br /&gt;
* Par défaut, les pages sont visibles par tous. [[Mode d&#039;emploi pour restreindre la visibilité d&#039;une page aux utilisateurs connectés]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NoFrag.com ==&lt;br /&gt;
* [[NoFrag|L&#039;histoire de NoFrag.com]]&lt;br /&gt;
* [[Les vidéos Nofrag]]&lt;br /&gt;
* [[Les bilans annuels des FPS]]&lt;br /&gt;
* [[Les articles majeurs de NoFrag.com]]&lt;br /&gt;
* [[Quick_Load‎|Quick Load‎, le podcast officiel]]&lt;br /&gt;
* [[V2|Migration de nofrag vers wordpress + phpbb]]&lt;br /&gt;
&lt;br /&gt;
== Le(s) Forum(s) ==&lt;br /&gt;
&lt;br /&gt;
* [[Forum NoFrag|L&#039;histoire du forum]]&lt;br /&gt;
* [[Les topics légendaires du forum]]&lt;br /&gt;
* [[Les membres de la communauté]]&lt;br /&gt;
* [[Les memes de Nofrag]]&lt;br /&gt;
* [[Nofrag, source de savoir]]&lt;br /&gt;
* [[Les créations et projets des membres]]&lt;br /&gt;
* [[FYEO:Les métiers des membres]]&lt;br /&gt;
* La [[Tribune]]&lt;br /&gt;
* Etc.&lt;br /&gt;
&lt;br /&gt;
== Les pages consacrées aux FPS ==&lt;br /&gt;
&lt;br /&gt;
* [[Battlefield 1]]&lt;br /&gt;
* [[Overwatch]]&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2389</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2389"/>
		<updated>2017-08-31T15:08:18Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Objectif */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
* Ancien forum (à peu près) : https://github.com/Conardo/wefrag&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2388</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2388"/>
		<updated>2017-08-31T15:04:41Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Architecture applicative */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
* Plug-in spoiler : https://www.phpbb-fr.com/customise/db/bbcode/bbcode_spoiler/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2387</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2387"/>
		<updated>2017-08-31T14:46:58Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2386</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2386"/>
		<updated>2017-08-31T14:34:19Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2385</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2385"/>
		<updated>2017-08-31T14:33:49Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en invitant l&#039;utilisateur à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2384</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2384"/>
		<updated>2017-08-31T14:33:26Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch en les invitant à le changer au premier login.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2383</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2383"/>
		<updated>2017-08-31T14:32:15Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://github.com/DakinQuelia/phpBB31-Moderate-Own-Topics&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2382</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2382"/>
		<updated>2017-08-31T14:28:58Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Architecture applicative */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://phpbb-extensions.ga/extensions/dakinquelia/moderateowntopics.html&lt;br /&gt;
* Plug-in de tribune : https://www.phpbb.com/customise/db/extension/ajax_shoutbox/&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2381</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2381"/>
		<updated>2017-08-31T14:28:03Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Architecture applicative ==&lt;br /&gt;
* phpbb 3.2&lt;br /&gt;
* Plug-in de modération des topics créés par l&#039;utilisateur : https://phpbb-extensions.ga/extensions/dakinquelia/moderateowntopics.html&lt;br /&gt;
* Plug-in de tribune : &lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2380</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2380"/>
		<updated>2017-08-31T14:21:21Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** Login sur phpbb via l&#039;api&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2379</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2379"/>
		<updated>2017-08-31T14:20:06Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic trié par date.&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** login&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2378</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2378"/>
		<updated>2017-08-31T14:19:29Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** login&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Passage des utilisateurs habilités en admin (manuel).&lt;br /&gt;
** Envoi par mail des mots de passe par un batch.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2377</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2377"/>
		<updated>2017-08-31T14:17:58Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* &#039;&#039;&#039; Proposition de traitement :&#039;&#039;&#039;&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** login&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Envoi par mail des mots de passe.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2376</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2376"/>
		<updated>2017-08-31T14:17:34Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Planification :&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** login&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
** Envoi par mail des mots de passe.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2375</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2375"/>
		<updated>2017-08-31T14:16:50Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Planification :&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** login&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
**** on stocke dans un fichier le numéro du topic renvoyé par la méthode de création avec l&#039;id de l&#039;ancien topic pour l&#039;utiliser sur la table de tracking de lecture (table de correspondance).&lt;br /&gt;
*** message suivant&lt;br /&gt;
** On traite la table de tracking en utilisant la table de correspondance.&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2374</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2374"/>
		<updated>2017-08-31T14:11:20Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Planification :&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb et mot de passe provisoire.&lt;br /&gt;
** On modifie les topics et posts pour mettre les bons numéros de catégorie / forums manuellement.&lt;br /&gt;
** On traite les topics.&lt;br /&gt;
*** Pour chaque message de chaque topic&lt;br /&gt;
**** Récupérer login et mdp provisoire de l&#039;auteur du message&lt;br /&gt;
**** login&lt;br /&gt;
**** si premier message de topic, message de type post&lt;br /&gt;
**** sinon, message de type reply&lt;br /&gt;
**** &#039;&#039;&#039;Remarque : les liens vers topics et posts contenus dans les message ne peuvent pas être mis à jour car on ne connait pas à l&#039;avance le numéro du message…&#039;&#039;&#039;&lt;br /&gt;
*** message suivant&lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; topics_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2373</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2373"/>
		<updated>2017-08-31T13:57:59Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Transposition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Planification :&lt;br /&gt;
** Migration manuelle des catégories et forums&lt;br /&gt;
** Migration de tous les utilisateurs avec pour groupe &#039;&#039;&#039;registered&#039;&#039;&#039;.&lt;br /&gt;
*** On génère les mots de passe qu&#039;on stocke avec login et email, on traitera le fichier en batch pour envoyer les mots de passe à chacun par mail.&lt;br /&gt;
*** On récupère en csv la table de correspondance entre iduser wefrag et iduser phpbb.&lt;br /&gt;
&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2372</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2372"/>
		<updated>2017-08-31T13:43:18Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* phpbb_topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2371</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2371"/>
		<updated>2017-08-31T13:42:56Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* phpbb_topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testpost.php github].&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2370</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2370"/>
		<updated>2017-08-31T13:42:24Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Table phpbb_users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
&lt;br /&gt;
  Test effectué sous [https://github.com/bibiwan/migrationforumwefragv2/blob/master/testuser.php github].&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2369</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2369"/>
		<updated>2017-08-31T12:34:31Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Procédure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
* Partage sur git : [https://github.com/bibiwan/migrationforumwefragv2]&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2368</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2368"/>
		<updated>2017-08-31T11:27:48Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* Table phpbb_users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API phpbb add_users]&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2367</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2367"/>
		<updated>2017-08-31T11:26:17Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* phpbb_topics_posted */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API add_users]&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
  Non nécessaire si utilisation de l&#039;api à priori.&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2366</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2366"/>
		<updated>2017-08-31T11:25:19Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* phpbb_topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API add_users]&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
  Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
&lt;br /&gt;
  À étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
	<entry>
		<id>https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2365</id>
		<title>V2 Migration Forum</title>
		<link rel="alternate" type="text/html" href="https://wiki.nofrag.com/index.php?title=V2_Migration_Forum&amp;diff=2365"/>
		<updated>2017-08-31T11:24:26Z</updated>

		<summary type="html">&lt;p&gt;Bibiwan : /* phpbb_forums */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objectif ==&lt;br /&gt;
* Basculer le forum vers phpbb 3.2&lt;br /&gt;
&lt;br /&gt;
== Procédure ==&lt;br /&gt;
=== Analyse ===&lt;br /&gt;
* Récupérer [http://nofrag.com/temporary/dumpforum.sql le dump du forum].&lt;br /&gt;
* Installer un xampp ou équivalent&lt;br /&gt;
* Installer phpbb sur son poste&lt;br /&gt;
* Utiliser DBeaver ou tout autre autre outil équivalent pour comparer les tables phpbb avec celles du forum (travail manuel)&lt;br /&gt;
=== Transposition ===&lt;br /&gt;
* Définir l&#039;ordre de traitement des tables&lt;br /&gt;
 users_groups =&amp;gt; users =&amp;gt; user_group &lt;br /&gt;
 categories =&amp;gt; forums =&amp;gt; topics =&amp;gt; posts =&amp;gt; forums_tracks (à consolider)&lt;br /&gt;
 manuellement : acl des groupes&lt;br /&gt;
&lt;br /&gt;
* Produire une procédure par table&lt;br /&gt;
&lt;br /&gt;
== Liste des tables ==&lt;br /&gt;
=== Table phpbb_users ===&lt;br /&gt;
  Voir pour utiliser [https://wiki.phpbb.com/Add_users l&#039;API add_users]&lt;br /&gt;
   &lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* user_type(tinyint(2)) =&amp;gt; 0&lt;br /&gt;
**  0 pour tous les inscrits admins compris&lt;br /&gt;
**  1 quand pas encore activé&lt;br /&gt;
**  2 pour ignorer l&#039;utilisateur (?) ex. bot&lt;br /&gt;
**  3 pour les &amp;quot;Founders&amp;quot; : sorte de super-admin en god mode&lt;br /&gt;
**  Voir https://wiki.phpbb.com/Table.phpbb_users&lt;br /&gt;
* group_id(mediumint(8) unsigned) =&amp;gt; phpbb_groups.group_id&lt;br /&gt;
* user_permission(mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_perm_from(mediumint(8) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_ip(varchar(40)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_regdate(int(11) unsigned) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* username(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* username_clean(varchar(255)) =&amp;gt; wefrag_users.login(varchar(255))&lt;br /&gt;
* user_password(varchar(255)) =&amp;gt; wefrag_users.crypted_password(varchar(40))&lt;br /&gt;
**  Phpbb :[https://wiki.phpbb.com/Function.phpbb_check_hash techno proprio]? &lt;br /&gt;
**  Wefrag : [https://github.com/Conardo/wefrag/blob/master/app/models/user.rb sha1 ? voir ligne 220]&lt;br /&gt;
* user_passch (int(11) unsigned) =&amp;gt; &#039;&#039;&#039;wefrag_user_password_resets.?&#039;&#039;&#039;&lt;br /&gt;
**  &#039;&#039;pas forcément nécessaire&#039;&#039;&lt;br /&gt;
* user_email(varchar(100)) =&amp;gt; wefrag_users.email(varchar(255))&lt;br /&gt;
**  vérifier longueur max en table&lt;br /&gt;
* user_email_hash(bigint(20)) =&amp;gt; &lt;br /&gt;
**  d&#039;après [https://www.phpbb.com/community/viewtopic.php?f=71&amp;amp;t=570125 ce lien] : crc32(strtolower($user_email)) . strlen($user_email),&lt;br /&gt;
**  &#039;&#039;&#039;à tester&#039;&#039;&#039;&lt;br /&gt;
* user_birthday(varchar(10)) =&amp;gt; wefrag_users.birthdate(date)&lt;br /&gt;
* user_lastvisit(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastmark(int(11) unsigned) =&amp;gt; 0&lt;br /&gt;
* user_lastpost_time(int(11) unsigned) =&amp;gt;&lt;br /&gt;
  Récupérer la date du dernier post.&lt;br /&gt;
* user_lastpage(varchar(200)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_confirm_key(varchar(10)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_last_search(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_warnings(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_warning(int(11) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_login_attempts(tinyint(4))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_reason(tinyint(2)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_inactive_time(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_posts(mediumint(8) unsigned) =&amp;gt;&lt;br /&gt;
  Alimenter le nombre de posts&lt;br /&gt;
* user_lang(varchar(30)) =&amp;gt; &#039;&#039;fr&#039;&#039;&lt;br /&gt;
* user_timezone(varchar(100)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_dateformat(varchar(64)) =&amp;gt; &#039;&#039;D j M Y H:i&#039;&#039;&lt;br /&gt;
* user_style(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_rank(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_colour(varchar(6)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_new_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_unread_privmsg(int(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_last_privmsg(int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_message_rules(tinyint(1) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_full_folder(int(11))=&amp;gt; &#039;&#039;-3&#039;&#039;&lt;br /&gt;
* user_emailtime(int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_show_days(smallint(4) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_topic_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_topic_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;d&#039;&#039;&#039;&lt;br /&gt;
* user_post_show_days (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_post_sortby_type(varchar(1)) =&amp;gt; &#039;&#039;&#039;t&#039;&#039;&#039;&lt;br /&gt;
* user_post_sortby_dir (varchar(1)) =&amp;gt; &#039;&#039;&#039;a&#039;&#039;&#039;&lt;br /&gt;
* user_notify (tinyint(1) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_notify_pm (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_notify_type (tinyint(4))=&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_allow_pm(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewonline(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_viewemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_allow_massemail(tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_options(	int(11)	UNSIGNED) =&amp;gt; &#039;&#039;230271&#039;&#039;&lt;br /&gt;
* user_avatar (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_type (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_avatar_width (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_avatar_height (smallint(4) unsigned) =&amp;gt;  &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_sig (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_uid (varchar(8)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_sig_bbcode_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_jabber (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_actkey (varchar(32)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_newpasswd (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* user_form_salt (varchar(32)) =&amp;gt; &#039;&#039;&#039;&#039;&#039;????&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
* user_new (tinyint(1)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* user_reminded (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_reminded_time (int(11) UNSIGNED) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_forums ===&lt;br /&gt;
  Cette entité contient les catégories (wefrag_categories)et les forums (wefrag_forums). Il faut donc prévoir un premier passage pour les catégories et un second pour les forums, et une renumérotation des catégories avec création d&#039;une table de correspondance.&lt;br /&gt;
&lt;br /&gt;
  Autre solution : saisie manuelle des catégories, mise à jour de la table wefrag_forums avec les bonnes catégories.&lt;br /&gt;
&lt;br /&gt;
  3ème solution : saisie manuelle des catégories et des forums, mise à jour de la table wefrag_posts avec les bonnes catégories et forums.&lt;br /&gt;
&lt;br /&gt;
==== Catégories ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_categories.id (table de correspondance)&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_categories.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post de la catégorie&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;32&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Forums ====&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.id (int(11))&lt;br /&gt;
* parent_id (mediumint(8) unsigned) =&amp;gt; wefrag_forums.category_id (table de correspondance)&lt;br /&gt;
* left_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* right_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;????&#039;&#039;&lt;br /&gt;
* forum_parents (mediumtext) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_name (varchar(255)) =&amp;gt; wefrag_forums.title (varchar(255))&lt;br /&gt;
* forum_desc (text) =&amp;gt; wefrag_forums.description (text)&lt;br /&gt;
* forum_desc_bitfield (varchar(255)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_desc_options (int(11) unsigned) =&amp;gt;  &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_desc_uid (varchar(8)) =&amp;gt;  &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_password (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_style (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_image (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules (text) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_link (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_bitfield (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_rules_options (int(11) unsigned) =&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* forum_rules_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* forum_topics_per_page (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_type (tinyint(4)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_status (tinyint(4)) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_last_post_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_id (int(10) unsigned) =&amp;gt; &#039;&#039;à mettre à jour avec l&#039;identifiant du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_subject (varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le sujet du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_post_time (int(11) unsigned ) =&amp;gt; &#039;&#039;à mettre à jour avec le datetime du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_name(varchar(255)) =&amp;gt; &#039;&#039;à mettre à jour avec le login du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_last_poster_colour(varchar(6)) =&amp;gt; &#039;&#039;à mettre à jour avec la couleur du poster du dernier post du forum&#039;&#039;&lt;br /&gt;
* forum_flags (tinyint(4)) =&amp;gt; &#039;&#039;48&#039;&#039;&lt;br /&gt;
* display_on_index (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_indexing (tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_icons(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_prune(tinyint(1) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_next (int(11) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_viewed(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_freq(mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* display_subforum_list (tinyint(1) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_options(int(20) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_posts_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_posts_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_approved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* forum_topics_unapproved (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* forum_topics_softdeleted (mediumint(8) unsigned)=&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_shadow_prune (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* prune_shadow_days (mediumint(8) unsigned)=&amp;gt; &#039;&#039;7&#039;&#039;&lt;br /&gt;
* prune_shadow_freq (mediumint(8) unsigned)=&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* prune_shadow_next int(11)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts qui ont une donnée topic_id non significative.&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_attachment (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_reported (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_title (varchar(255)) =&amp;gt;  wefrag_posts.title&lt;br /&gt;
* topic_poster (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* topic_time (int(11) unsigned) =&amp;gt; wefrag_posts.created_at(datetime)&lt;br /&gt;
* topic_time_limit (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_views (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_status (tinyint(3))  =&amp;gt; &lt;br /&gt;
**  à étudier en fonction du statut locké ou pas &lt;br /&gt;
* topic_type (tinyint(3))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_first_post_id (int(10) unsigned)  =&amp;gt; &lt;br /&gt;
**  étudier la nécessité d&#039;insérer le premier post pour avoir une valeur ici&lt;br /&gt;
* topic_first_poster_name (varchar(255)) =&amp;gt;&lt;br /&gt;
**  récupérer le login du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_first_poster_colour&lt;br /&gt;
**  récupérer la couleur du poster (wefrag_posts.user_id)&lt;br /&gt;
* topic_last_post_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_id&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_name&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_poster_colour&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_subject&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_post_time&lt;br /&gt;
**  mettre à jour lors du traitement des posts&lt;br /&gt;
* topic_last_view_time =&amp;gt; mettre la même valeur que topic_last_post_time&lt;br /&gt;
* topic_moved_id (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumped(tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_bumper(mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_title (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* poll_start (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_length (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_max_options (tinyint(4))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* poll_last_vote (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poll_vote_change (tinyint(1))  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_visibility (tinyint(3))  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_delete_reason (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* topic_delete_user (int(10) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_approved (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* topic_posts_unapproved (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* topic_posts_softdeleted (mediumint(8) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_posts ===&lt;br /&gt;
Traitement de toutes les lignes de wefrag_posts.&lt;br /&gt;
&lt;br /&gt;
  à étudier : utilisation de la fonction php [https://wiki.phpbb.com/Function.submit_post submit_post]&lt;br /&gt;
&lt;br /&gt;
* post_id (int(10) unsigned) =&amp;gt; wefrag_posts.id (int(11))&lt;br /&gt;
* topic_id (int(10) unsigned) =&amp;gt; wefrag_posts.topic_id (int(11))&lt;br /&gt;
* forum_id (mediumint(8) unsigned) =&amp;gt; wefrag_posts.forum_id (int(11))&lt;br /&gt;
* poster_id  (int(10) unsigned) =&amp;gt; wefrag_posts.user_id (int(11))&lt;br /&gt;
* icon_id (mediumint(8) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* poster_ip (varchar(40)) =&amp;gt; wefrag_posts.poster_ip_address(varchar(255))&lt;br /&gt;
* post_time (int(11) unsigned)  =&amp;gt;  wefrag_posts.created_at(datetime)&lt;br /&gt;
* post_reported (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_bbcode (tinyint(1) unsigned) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_smilies (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* enable_magic_url (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* enable_sig (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_username (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_subject (varchar(255)) =&amp;gt; wefrag_posts.title (varchar(255))&lt;br /&gt;
* post_text (mediumtext)  =&amp;gt; wefrag_posts.body (text)&lt;br /&gt;
* post_checksum (varchar(32)) =&amp;gt; &lt;br /&gt;
**  md5 du texte du message.&lt;br /&gt;
* post_attachment (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* bbcode_bitfield (varchar(255))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* bbcode_uid (varchar(8))  =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_postcount (tinyint(1) unsigned) =&amp;gt;&lt;br /&gt;
**  vérifier si ce compteur varie…&lt;br /&gt;
* post_edit_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_edit_user (int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_count (smallint(4) unsigned	) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_edit_locked (tinyint(1) unsigned)  =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_visibility (tinyint(3)) =&amp;gt; &#039;&#039;1&#039;&#039;&lt;br /&gt;
* post_delete_time (int(11) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* post_delete_reason (varchar(255)) =&amp;gt; &#039;&#039;vide&#039;&#039;&lt;br /&gt;
* post_delete_user(int(10) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_groups ===&lt;br /&gt;
  Utilisation de la table wefrag_groups.&lt;br /&gt;
 &lt;br /&gt;
  Nécessaire ou pas en fonction du nombre de groupes dans la base wefrag.&lt;br /&gt;
&lt;br /&gt;
* group_id&lt;br /&gt;
* group_type&lt;br /&gt;
* group_founder_manage&lt;br /&gt;
* group_skip_auth&lt;br /&gt;
* group_name&lt;br /&gt;
* group_desc&lt;br /&gt;
* group_desc_bitfield&lt;br /&gt;
* group_desc_options&lt;br /&gt;
* group_desc_uid&lt;br /&gt;
* group_display&lt;br /&gt;
* group_avatar&lt;br /&gt;
* group_avatar_type&lt;br /&gt;
* group_avatar_width&lt;br /&gt;
* group_avatar_height&lt;br /&gt;
* group_rank&lt;br /&gt;
* group_colour&lt;br /&gt;
* group_sig_chars&lt;br /&gt;
* group_receive_pm&lt;br /&gt;
* group_message_limit&lt;br /&gt;
* group_legend&lt;br /&gt;
* group_max_recipients&lt;br /&gt;
&lt;br /&gt;
=== phpbb_user_group ===&lt;br /&gt;
  Utilisation de la table wefrag_users pour récupérer le groupe&lt;br /&gt;
&lt;br /&gt;
* group_id (mediumint(8) unsigned) =&amp;gt; wefrag_users.group_id(int(11))&lt;br /&gt;
**  valeur à &#039;&#039;2&#039;&#039; pour le mettre dans le groupe registered.&lt;br /&gt;
* user_id (int(10) unsigned) =&amp;gt; wefrag_users.id(int(11))&lt;br /&gt;
* group_leader (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
* user_pending (tinyint(1) unsigned) =&amp;gt; &#039;&#039;0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_track ===&lt;br /&gt;
 Utilisation de la table wefrag_user_topic_reads&lt;br /&gt;
* user_id =&amp;gt; wefrag_user_topic_reads.user_id&lt;br /&gt;
* topic_id =&amp;gt; wefrag_user_topic_reads.topic_id&lt;br /&gt;
* forum_id =&amp;gt; &lt;br /&gt;
** récupérer l&#039;id du forum du topic &lt;br /&gt;
* mark_time =&amp;gt; wefrag_user_topic_reads.read_at&lt;br /&gt;
&lt;br /&gt;
=== phpbb_topics_posted ===&lt;br /&gt;
  Table à alimenter lors de la création d&#039;un topic (et d&#039;un post ?)&lt;br /&gt;
* user_id&lt;br /&gt;
* topic_id&lt;br /&gt;
* topic_posted  =&amp;gt; 1 si topic, 0 si post ?&lt;/div&gt;</summary>
		<author><name>Bibiwan</name></author>
	</entry>
</feed>