diff --git a/e107_plugins/import/admin_import.php b/e107_plugins/import/admin_import.php index dda3244b6..00f7a26d7 100644 --- a/e107_plugins/import/admin_import.php +++ b/e107_plugins/import/admin_import.php @@ -147,6 +147,17 @@ class import_main_ui extends e_admin_ui } + function help() + { + + return "Some help text from admin-ui"; + + } + + + + + function getMeta($class_name) { if(class_exists($class_name)) diff --git a/e107_plugins/import/images/phpbb2.png b/e107_plugins/import/images/phpbb2.png deleted file mode 100644 index afeef591e..000000000 Binary files a/e107_plugins/import/images/phpbb2.png and /dev/null differ diff --git a/e107_plugins/import/providers/phpbb2_import_class.php b/e107_plugins/import/providers/phpbb2_import_class.php deleted file mode 100644 index 24e5875bc..000000000 --- a/e107_plugins/import/providers/phpbb2_import_class.php +++ /dev/null @@ -1,416 +0,0 @@ - E107 forum IDs - - - // Set up a query for the specified task. - // Returns TRUE on success. FALSE on error - // If $blank_user is true, certain cross-referencing user info is to be zeroed - function setupQuery($task, $blank_user=FALSE) - { - if ($this->ourDB == NULL) return FALSE; - switch ($task) - { - case 'users' : - $result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}users WHERE `user_active` = 1"); - if ($result === FALSE) return FALSE; - break; - case 'forumdefs' : - return FALSE; - case 'forumposts' : - return FALSE; - case 'polls' : - return FALSE; - case 'news' : - return FALSE; - default : - return FALSE; - } - $this->copyUserInfo = !$blank_user; - $this->currentTask = $task; - return TRUE; - } - - - - //------------------------------------ - // Internal functions below here - //------------------------------------ - - // Copy data read from the DB into the record to be returned. - function copyUserData(&$target, &$source) - { - if ($this->copyUserInfo) $target['user_id'] = $source['user_id']; - $target['user_name'] = $source['username']; - $target['user_loginname'] = $source['username']; - if ((substr($source['user_password']) == '$H$') && (strlen($source['user_password']) == 34)) - { // Convert salted password to E107 style (they use the same basic coding) - $target['user_password'] = substr_replace($source['user_password'], '$E$',0,3); - } - else - { // Probably an old md5 password - $target['user_password'] = $source['user_password']; - } - $target['user_email'] = $source['user_email']; - $target['user_signature'] = $this->proc_bb($source['user_sig'],'phpbb,bblower'); - $target['user_hideemail'] = $source['user_viewemail']; - $target['user_join'] = $source['user_regdate']; - $target['user_forums'] = $source['user_posts']; - $target['user_admin'] = $source['user_level']; - $target['user_lastvisit'] = $source['user_lastvisit']; - switch ($source['user_avatar_type']) - { - default: - $target['user_image'] = $source['user_avatar']; - } - $target['user_timezone'] = $source['user_timezone']; // source is decimal(5,2) - $target['user_language'] = $source['user_lang']; // May need conversion - $target['user_location'] = $source['user_from']; - $target['user_icq'] = $source['user_icq']; - $target['user_aim'] = $source['user_aim']; - $target['user_yahoo'] = $source['user_yim']; - $target['user_msn'] = $source['user_msnm']; - $target['user_homepage'] = $source['user_website']; -// $target['user_'] = $source['']; -// $target[] = $source['user_active]; // PHPBB2 -// $target['user_lastpost'] = $source['user_lastpost_time']; // PHPBB3 - return $target; - } - - - function convertForumParent(&$target, &$source) - { - $this->catcount++; - $this->id_map[$source['cat_id']] = $this->catcount; - $target['forum_id'] = $this->catcount; // Create new IDs for parent forums - $target['forum_name'] = $source['cat_title']; - $target['forum_order'] = $source['cat_order']; - $target['forum_description'] = $source['cat_desc']; - $target['forum_moderators'] = e_UC_ADMIN; -// $target['forum_'] = $source['']; -// $target['forum_'] = $source['']; - } - - - function convertForum(&$target, &$source, $catid) - { - $this->catcount++; - $this->id_map[$source['forum_id']] = $this->catcount; - $target['forum_id'] = $this->catcount; - $target['forum_parent'] = $this->id_map[$source['cat_id']]; // Map to the new E107 ID, rather than directly use the one from the DB - $target['forum_name'] = $source['forum_name']; - $target['forum_description'] = $source['forum_desc']; - $target['forum_order'] = $source['forum_order']; - $target['forum_threads'] = $source['forum_topics']; - $target['forum_replies'] = $source['forum_posts']; - $target['forum_moderators'] = e_UC_ADMIN; -// $target['forum_'] = $source['']; - } -} - - -/* -Historical info for conversion below here - -function convertParents($catid) -{ - $parentArray = array( - array("srcdata" => "cat_id", "e107" => "forum_id", "type" => "INT", "value" => $catid), - array("srcdata" => "cat_title", "e107" => "forum_name", "type" => "STRING"), - array("srcdata" => "cat_order", "e107" => "forum_order", "type" => "INT"), - array("srcdata" => "cat_desc", "e107" => "forum_description", "type" => "STRING"), - array("srcdata" => "null", "e107" => "forum_moderators", "type" => "INT", "value" => 254) - ); - return $parentArray; -} - -function convertForums($catid) -{ - $forumArray = array( - array("srcdata" => "forum_id", "e107" => "forum_id", "type" => "INT"), - array("srcdata" => "cat_id", "e107" => "forum_parent", "type" => "STRING", "value" => $catid), - array("srcdata" => "forum_name", "e107" => "forum_name", "type" => "STRING"), - array("srcdata" => "forum_desc", "e107" => "forum_description", "type" => "STRING"), - array("srcdata" => "forum_order", "e107" => "forum_order", "type" => "INT"), - array("srcdata" => "forum_topics", "e107" => "forum_threads", "type" => "INT"), - array("srcdata" => "forum_posts", "e107" => "forum_replies", "type" => "INT"), - array("srcdata" => "null", "e107" => "forum_moderators", "type" => "INT", "value" => 254) - ); - return $forumArray; -} - - -//function convertTopics($poster) -function convertTopics() -{ - $topicArray = array( - array("srcdata" => "forum_id", "e107" => "thread_forum_id", "type" => "INT"), - array("srcdata" => "topic_title", "e107" => "thread_name", "type" => "STRING"), - array("srcdata" => "post_text", "e107" => "thread_thread", "type" => "STRING", "default" => "", "sproc" => "usebb,phpbb,bblower"), - array("srcdata" => "topic_poster", "e107" => "thread_user", "type" => "STRING"), - array("srcdata" => "null", "e107" => "thread_active", "type" => "INT", "value" => 1), - array("srcdata" => "topic_time", "e107" => "thread_datestamp", "type" => "INT"), - array("srcdata" => "topic_views", "e107" => "thread_views", "type" => "INT"), - array("srcdata" => "topic_replies", "e107" => "thread_total_replies", "type" => "INT"), - array("srcdata" => "null", "e107" => "thread_parent", "type" => "INT", "value" => 0), - ); - return $topicArray; -} - - - - -function convertForumPosts($parent_id, $poster) -{ - $postArray = array( - array("srcdata" => "post_text", "e107" => "thread_thread", "type" => "STRING", "default" => "", "sproc" => "usebb,phpbb,bblower"), - array("srcdata" => "forum_id", "e107" => "thread_forum_id", "type" => "INT"), - array("srcdata" => "post_time", "e107" => "thread_datestamp", "type" => "INT"), - array("srcdata" => "topic_views", "e107" => "thread_views", "type" => "INT"), - array("srcdata" => "post_time", "e107" => "thread_lastpost", "type" => "INT"), - array("srcdata" => "poster_id", "e107" => "thread_user", "type" => "STRING"), - array("srcdata" => "post_subject", "e107" => "thread_name", "type" => "STRING"), - array("srcdata" => "null", "e107" => "thread_parent", "type" => "INT", "value" => $parent_id), - ); - return $postArray; -} - - -/* --- -------------------------------------------------------- -PHPBB uses three tables to record a poll. Looks wildly different to E107! --- --- Table structure for table `_phpbb_vote_desc` -CREATE TABLE `_phpbb_vote_desc` ( - `vote_id` mediumint(8) unsigned NOT NULL auto_increment, - `topic_id` mediumint(8) unsigned NOT NULL default '0', - `vote_text` text NOT NULL, - `vote_start` int(11) NOT NULL default '0', - `vote_length` int(11) NOT NULL default '0', - PRIMARY KEY (`vote_id`), - KEY `topic_id` (`topic_id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=36 ; - - --- --- Table structure for table `_phpbb_vote_results` -CREATE TABLE `_phpbb_vote_results` ( - `vote_id` mediumint(8) unsigned NOT NULL default '0', - `vote_option_id` tinyint(4) unsigned NOT NULL default '0', - `vote_option_text` varchar(255) NOT NULL default '', - `vote_result` int(11) NOT NULL default '0', - KEY `vote_option_id` (`vote_option_id`), - KEY `vote_id` (`vote_id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - - --- --- Table structure for table `_phpbb_vote_voters` -CREATE TABLE `_phpbb_vote_voters` ( - `vote_id` mediumint(8) unsigned NOT NULL default '0', - `vote_user_id` mediumint(8) NOT NULL default '0', - `vote_user_ip` char(8) NOT NULL default '', - KEY `vote_id` (`vote_id`), - KEY `vote_user_id` (`vote_user_id`), - KEY `vote_user_ip` (`vote_user_ip`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - -*/ - - -/* - -//----------------------------------------------------------- -// ### get phpbb categories and insert them as forum parents -//----------------------------------------------------------- - -mysql_query("TRUNCATE TABLE {$mySQLprefix}forum", $e107Connection); - - -$phpbb_res = mysql_query("SELECT * FROM {$phpbb2Prefix}categories", $phpbbConnection); -if(!$phpbb_res) -{ - goError("Error! Unable to access ".$phpbb2Prefix."categories table."); -} - -$catcount = 500; -while($parent = mysql_fetch_array($phpbb_res)) -{ - - $parentArray = convertParents($catcount); - - $query = createQuery($parentArray, $parent, $mySQLprefix."forum"); - echo (mysql_query($query, $e107Connection) ? "Successfully inserted parent: ".$parent['cat_id'].": ".$parent['cat_title'] : "Unable to insert parent: ".$parent['cat_id'].": ".$parent['cat_title']."
".mysql_errno() . ": " . mysql_error())."
"; - flush(); - - $phpbb_res2 = mysql_query("SELECT * FROM {$phpbb2Prefix}forums WHERE cat_id = ".$parent['cat_id'], $phpbbConnection); - if($phpbb_res2) - { - while($forum = mysql_fetch_array($phpbb_res2)) - { - $forumArray = convertForums($catcount); - $query = createQuery($forumArray, $forum, $mySQLprefix."forum"); - echo (mysql_query($query, $e107Connection) ? "Successfully inserted forum: ".$parent['cat_id'].": ".$parent['cat_title'] : "Unable to insert forum: ".$parent['cat_id'].": ".$parent['cat_title']."
".mysql_errno() . ": " . mysql_error())."
"; - flush(); - } - } - else - { - echo "Didn't find any forums for parent '".$parent['cat_title']."'
"; - } - $catcount ++; -} - - -//------------------------------------------------------ -// Read in forum topics -//------------------------------------------------------ - -mysql_query("TRUNCATE TABLE {$mySQLprefix}forum_t", $e107Connection); -mysql_query("TRUNCATE TABLE {$mySQLprefix}polls", $e107Connection); - -$query = "SELECT * FROM {$phpbb2Prefix}topics -LEFT JOIN {$phpbb2Prefix}posts_text ON ({$phpbb2Prefix}topics.topic_title = {$phpbb2Prefix}posts_text.post_subject) -LEFT JOIN {$phpbb2Prefix}posts ON ({$phpbb2Prefix}posts.post_id = {$phpbb2Prefix}posts_text.post_id) -ORDER BY topic_time ASC"; - -$phpbb_res = mysql_query($query, $phpbbConnection); -if(!$phpbb_res) -{ - goError("Error! Unable to access ".$phpbb2Prefix."topics table."); -} -while($topic = mysql_fetch_array($phpbb_res)) -{ - - //echo "
"; print_r($topic); echo "
"; - - if($topic['topic_vote']) - { - // poll attached to this topic ... - $topic['topic_title'] = "[poll] ".$topic['topic_title']; - $query = "SELECT * FROM {$phpbb2Prefix}vote_desc WHERE topic_id=".$topic['topic_id']; - $phpbb_res3 = mysql_query($query, $phpbbConnection); - $pollQ = mysql_fetch_array($phpbb_res3); - - $query = "SELECT * FROM {$phpbb2Prefix}vote_results WHERE vote_id=".$pollQ['vote_id']; - $phpbb_res3 = mysql_query($query, $phpbbConnection); - $options = ""; - $votes = ""; - while($pollO = mysql_fetch_array($phpbb_res3)) - { - $options .= $pollO['vote_option_text'].chr(1); - $votes .= $pollO['vote_result'].chr(1); - } - - extract($pollQ); - $vote_text = $tp->toDB($vote_text); // McFly added 25/5/06 - $options = $tp->toDB($options); // McFly added 25/5/06 - $query = "INSERT INTO ".$mySQLprefix."polls VALUES ('0', {$vote_start}, {$vote_start}, 0, 0, '{$vote_text}', '{$options}', '{$votes}', '', 2, 0, 0, 0, 255, 0)"; - echo (mysql_query($query, $e107Connection) ? "Poll successfully inserted" : "Unable to insert poll ({$query})")."
"; - } - - - if($topic['topic_poster'] == 2) - { - $topic['topic_poster'] = 1; - } - - if($topic['topic_poster'] == -1) - { - $poster = ($topic['post_username'] ? $topic['post_username'] : "Anonymous"); - $topic['topic_poster'] = "0.".$poster; // McFly moved, edited 25/5/06 - } - - $topicArray = convertTopics(); // McFly edited 25/5/06 - $query = createQuery($topicArray, $topic, $mySQLprefix."forum_t"); - - if(!mysql_query($query, $e107Connection)) - { - echo "Unable to insert topic: ".$topic['topic_id']."
"; - flush(); - } - else - { - echo "Successfully inserted topic: ".$topic['topic_id']."
"; - flush(); - $parent_id = mysql_insert_id(); - $topic_id = $topic['topic_id']; - - //echo "PARENT: $parent_id, TOPIC: $topic_id
"; - -// Not checking post_subject might work better - $query = "SELECT * FROM {$phpbb2Prefix}posts LEFT JOIN {$phpbb2Prefix}posts_text ON ({$phpbb2Prefix}posts.post_id = {$phpbb2Prefix}posts_text.post_id) WHERE topic_id='{$topic_id}' ORDER BY post_time DESC"; -// $query = "SELECT * FROM {$phpbb2Prefix}posts LEFT JOIN {$phpbb2Prefix}posts_text ON ({$phpbb2Prefix}posts.post_id = {$phpbb2Prefix}posts_text.post_id) WHERE topic_id='{$topic_id}' AND post_subject = '' ORDER BY post_time DESC"; - $phpbb_res2 = mysql_query($query, $phpbbConnection); - if(!$phpbb_res2) - { - goError("Error! Unable to access ".$phpbb2Prefix."posts / ".$phpbb2Prefix."posts_text table."); - } - while($post = mysql_fetch_array($phpbb_res2)) - { - - if($post['poster_id'] == 2) - { - $post['poster_id'] = 1; - } - if($post['poster_id'] == -1) - { - $poster = ($post['post_username'] ? $post['post_username'] : "Anonymous"); - $post['poster_id'] = "0.".$poster; // McFly moved, edited 25/5/06 - } - - - $postArray = convertForumPosts($parent_id, $poster); - $query = createQuery($postArray, $post, $mySQLprefix."forum_t",$mapdata); - echo (mysql_query($query, $e107Connection) ? "Successfully inserted thread: ".$post['post_id'] : "Unable to insert thread: ".$parent['cat_id'].": ".$parent['cat_title']."
".mysql_errno() . ": " . mysql_error())."
"; - flush(); - } - } -} - -*/ - -?> diff --git a/e107_plugins/import/providers/phpbb3_import_class.php b/e107_plugins/import/providers/phpbb3_import_class.php index 754dd2e10..bd5347571 100644 --- a/e107_plugins/import/providers/phpbb3_import_class.php +++ b/e107_plugins/import/providers/phpbb3_import_class.php @@ -30,12 +30,19 @@ class phpbb3_import extends base_import_class private $forum_attachments = array(); private $forum_attachment_path = null; + private $forum_moderator_class = false; var $helperClass; // forum class. function init() { $this->forum_attachment_path = vartrue(trim($_POST['forum_attachment_path'],"/" ), false); + + if($data = e107::getDb('phpbb')->retrieve('userclass_classes','userclass_id',"userclass_name='FORUM_MODERATOR' ")) + { + $this->forum_moderator_class = $data; + } + } @@ -50,6 +57,13 @@ class phpbb3_import extends base_import_class return $var; } + + + function help() + { + return "some help text"; + + } // Set up a query for the specified task. // Returns TRUE on success. FALSE on error @@ -155,6 +169,13 @@ class phpbb3_import extends base_import_class $conv = array(1 => e_UC_GUEST, 4 => e_UC_MODS, 6 => e_UC_BOTS, 7 => e_UC_NEWUSER); + if($this->forum_moderator_class !== false) + { + $conv[4] = $this->forum_moderator_class; + $conv[5] = $this->forum_moderator_class; + } + + return vartrue($conv[$perm]) ? $conv[$perm] : ""; /* * 1 GUESTS @@ -181,6 +202,7 @@ class phpbb3_import extends base_import_class } + //------------------------------------ // Internal functions below here //------------------------------------ @@ -199,7 +221,7 @@ class phpbb3_import extends base_import_class $target['user_loginname'] = $source['username']; $target['user_password'] = $this->convertPassword($source['user_password']); $target['user_email'] = $source['user_email']; - $target['user_signature'] = $this->proc_bb($source['user_sig'],'phpbb,bblower'); + $target['user_signature'] = $this->convertText($source['user_sig']); $target['user_image'] = $source['user_avatar']; $target['user_hideemail'] = $source['user_allow_viewemail']; $target['user_join'] = $source['user_regdate']; @@ -409,34 +431,21 @@ class phpbb3_import extends base_import_class $text = preg_replace('#]*)>#','$1',$text); // Smilies to text $text = preg_replace('#\[img:([^\]]*)]([^\[]*)\[/img:([^\]]*)]#', '[img]$2[/img]', $text); // Image Bbcodes. $text = preg_replace('#([^<]*)#','[link=$1]$2[/link]',$text); // links + $text = preg_replace('#([^<]*)#','[link=$1]$2[/link]',$text); // links $text = preg_replace('#\[attachment([^\]]*)]([^\[]*)\[/attachment:([^\]]*)]#','',$text); - $text = html_entity_decode($text,ENT_NOQUOTES,'UTF-8'); - - /* - if(preg_match_all('#\[attachment([^\]]*)]([^\[]*)\[/attachment:([^\]]*)]#',$text,$matches)) - { - $attach = array(); - foreach($matches[2] as $val) - { - $val = strip_tags($val); // remove html comments. - - if(preg_match('#.JPG|.jpg|.gif|.png|.PNG|.GIF|.jpeg|.JPEG$#',$val)) - { - $attach['img'][] = $val; - } - else - { - $attach['file'][] = $val; - } - } - - - $text = str_replace($matches[0],'',$text); // erase attachment bbcode from text. + + if(preg_match('#\[/url:([^\]]*)]#',$text, $match)) // strip bbcode hash. + { + $hash = $match[1]; + $text = str_replace($hash,'',$text); } - */ - + $text = html_entity_decode($text,ENT_NOQUOTES,'UTF-8'); + + $detected = mb_detect_encoding($text); // 'ISO-8859-1' + $text = iconv($detected,'UTF-8',$text); + return $text; }