Перейти к контенту

переходник с phorum5 -> ipb 2.0.x


Klia

Рекомендуемые сообщения

дело было вечером, делать было нечего ;)

 

тут не реализована поддержка нескольких аватаров( Mod_avatar - берется установленный по умолчанию аватар, если по умолчанию аватара нет - он не показывается, даже если массив avatars не пуст), не реализована поддержка голосований( mod_poll )

 

после запуска скрипта не забудьте обновить кэш форума и группы.. и перестроить форум в админке :D

 

 

<META HTTP-EQUIV="Charset" CONTENT="windows-1251">

<?

function generate_password_salt($len=5)

{

$salt = '';

 

srand( (double)microtime() * 1000000 );

 

for ( $i = 0; $i < $len; $i++ )

{

$num = rand(33, 126);

 

if ( $num == '92' )

{

$num = 93;

}

 

$salt .= chr( $num );

}

 

return $salt;

}

 

 

function generate_auto_log_in_key($len=60)

{

$pass = generate_password_salt( 60 );

 

return md5($pass);

}

 

set_time_limit(0);

$nd=0;

$db_host = "localhost";

$db_user = "rroll";

$db_pwd = "rrP123";

$db_name = "fru";

iconv_set_encoding("internal_encoding", "UTF-8");

iconv_set_encoding("output_encoding", "ISO-8859-1");

$link = mysql_connect( $db_host, $db_user, $db_pwd );

mysql_select_db($db_name);

 

$qry = "SELECT * FROM phorum_settings where name='title';";

$result = mysql_query($qry);

#echo $qry."<br>";

 

while ($row = mysql_fetch_array($result))

{

$title=iconv("UTF-8","Latin1",$row['data']);

$qur="REPLACE INTO `ibf_forums` VALUES (1, 0, 0, 0, 0, '', '".$title."', '', 1, 1, 0, 1, '', '', 0, 'last_post', 'Z-A', 30, 1, 0, 1, 1, 1, NULL, -1, 0, '', 0, 0, '', '', '', '', '', 0, '', 'a:5:{s:11:\"start_perms\";s:1:\"*\";s:11:\"reply_perms\";s:1:\"*\";s:10:\"read_perms\";s:1:\"*\";s:12:\"upload_perms\";s:1:\"*\";s:10:\"show_perms\";s:1:\"*\";}', 0, 0, 0);";

mysql_query($qur);

}

 

$qry = "SELECT forum_id,name,description FROM phorum_forums;";

$result = mysql_query($qry);

#echo $qry."<br>";

 

while ($row = mysql_fetch_array($result))

