", "",
"{{", "}}",
"{_", "_}",
"{", "}",
'', '',
" \\2 a écrit : ',$result);
// $result = preg_replace('/\[\/quote(:)?[A-Fa-f0-9]*\]/',' Copyright Jean-Luc Béchennec, ce logiciel est protégé par la loi française sur le propriété intellectuelle. Il est réservé à un usage professionnel et distribué selon les termes de GPL v2", "",
"");
//return $texte;
// on remplace les < et > dans un premier temps
$result = str_replace('<','<',$texte);
$result = str_replace('>','>',$result);
// on continue en virant les numéros de série dans le bbcode
$result = preg_replace('/\[(\/?[^:]+):[a-f0-9]+/','[\\1',$result);
// quote
$result = preg_replace('/\[quote="?([^"\]]*)"?\]/','',$result);
// color
$result = preg_replace('/\[color="?([^"\]]*)"?\]/','',$result);
// size
$result = preg_replace('/\[size="?([^"\]]*)"?\]/','',$result);
// mail
$result = preg_replace('/\[mail="?([^"\]]*)"?\]([^\[]*)\[\/mail\]/','[\\2->\\1]',$result);
// url
$result = preg_replace('/\[url="?([^"\]]*)"?\]([^\[]*)\[\/url\]/','[\\2->\\1]',$result);
$result = preg_replace('/\[url\]([^\[]*)\[\/url\]/','[->\\1]',$result);
//$result = preg_replace('/\[size="([^"]*)"\]/','
// $result = $texte;
// on applique les transformations simples
$result = str_replace($bbcode, $spipcode, $result);
// $result = preg_replace('/\[quote(:)?[A-Fa-f0-9]*="([^"]*)"\]/','
',$result);
return $result;
}
?>
Traduction phpBB vers SPIP
login
"; echo "Implantation des forums dans la rubrique $spiprubid
\n"; echo "Les annonces recevront le mot clé $mc_annonce_id
\n"; echo "Les post its recevront le mot clé $mc_postit_id
\n"; echo "Les sujets clos recevront le mot clé $mc_ferme_id
\n"; //die ("arret pour debug"); $spip_connect = mysql_connect("localhost",$spip_login,$spip_pass) or die("Impossible de se connecter à la base SPIP
"); $phpbb_connect = mysql_connect("localhost",$phpbb_login,$phpbb_pass) or die("Impossible de se connecter à la base phpBB
"); echo "ok
"; // // récupération du secteur où seront implantés les forums // $query = "SELECT id_secteur FROM spip_rubriques WHERE id_rubrique=$spiprubid"; spip(); $result = mysql_query($query) or die(mysql_error($spip_connect)); if ($row = mysql_fetch_assoc($result)) { $spip_id_secteur = $row['id_secteur']; } else { die ("Impossible de déterminer le secteur dans lequel est la rubrique"); } // // transfert des catégories // 1 catégorie = 1 sous rubrique de la rubrique affectée aux forums // phpbb(); $result = mysql_query("SELECT * FROM ".$PR."categories") or die("impossible de récupérer les catégories"); spip(); while ($row = mysql_fetch_assoc($result)) { $rub_name = $row['cat_order'] . '. ' . addslashes($row['cat_title']); //echo "$rub_name
"; $query = "INSERT INTO spip_rubriques (id_parent,titre) VALUES ($spiprubid,'$rub_name')"; //echo "$query
"; mysql_query($query,$spip_connect); $spip_id = mysql_insert_id($spip_connect); //echo "$spip_id
"; // memorise la relation entre les id de catégories et les rubriques $spiprub_from_catid[$row['cat_id']] = $spip_id; } // // transfert des forums // 1 forum = 1 article dans la rubrique catégorie // phpbb(); $result = mysql_query("SELECT * FROM ".$PR."forums") or die("impossible de récupérer les forums"); spip(); while ($row = mysql_fetch_assoc($result)) { $rub = $spiprub_from_catid[$row['cat_id']]; $titre = $row['forum_order'] . '. ' . addslashes($row['forum_name']); $descriptif = addslashes($row['forum_desc']); $date = date("Y-m-d H:i:s"); //echo "$rub, $titre, $descriptif
"; $query = "INSERT INTO spip_articles (id_rubrique,titre,descriptif,statut,date) VALUES ($rub,'$titre','$descriptif','publie','$date')"; mysql_query($query,$spip_connect) or die(mysql_error($spip_connect)); $spip_id = mysql_insert_id($spip_connect); $spip_art_from_forumid[$row['forum_id']] = $spip_id; } // // transfert des utilisateurs // phpbb(); $result = mysql_query("select * FROM ".$PR."users",$phpbb_connect) or die("impossible de récupérer les utilisateurs"); $compte_user = 0; spip(); while ($row = mysql_fetch_assoc($result)) { // on commence par la date de la dernière visite et // par la date d'inscription pour éliminer les gus // qui sont inscrit depuis longtemps mais qui ne // sont jamais venus sur les forums $date_inscription = $row['user_regdate']; $aujourdhui = time(); $phpbbdate = addslashes($row['user_lastvisit']); if (! (($aujourdhui - $date_inscription) > (6 * 30 * 24 * 3600) && $phpbbdate == 0)) { // phpbb stocke un timestamp Unix, SPIP, un timestamp iso $enligne = date("Y-m-d H:i:s",$phpbbdate); if ($phpbbdate == 0) { $statut = 'nouveau'; } else { if ($row['user_level'] == 0) { $statut = $statut_abonne; } else { $statut = '0minirezo'; } } $nom = addslashes($row['username']); $email = addslashes($row['user_email']); $pass = addslashes($row['user_password']); $site = addslashes($row['user_website']); if ($site == 'http://') { $site = ''; } $bio = ''; $bio = item_cond($bio,trim($row['user_occ'])); $bio = item_cond($bio,trim($row['user_from'])); $bio = item_cond($bio,trim($row['user_interests'])); if ($bio != '') { $bio .= "\n"; } $bio .= item(trim($row['user_icq']),"-ICQ: %s\n"); $bio .= item(trim($row['user_aim']),"-AIM: %s\n"); $bio .= item(trim($row['user_yim']),"-YIM: %s\n"); $bio .= item(trim($row['user_msnm']),"-MSN: %s\n"); // converti le bbcode en code SPIP $bio = bbcode_to_raccourcis_spip($bio); $bio = addslashes($bio); //echo "$bio
"; //echo "$enligne
"; // ecrit dans la base SPIP $query = "INSERT INTO spip_auteurs (nom,bio,email,nom_site,url_site,login,pass,statut,en_ligne) VALUES ('$nom','$bio','$email','$site','$site','$nom','$pass','$statut','$enligne')"; mysql_query($query,$spip_connect) or die(mysql_error($spip_connect)); $spip_id = mysql_insert_id($spip_connect); $spip_auteur_from_user_id[$row['user_id']] = $spip_id; $logofile = $row['user_avatar']; if ($logofile) { // change from gif to jpg $logofile = str_replace('.gif','.jpg',$logofile); $logo_url = $phpbbroot . '/images/avatars/' . $logofile; if (file_exists($logo_url)) { // copie l'avatar dans IMG sous le non autoffxxx.jpg $dest_url = $spiproot . "/IMG/autoff$spip_id.jpg"; // crée une copie de l'avatar en n&b if ($log_nb = @imagecreatefromjpeg($logo_url)) { $dest_nb_url = $spiproot . "/IMG/auton$spip_id.jpg"; $img_w = imageSX($log_nb); $img_h = imageSY($log_nb); for ($y = 0; $y <$img_h; $y++) { for ($x = 0; $x <$img_w; $x++) { $gray = (imagecolorat($log_nb, $x, $y) >> 8) & 0xFF; // set the pixel color imagesetpixel ($log_nb, $x, $y, imagecolorallocate ($log_nb, $gray, $gray, $gray)); } } imagejpeg($log_nb,$dest_nb_url); imagedestroy($log_nb); copy($logo_url,$dest_url); } } //$logodata = file_get_contents($logo_url); } // si c'est un admin, on le restreint à la rubrique du forum if ($statut == '0minirezo') { $query = "INSERT INTO spip_auteurs_rubriques (id_auteur,id_rubrique) VALUES ('$spip_id','$spiprubid')"; mysql_query($query,$spip_connect) or die(mysql_error($spip_connect)); } if (($compte_user % 20) == 0) { printf("[%d]",$compte_user); } echo '.'; $compte_user++; } } // importation des topics et posts phpbb(); $query = "SELECT * FROM ".$PR."topics,".$PR."posts,".$PR."posts_text WHERE (".$PR."topics.topic_id = ".$PR."posts.topic_id AND ".$PR."posts.post_id = ".$PR."posts_text.post_id) ORDER BY ".$PR."posts.post_id"; $result = mysql_query($query,$phpbb_connect) or die("impossible de récupérer les posts : ".mysql_error($phpbb_connect)); $compte_posts = 0; $topic_post = array(); spip(); while ($row = mysql_fetch_assoc($result)) { // le premier post rencontré pour un topic donné est // le post qui a lancé le topic (normalement) $topic_id = $row['topic_id']; if (! isset($topic_post[$topic_id])) { $id_parent = 0; } else { $id_parent = $topic_post[$topic_id]; } // traite le cas des posts qui appartiennent à un forum qui n'existe plus if (! isset($spip_art_from_forumid[$row['forum_id']])) { continue; } $id_article = $spip_art_from_forumid[$row['forum_id']]; $date_heure = date("Y-m-d H:i:s",$row['post_time']); if ($id_parent == 0) { $titre = addslashes($row['topic_title']); } else { if ($row['post_subject'] == '') { $titre = addslashes($row['topic_title']); } else { $titre = addslashes($row['post_subject']); } } $texte = addslashes($row['post_text']); $poster_id = $row['poster_id']; if (! isset($spip_auteur_from_user_id[$poster_id])) { $id_auteur = 0; } else { $id_auteur = $spip_auteur_from_user_id[$poster_id]; } $username = addslashes($row['post_username']); if ($username != '') { $auteur = $username; } else { $query = "SELECT nom,id_auteur FROM spip_auteurs WHERE id_auteur=$id_auteur"; $r_auteur = mysql_query($query,$spip_connect) or die(mysql_error($spip_connect)); if ($auteur_info = mysql_fetch_assoc($r_auteur)) { $auteur = addslashes($auteur_info['nom']); } else { $auteur = 'anonyme'; } } // recupere l'email $query = "SELECT email FROM spip_auteurs WHERE id_auteur=$id_auteur"; $r_email = mysql_query($query,$spip_connect) or die(mysql_error($spip_connect)); if ($row_email = mysql_fetch_assoc($r_email)) { $email_auteur = $row_email['email']; } else { $email_auteur = 'nobody@nowhere.nodomain'; } $statut = 'publie'; // converti le bbcode en raccourcis SPIP $titre = bbcode_to_raccourcis_spip($titre); $texte = bbcode_to_raccourcis_spip($texte); $query = "INSERT INTO spip_forum (id_parent,id_article,email_auteur,date_heure,titre,texte,auteur,statut,id_auteur) VALUES ('$id_parent','$id_article','$email_auteur','$date_heure','$titre','$texte','$auteur','$statut','$id_auteur')"; mysql_query($query,$spip_connect) or die("
$query
".mysql_error($spip_connect)."
$query
".mysql_error($spip_connect)."
Post it - id_php_bb = $topic_id - spip_id = $insert_id
"; } // Traitement des annonces if ($mc_annonce_id != 0 && $row['topic_type'] == 2) { $query = "INSERT INTO spip_mots_forum (id_mot,id_forum) VALUES ($mc_annonce_id,$insert_id)"; mysql_query($query,$spip_connect) or die("$query
".mysql_error($spip_connect)."
[%d]",$compte_posts); } echo '.'; $compte_posts ++; } } } ?>