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;