1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-31 20:00:37 +02:00

SMF Forum import

This commit is contained in:
Cameron
2017-03-31 11:41:39 -07:00
parent d110d8d4e9
commit c8a1f1fe6a
4 changed files with 60 additions and 26 deletions

View File

@@ -463,8 +463,9 @@ class import_main_ui extends e_admin_ui
if($proObj->sourceType == 'db' || !$proObj->sourceType) // STANDARD db Setup
{
$databases = $this->getDatabases();
$prefix = (varset($_POST['dbParamPrefix']) ? $_POST['dbParamPrefix'] : $proObj->mprefix);
/*
$text .= "
<tr>
<td>$importType ".LAN_CONVERT_19."</td>
@@ -481,13 +482,16 @@ class import_main_ui extends e_admin_ui
<td >$importType ".LAN_CONVERT_21."</td>
<td ><input class='tbox' type='text' name='dbParamPassword' size='30' value='".varset($_POST['dbParamPassword'])."' maxlength='100' /></td>
</tr>
";*/
$text .= "
<tr>
<td >$importType ".LAN_CONVERT_22."</td>
<td ><input class='tbox' type='text' name='dbParamDatabase' size='30' value='".varset($_POST['dbParamDatabase'])."' maxlength='100' required /></td>
<td >".$frm->select('dbParamDatabase', $databases, null, array('required'=>1), LAN_SELECT)."</td>
</tr>
<tr>
<td >$importType ".LAN_CONVERT_23."</td>
<td ><input class='tbox' type='text' name='dbParamPrefix' size='30' value='".(varset($_POST['dbParamPrefix']) ? $_POST['dbParamPrefix'] : $proObj->mprefix)."' maxlength='100' />
<td >".$frm->text('dbParamPrefix', $prefix, 100)."
<input type='hidden' name='import_source' value='db' />
</td>
</tr>";
@@ -597,7 +601,32 @@ class import_main_ui extends e_admin_ui
}
private function getDatabases()
{
$tmp = e107::getDb()->gen("SHOW DATABASES");
$databases = e107::getDb()->db_getList();
$arr = array();
$exclude = array('mysql', 'information_schema', 'performance_schema', 'phpmyadmin');
foreach($databases as $v)
{
$id = $v['Database'];
if(in_array($id,$exclude))
{
continue;
}
$arr[$id] = $id;
}
return $arr;
}
@@ -637,7 +666,7 @@ class import_main_ui extends e_admin_ui
if (class_exists($this->importClass))
{
$mes->addDebug("dbImport(): Converter Class Available: ".$this->importClass);
$converter = new $this->importClass;
$converter = new $this->importClass ;
$converter->init();
}
else
@@ -651,14 +680,17 @@ class import_main_ui extends e_admin_ui
if($mode == 'db') // Don't do DB check on RSS/XML
{
if (!isset($_POST['dbParamHost']) || !isset($_POST['dbParamUsername']) || !isset($_POST['dbParamPassword']) || !isset($_POST['dbParamDatabase']))
if (empty($_POST['dbParamDatabase']))
{
$mes->addError(LAN_CONVERT_41);
return false;
}
$result = $converter->db_Connect($tp->filter($_POST['dbParamHost']), $tp->filter($_POST['dbParamUsername']), $tp->filter($_POST['dbParamPassword']), $tp->filter($_POST['dbParamDatabase']), $tp->filter($_POST['dbParamPrefix']));
if ($result !== TRUE)
$result = $converter->database($tp->filter($_POST['dbParamDatabase']), $tp->filter($_POST['dbParamPrefix']));
// $result = $converter->database($tp->filter($_POST['dbParamDatabase']), $tp->filter($_POST['dbParamPrefix']), true);
if ($result !== true)
{
$mes->addError(LAN_CONVERT_43.": ".$result); // db connect failed
return false;
@@ -716,7 +748,7 @@ class import_main_ui extends e_admin_ui
$result = $converter->setupQuery($k, !$this->deleteExisting);
if ($result !== TRUE)
if ($result !== true)
{
$mes->addError(LAN_CONVERT_44.' '.$k); // couldn't set query
break;

View File

@@ -20,26 +20,27 @@ Root classes for import and saving of data. Application-specific classes build o
class base_import_class
{
var $ourDB = NULL;
var $DBPrefix = '';
var $currentTask = '';
var $copyUserInfo = TRUE;
var $ourDB = null;
var $DBPrefix = '';
var $currentTask = '';
var $copyUserInfo = true;
protected $arrayData = array();
/**
* Connect to the external DB if not already connected
*/
function db_Connect($server, $user, $password, $database, $prefix)
function database($database, $prefix)
{
if ($this->ourDB == NULL)
{
$this->ourDB = e107::getDb('ourDB');
$result = $this->ourDB->db_Connect($server, $user, $password, $database);
$this->DBPrefix = $prefix;
$result = $this->ourDB->database($database,$prefix,true);
$this->DBPrefix = "`".$database."`.".$prefix;
if ($result)
{
return $result;
}
}
return TRUE;

View File

@@ -80,19 +80,19 @@ class phpbb3_import extends base_import_class
break;
case 'forum' :
$result = $this->ourDB->gen("SELECT * FROM `{$this->DBPrefix}forums`");
$result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}forums");
if ($result === FALSE) return FALSE;
break;
case 'forumthread' :
$result = $this->ourDB->gen("SELECT * FROM `{$this->DBPrefix}topics`");
$result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}topics");
if ($result === FALSE) return FALSE;
break;
case 'forumpost' :
if($this->ourDB->gen("SELECT * FROM `{$this->DBPrefix}attachments`"))
if($this->ourDB->gen("SELECT * FROM {$this->DBPrefix}attachments"))
{
while($row = $this->ourDB->fetch())
{
@@ -101,12 +101,12 @@ class phpbb3_import extends base_import_class
$this->forum_attachments[$id][$key] = $row['real_filename'];
}
}
$result = $this->ourDB->gen("SELECT * FROM `{$this->DBPrefix}posts`");
$result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}posts");
if ($result === FALSE) return FALSE;
break;
case 'forumtrack' :
$result = $this->ourDB->gen("SELECT * FROM `{$this->DBPrefix}forums_track`");
$result = $this->ourDB->gen("SELECT * FROM {$this->DBPrefix}forums_track");
if ($result === FALSE) return FALSE;
break;

View File

@@ -72,7 +72,7 @@ class smf_import extends base_import_class
case 'forum' :
$qry = "SELECT f.*, m.id_member, m.poster_name, m.poster_time FROM `{$this->DBPrefix}boards` AS f LEFT JOIN `{$this->DBPrefix}messages` AS m ON f.id_last_msg = m.id_msg GROUP BY f.id_board ";
$qry = "SELECT f.*, m.id_member, m.poster_name, m.poster_time FROM {$this->DBPrefix}boards AS f LEFT JOIN {$this->DBPrefix}messages AS m ON f.id_last_msg = m.id_msg GROUP BY f.id_board ";
$result = $this->ourDB->gen($qry);
if ($result === false)
@@ -85,9 +85,9 @@ class smf_import extends base_import_class
case 'forumthread' :
$qry = "SELECT t.*, m.poster_name, m.poster_time, m.id_member, l.poster_name as lastpost_name, l.poster_time as lastpost_time, l.id_member as lastpost_user FROM `{$this->DBPrefix}topics` AS t
LEFT JOIN `{$this->DBPrefix}messages` AS m ON t.id_first_msg = m.id_msg
LEFT JOIN `{$this->DBPrefix}messages` AS l ON t.id_last_msg = l.id_msg
$qry = "SELECT t.*, m.poster_name, m.subject, m.poster_time, m.id_member, l.poster_name as lastpost_name, l.poster_time as lastpost_time, l.id_member as lastpost_user FROM {$this->DBPrefix}topics AS t
LEFT JOIN {$this->DBPrefix}messages AS m ON t.id_first_msg = m.id_msg
LEFT JOIN {$this->DBPrefix}messages AS l ON t.id_last_msg = l.id_msg
GROUP BY t.id_topic";
$result = $this->ourDB->gen($qry);
@@ -97,7 +97,7 @@ class smf_import extends base_import_class
case 'forumpost' :
$qry = "SELECT m.*, a.filename, a.fileext, a.size FROM `{$this->DBPrefix}messages` AS m LEFT JOIN `{$this->DBPrefix}attachments` AS a ON m.id_msg = a.id_msg GROUP BY m.id_msg ORDER BY m.id_msg ASC ";
$qry = "SELECT m.*, a.filename, a.fileext, a.size FROM {$this->DBPrefix}messages AS m LEFT JOIN {$this->DBPrefix}attachments AS a ON m.id_msg = a.id_msg GROUP BY m.id_msg ORDER BY m.id_msg ASC ";
$result = $this->ourDB->gen($qry);
if ($result === false) return false;
@@ -236,6 +236,7 @@ class smf_import extends base_import_class
$target['forum_postclass'] = e_UC_MEMBER;
$target['forum_threadclass'] = e_UC_MEMBER;
$target['forum_options'] = e_UC_MEMBER;
$target['forum_sef'] = eHelper::title2sef($source['name'],'dashl');
return $target;