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:
@@ -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;
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user