{

echo $id=$row['forum_id'];

echo "<Br>";

echo $name=iconv("UTF-8","Latin1",$row['name']);

echo "<Br>";

echo $desc=iconv("UTF-8","Latin1",$row['description']);

echo "<Br>";

$qur="REPLACE INTO `ibf_forums` VALUES (".$id.", 0, 0, 0, 0, 'Klia', '".$name."', '".$desc."', ".($id).", 1, 1, 1, '', '', 1, 'last_post', 'Z-A', 100, 0, 0, 1, 1, 1, NULL, 1, 1, '', 0, 0, '', '', '', '', '', 1, '', 'a:5:{s:11:\"start_perms\";s:1:\"*\";s:11:\"reply_perms\";s:1:\"*\";s:10:\"read_perms\";s:1:\"*\";s:12:\"upload_perms\";s:1:\"*\";s:10:\"show_perms\";s:1:\"*\";}', 0, 0, 0);";

echo "<Br>";

 

mysql_query($qur);

#echo $qur."<br>";

echo mysql_error();

echo $id."<br>";

 

$table="phorum_messages";

$index = "list_page_float";

 

$qry1 = "select *

from

$table;";

 

$result3 = mysql_query("select * from phorum_files;");

while ($ra = mysql_fetch_assoc($result3)){

$ext=explode(".",$ra['filename']);

if ($ra['message_id']>0)

{

$k='post';

$upload="html/forum/uploads/post-".$ra['user_id']."-".$ra['add_datetime'].".".strtolower($ext[(count($ext)-1)]);

$fp=fopen($upload,"w");

fwrite($fp,base64_decode($ra['file_data']));

fclose($fp);

}

elseif (((int)$ra['message_id'])==0)

{

$k='av';

$avs[$ra['file_id']]['filename']="av-".$ra['user_id']."-".$ra['add_datetime'].".".strtolower($ext[(count($ext)-1)]);

$avs[$ra['file_id']]['user_id']=$ra['user_id'];

if (!file_exists("html/forum/uploads/av-".$ra['user_id'].".".strtolower($ext[(count($ext)-1)])))

{

$upload="html/forum/uploads/av-".$ra['user_id'].".".strtolower($ext[(count($ext)-1)]);

$av=0;

}

else

{

$upload="html/forum/uploads/av-".$ra['user_id']."-".$ra['add_datetime'].".".strtolower($ext[(count($ext)-1)]);

$av++;

}

 

$info=GetImageSize($upload);

$avs[$ra['file_id']]['size']=$info[0]."x".$info[1];

$fp=fopen($upload,"w");

fwrite($fp,base64_decode($ra['file_data']));

fclose($fp);

 

}

 

$info=GetImageSize($upload);

$types = array(1 => "gif", 2 => "jpg", 3 => "png");

$exten=strtolower(count($ext)-1);

if (in_array(strtolower($ext[$exten]),$types))

{

$isimage=1;

}

else

{

$isimage=0;

}

$file=iconv("UTF-8","Latin1",$ra['filename']);

$up=iconv("UTF-8","Latin1",basename($upload));

#echo "REPLACE INTO `ibf_attachments` VALUES (".$ra['file_id'].", '".$file."', '".addslashes($up)."', '".addslashes($up)."', 0, ".$ra['add_datetime'].", 0, ".$ra['message_id'].", '0', 0, ".$ra['user_id'].", 1, ".$ra['filesize'].", ".$info[0].", ".$info[1].", ".$isimage.", '".$ext[$exten]."'"."<br>";

if ($k!='av')

{

$q="REPLACE INTO `ibf_attachments` VALUES (".$ra['file_id'].", '".$file."', '".addslashes($up)."', '".addslashes($up)."', 0, ".$ra['add_datetime'].", 0, ".$ra['message_id'].", '0', 0, ".$ra['user_id'].", 1, ".$ra['filesize'].", ".$info[0].", ".$info[1].", ".$isimage.", '".strtolower($ext[$exten])."');";

mysql_query($q);

}

#echo $q."<br>";

$hasattach[$ra['message_id']]=1;

}

 

$sql="select * from phorum_messages;";

$result1 = mysql_query($sql);

echo mysql_error();

#echo $sql."<br>";

while ($rec = mysql_fetch_assoc($result1)){

if($rec["status"]==2){

$arr[$rec["message_id"]] = $rec;

$arr[$rec["message_id"]]["meta"] = array();

if(!empty($rec["meta"])){

$arr[$rec["message_id"]]["meta"] = unserialize($rec["meta"]);

$poll[$rec["message_id"]]["meta"] = unserialize($rec["meta"]);

#echo $id=$row['forum_id'];

#if ((!stristr($arr[$rec["message_id"]]['subject'],"Re:")) and (!stristr($arr[$rec["message_id"]]['subject'],"Re2:")))

#{

$subject[]=iconv("UTF-8","Latin1",$arr[$rec["message_id"]]['subject']);

$author=$arr[$rec["message_id"]]['author'];

#echo "INSERT INTO `ibf_topics` VALUES (".$row1['thread'].", '".iconv("UTF-8","Latin1",$row1['subject'])."', '', 'open', ".$row['thread_count'].", ".$row[''].", 1069075118, 1, 1069075118, 0, '".$author."', 'Invision Power Board Team', '0', 0, 1, 2, 1, 0, 0, NULL, NULL, 0, 0, 1, 0);";

$meta=$arr[$rec["message_id"]]["meta"];

echo "<p>";

if ($arr[$rec["message_id"]]["message_id"]=="2106")

{

print_r($meta["mod_poll"])."<br>";

}

#echo "<br>INSERT INTO `ibf_topics` VALUES (".$arr[$rec["message_id"]]['thread'].", '".iconv("UTF-8","Latin1",$arr[$rec["message_id"]]['subject'])."', '', 'open', ".$arr[$rec["message_id"]]['thread_count'].", ".$arr[$rec["message_id"]]['user_id'].", 1069075118, ".$meta['recent_post']['user_id'].", 1069075118, 0, '".$arr[$rec["message_id"]]['author']."', '".$meta['recent_post']['author']."', 0, 0, 0, ".((int)$rec['forum_id']).", 1, 0, 0, NULL, NULL, 0, 0, 1, 0);";

if ($arr[$rec["message_id"]]['sort']==1) $pinned=1;

else

$pinned=0;

$qq="REPLACE INTO `ibf_topics` VALUES (".$arr[$rec["message_id"]]['thread'].", '".iconv("UTF-8","Latin1",addslashes(str_replace("Re2: ","",str_replace("Re: ","",$arr[$rec["message_id"]]['subject']))))."', '', 'open', ".(int)$arr[$rec["message_id"]]['thread_count'].", ".(int)$arr[$rec["message_id"]]['user_id'].", 1069075118, ".(int)$meta['recent_post']['user_id'].", 1069075118, 0, '".iconv("UTF-8","Latin1",addslashes($arr[$rec["message_id"]]['author']))."', '".iconv("UTF-8","Latin1",addslashes($meta['recent_post']['author']))."', 0, 0, 0, ".((int)$rec['forum_id']).", 1, 0, ".(int)$pinned.", NULL, NULL, 0, ".(int)$hasattach[$rec["message_id"]].", 1, 0);";

if (!mysql_query($qq))

echo "mysql>".mysql_error()."<br>";

#echo $qq."<Br>";

if(!empty($meta['message_ids']))

{

foreach ($meta['message_ids'] as $msg_id => $msg_val)

{

#$qq1="REPLACE INTO `ibf_posts` VALUES (".$arr[$rec["message_id"]]['message_id'].", 0,".(int)$meta['edit_date'].",".(int)$arr[$rec["message_id"]]['user_id'].", '".iconv("UTF-8","Latin1",addslashes($arr[$rec["message_id"]]['author']))."', 1,1,'".$arr[$rec["message_id"]]['ip']."',".(int)$arr[$rec["message_id"]]['datestamp'].", 0, '".iconv("UTF-8","Latin1",addslashes(htmlspecialchars($arr[$rec["message_id"]]['body'])))."', 0, ".(int)$arr[$rec["message_id"]]['thread'].",'".addslashes($arr[$rec["message_id"]]['post_title'])."',0,'".addslashes($meta['edit_username'])."',0,".(int)$arr[$rec["message_id"]]['parent_id'].",0);";

$qq1="REPLACE INTO `ibf_posts` VALUES (".$msg_val.", 0,".(int)$meta['edit_date'].",".(int)$arr[$msg_val]['user_id'].", '".iconv("UTF-8","Latin1",addslashes($arr[$msg_val]['author']))."', 1,1,'".gethostbyname($arr[$msg_val]['ip'])."',".(int)$arr[$msg_val]['datestamp'].", 0, '".iconv("UTF-8","Latin1",addslashes(nl2br(htmlspecialchars($arr[$msg_val]['body']))))."', 0, ".(int)$arr[$msg_val]['thread'].",'".addslashes($arr[$msg_val]['post_title'])."',0,'".addslashes($meta['edit_username'])."',0,".(int)$arr[$msg_val]['parent_id'].",0);";

if (!mysql_query($qq1))

echo "mysql>".mysql_error()."<br>";

#echo $qq1."<br>";

}

}

$nd++;

}

}

}

 

 

$result2 = mysql_query("select * from phorum_users;");

while ($rec1 = mysql_fetch_assoc($result2)){

$arr1[$rec1["user_id"]] = $rec1;

$arr1[$rec1["user_id"]]["user_data"] = array();

if(!empty($rec1["user_data"])){

$arr1[$rec1["user_id"]]["user_data"] = unserialize($rec1["user_data"]);

$user=$arr1[$rec1["user_id"]]["user_data"];

$av=$avs[current($user['mod_avatar'])];

echo current($user['mod_avatar']);

 

#echo $arr1[$rec1["user_id"]]["user_id"]."<br>";

 

#if (($arr1[$rec1["user_id"]]["user_id"])!=1)

#{

#echo $userid;

$salt = generate_password_salt(5);

$salt = str_replace( '\\', "\\\\", $salt );

echo "<pre>";

#print_r($arr1[$rec1["user_id"]]);

$qm="REPLACE INTO `ibf_members_converge` VALUES (".(int)$arr1[$rec1["user_id"]]["user_id"].", '".$arr1[$rec1["user_id"]]["email"]."', ".(int)$arr1[$rec1["user_id"]]["date_added"].", '".(md5( md5($salt) . $arr1[$rec1["user_id"]]["password"]))."', '".$salt."');";

mysql_query($qm);

#echo "REPLACE INTO `ibf_member_extra` VALUES (".(int)$arr1[$rec1["user_id"]]["user_id"].", NULL, NULL, NULL, NULL, '', '', '', '', 0, '', '', '', '', '', '', '".iconv("UTF-8","Latin1",addslashes($arr1[$rec1["user_id"]]["signature"]))."', '".$avs[$user['mod_avatar']['default_avatar']]['filename']."', '', 'local');";

echo $qm."<br>";

print_r($avs[$user['mod_avatar']]['avatars']);

if ($avs[$user['mod_avatar']['default_avatar']]['filename']!='')

{

$tye='upload';

}

else

{

echo $av;

$ava=array_keys($av['avatars']);

if (empty($ava))

{

$tye='local';

}

else

{

$tye='upload'.$ava[0];

}

 

}

if (!empty($avs[$user['mod_avatar']['default_avatar']]['filename']))

{

$qme="REPLACE INTO `ibf_member_extra` VALUES (".(int)$arr1[$rec1["user_id"]]["user_id"].", NULL, NULL, NULL, NULL, '', '', '', '', 0, '', '', '', '', '', '', '".iconv("UTF-8","Latin1",addslashes($arr1[$rec1["user_id"]]["signature"]))."', '".$avs[$user['mod_avatar']['default_avatar']]['filename']."', '".$avs[$user['mod_avatar']['default_avatar']]['size']."', '".$tye."');";

}

else

{

$ava=array_keys($avs[$user['mod_avatar']['avatars']]);

$qme="REPLACE INTO `ibf_member_extra` VALUES (".(int)$arr1[$rec1["user_id"]]["user_id"].", NULL, NULL, NULL, NULL, '', '', '', '', 0, '', '', '', '', '', '', '".iconv("UTF-8","Latin1",addslashes($arr1[$rec1["user_id"]]["signature"]))."', '".$avs[$ava[0]]['filename']."', '".$avs[$ava[0]]['size']."', '".$tye."');";

}

mysql_query($qme);

echo $qme."<Br>";

#echo "REPLACE INTO `ibf_members_converge` VALUES (".(int)$arr1[$rec1["user_id"]]["user_id"].", '".$arr1[$rec1["user_id"]]["email"]."', ".(int)$arr1[$rec1["user_id"]]["date_added"].", '".$arr1[$rec1["user_id"]]["password"]."', '');<br>";

 

if (($arr1[$rec1["user_id"]]["admin"])==1)

{

$admin=4;

}

else

{

$admin=3;

}

$qc="REPLACE INTO `ibf_members` VALUES (".(int)$arr1[$rec1["user_id"]]["user_id"].", '".iconv("UTF-8","Latin1",addslashes($arr1[$rec1["user_id"]]['username']))."',".$admin.", '".$arr1[$rec1["user_id"]]["password"]."', '".$arr1[$rec1["user_id"]]["email"]."', ".(int)$arr1[$rec1["user_id"]]["date_added"].", '10.0.0.23', ".(int)$arr1[$rec1["user_id"]]["posts"].", '', ".(int)$user["email_notify"].", ".(int)$user["tz_offset"]." , NULL, NULL, NULL, NULL, NULL, 0, NULL, ".(int)$arr1[$rec1["user_id"]]["date_last_active"].", '0', ".(int)$arr1[$rec1["user_id"]]["show_signature"].", 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ".(int)$arr1[$rec1["user_id"]]["date_last_active"].", ".(int)$arr1[$rec1["user_id"]]["date_last_active"].", ".(int)$user["is_dst"].", '-1&-1', 0, '0', '0', NULL, 0, '0&1', '', '', '', '".(generate_auto_log_in_key())."', 0);";

mysql_query($qc);

echo $qc."<br>";

 

#}

 

}

}

 

}

 

 

echo "<pre>";

#print_r($arr1);

#echo "Subjects";

#print_r($subject);

#echo "Posts";

#print_r($posts);

#print_r($avs);

echo "</pre>";

 

?>

Ссылка на комментарий
Поделиться на других сайтах

  • 2 года спустя...

Klia, прошу прощения, но не могли бы вы помочь мне? Дело в том что код без комментариев и очень сложно вот так с ходу определить что там делается=) Насколько я понял в $db_host, $db_name, ... я должен вписать данные о базе где у меня лежат данные к phorum'у, так? А где тогда будет конечный вариант лежать сконвертированной базы??

БлагоДарю.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.