diff --git a/e107_plugins/import/admin_import.php b/e107_plugins/import/admin_import.php
index abd791d53..2c17c3109 100644
--- a/e107_plugins/import/admin_import.php
+++ b/e107_plugins/import/admin_import.php
@@ -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 .= "
$importType ".LAN_CONVERT_19." |
@@ -481,13 +482,16 @@ class import_main_ui extends e_admin_ui
$importType ".LAN_CONVERT_21." |
|
+ ";*/
+
+ $text .= "
$importType ".LAN_CONVERT_22." |
- |
+ ".$frm->select('dbParamDatabase', $databases, null, array('required'=>1), LAN_SELECT)." |
$importType ".LAN_CONVERT_23." |
- mprefix)."' maxlength='100' />
+ | ".$frm->text('dbParamPrefix', $prefix, 100)."
|
";
@@ -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;
diff --git a/e107_plugins/import/import_classes.php b/e107_plugins/import/import_classes.php
index 686bd59ca..e70feccaf 100644
--- a/e107_plugins/import/import_classes.php
+++ b/e107_plugins/import/import_classes.php
@@ -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;
diff --git a/e107_plugins/import/providers/phpbb3_import_class.php b/e107_plugins/import/providers/phpbb3_import_class.php
index aee6f84d7..5a445b26f 100644
--- a/e107_plugins/import/providers/phpbb3_import_class.php
+++ b/e107_plugins/import/providers/phpbb3_import_class.php
@@ -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;
diff --git a/e107_plugins/import/providers/smf_import_class.php b/e107_plugins/import/providers/smf_import_class.php
index 1f2e87c97..5c1c8e711 100644
--- a/e107_plugins/import/providers/smf_import_class.php
+++ b/e107_plugins/import/providers/smf_import_class.php
@@ -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;