Duplicator – WordPress Migration Plugin - Version 1.1.12

Version Description

Download this release

Release Info

Developer cory@lamle.org
Plugin Icon 128x128 Duplicator – WordPress Migration Plugin
Version 1.1.12
Comparing to
See all releases

Code changes from version 1.1.10 to 1.1.12

classes/package.installer.php CHANGED
@@ -125,6 +125,14 @@ class DUP_Installer {
125
  $deleteOpts = $GLOBALS['DUPLICATOR_OPTS_DELETE'];
126
 
127
  $replace_items = Array(
 
 
 
 
 
 
 
 
128
  "fwrite_url_old" => get_option('siteurl'),
129
  "fwrite_package_name" => "{$this->Package->NameHash}_archive.zip",
130
  "fwrite_package_notes" => $this->Package->Notes,
125
  $deleteOpts = $GLOBALS['DUPLICATOR_OPTS_DELETE'];
126
 
127
  $replace_items = Array(
128
+ //COMPARE VALUES
129
+ "fwrite_created" => $this->Package->Created,
130
+ "fwrite_version_dup" => DUPLICATOR_VERSION,
131
+ "fwrite_version_wp" => $this->Package->VersionWP,
132
+ "fwrite_version_db" => $this->Package->VersionDB,
133
+ "fwrite_version_php" => $this->Package->VersionPHP,
134
+ "fwrite_version_os" => $this->Package->VersionOS,
135
+ //GENERAL
136
  "fwrite_url_old" => get_option('siteurl'),
137
  "fwrite_package_name" => "{$this->Package->NameHash}_archive.zip",
138
  "fwrite_package_notes" => $this->Package->Notes,
classes/package.php CHANGED
@@ -31,14 +31,17 @@ class DUP_Package {
31
  const OPT_ACTIVE = 'duplicator_package_active';
32
 
33
  //Properties
34
- public $ID;
35
- public $Name;
36
- public $Hash;
37
- public $NameHash;
38
  public $Version;
39
  public $VersionWP;
40
  public $VersionDB;
41
  public $VersionPHP;
 
 
 
 
 
 
42
  public $Type;
43
  public $Notes;
44
  public $StorePath;
@@ -288,13 +291,15 @@ class DUP_Package {
288
  $filter_exts = isset($post['filter-exts']) ? $this->parseExtensionFilter($post['filter-exts']) : '';
289
  $tablelist = isset($post['dbtables']) ? implode(',', $post['dbtables']) : '';
290
  $compatlist = isset($post['dbcompat']) ? implode(',', $post['dbcompat']) : '';
291
- $dbversion = DUP_Util::MysqlVariableValue('version');
292
  $dbversion = is_null($dbversion) ? '- unknown -' : $dbversion;
293
 
294
  //PACKAGE
 
295
  $this->Version = DUPLICATOR_VERSION;
 
296
  $this->VersionWP = $wp_version;
297
- $this->VersionPHP = phpversion();
298
  $this->VersionDB = $dbversion;
299
  $this->Name = $name;
300
  $this->Hash = $this->MakeHash();
31
  const OPT_ACTIVE = 'duplicator_package_active';
32
 
33
  //Properties
34
+ public $Created;
 
 
 
35
  public $Version;
36
  public $VersionWP;
37
  public $VersionDB;
38
  public $VersionPHP;
39
+ public $VersionOS;
40
+
41
+ public $ID;
42
+ public $Name;
43
+ public $Hash;
44
+ public $NameHash;
45
  public $Type;
46
  public $Notes;
47
  public $StorePath;
291
  $filter_exts = isset($post['filter-exts']) ? $this->parseExtensionFilter($post['filter-exts']) : '';
292
  $tablelist = isset($post['dbtables']) ? implode(',', $post['dbtables']) : '';
293
  $compatlist = isset($post['dbcompat']) ? implode(',', $post['dbcompat']) : '';
294
+ $dbversion = preg_replace('/[^0-9.].*/', '', DUP_Util::MysqlVariableValue('version'));
295
  $dbversion = is_null($dbversion) ? '- unknown -' : $dbversion;
296
 
297
  //PACKAGE
298
+ $this->Created = date("Y-m-d H:i:s");
299
  $this->Version = DUPLICATOR_VERSION;
300
+ $this->VersionOS = defined('PHP_OS') ? PHP_OS : 'unknown';
301
  $this->VersionWP = $wp_version;
302
+ $this->VersionPHP = phpversion();
303
  $this->VersionDB = $dbversion;
304
  $this->Name = $name;
305
  $this->Hash = $this->MakeHash();
define.php CHANGED
@@ -3,7 +3,7 @@
3
  if (function_exists('plugin_dir_url')) {
4
 
5
 
6
- define('DUPLICATOR_VERSION', '1.1.10');
7
  define("DUPLICATOR_HOMEPAGE", "http://lifeinthegrid.com/labs/duplicator");
8
  define("DUPLICATOR_GIVELINK", "http://lifeinthegrid.com/partner");
9
  define("DUPLICATOR_HELPLINK", "http://lifeinthegrid.com/duplicator-docs");
3
  if (function_exists('plugin_dir_url')) {
4
 
5
 
6
+ define('DUPLICATOR_VERSION', '1.1.12');
7
  define("DUPLICATOR_HOMEPAGE", "http://lifeinthegrid.com/labs/duplicator");
8
  define("DUPLICATOR_GIVELINK", "http://lifeinthegrid.com/partner");
9
  define("DUPLICATOR_HELPLINK", "http://lifeinthegrid.com/duplicator-docs");
duplicator.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Duplicator
4
  Plugin URI: http://www.lifeinthegrid.com/duplicator/
5
  Description: Create a backup of your WordPress files and database. Duplicate and move an entire site from one location to another in a few steps. Create a full snapshot of your site at any point in time.
6
- Version: 1.1.10
7
  Author: LifeInTheGrid
8
  Author URI: http://www.lifeinthegrid.com
9
  Text Domain: duplicator
3
  Plugin Name: Duplicator
4
  Plugin URI: http://www.lifeinthegrid.com/duplicator/
5
  Description: Create a backup of your WordPress files and database. Duplicate and move an entire site from one location to another in a few steps. Create a full snapshot of your site at any point in time.
6
+ Version: 1.1.12
7
  Author: LifeInTheGrid
8
  Author URI: http://www.lifeinthegrid.com
9
  Text Domain: duplicator
installer/build/ajax.step1.php CHANGED
@@ -52,19 +52,45 @@ if (isset($_GET['dbtest']))
52
 
53
  $tstSrv = ($dbConn) ? "<div class='dup-pass'>Success</div>" : "<div class='dup-fail'>Fail</div>";
54
  $tstDB = ($dbFound) ? "<div class='dup-pass'>Success</div>" : "<div class='dup-fail'>Fail</div>";
55
- $html .= "<div class='dup-db-test'>";
56
- $html .= "<small style='display:block; padding:0 5px'>Using Connection String:<br/>Host={$_POST['dbhost']}; Database={$_POST['dbname']}; Uid={$_POST['dbuser']}; Pwd={$_POST['dbpass']}; {$port_view}</small>";
57
- $html .= "<label>Server Connected:</label> {$tstSrv} <br/>";
58
- $html .= "<label>Database Found:</label> {$tstDB} <br/>";
59
-
60
- //WARNING: DB not empty message
61
- if ($_POST['dbaction'] == 'create'){
62
- $tblcount = DupUtil::dbtable_count($dbConn, $_POST['dbname']);
63
- $html .= ($tblcount > 0)
64
- ? "<div class='dup-fail'><b>WARNING</b></div><br/>" . sprintf(ERR_DBEMPTY, $_POST['dbname'], $tblcount) . '<br/>'
65
- : "";
66
- }
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  //WARNNG: Input has utf8
69
  $dbConnItems = array($_POST['dbhost'], $_POST['dbuser'], $_POST['dbname'],$_POST['dbpass']);
70
  $dbUTF8_tst = false;
@@ -75,13 +101,15 @@ if (isset($_GET['dbtest']))
75
  break;
76
  }
77
  }
 
 
 
78
 
79
- if (! $dbConn && $dbUTF8_tst)
80
- {
81
- $html .= "<div class='dup-fail'><b>WARNING</b></div><br/>UTF8 Characters were detected as part of the database connection string. If your connection fails be sure to update "
82
- . "the MySQL my.ini configuration file setting to support UTF8 characters by enabling this option 'character_set_server=utf8' and restarting the database server.";
83
- }
84
-
85
  $html .= "</div>";
86
  die($html);
87
  }
@@ -319,6 +347,7 @@ $dbvar_maxtime = DupUtil::mysql_variable_value($dbh, 'wait_timeout');
319
  $dbvar_maxpacks = DupUtil::mysql_variable_value($dbh, 'max_allowed_packet');
320
  $dbvar_maxtime = is_null($dbvar_maxtime) ? 300 : $dbvar_maxtime;
321
  $dbvar_maxpacks = is_null($dbvar_maxpacks) ? 1048576 : $dbvar_maxpacks;
 
322
 
323
 
324
  DUPX_Log::Info("{$GLOBALS['SEPERATOR1']}");
@@ -327,7 +356,7 @@ DUPX_Log::Info("{$GLOBALS['SEPERATOR1']}");
327
  DUPX_Log::Info("--------------------------------------");
328
  DUPX_Log::Info("SERVER ENVIROMENT");
329
  DUPX_Log::Info("--------------------------------------");
330
- DUPX_Log::Info("MYSQL VERSION:\t" . mysqli_get_server_info($dbh));
331
  DUPX_Log::Info("TIMEOUT:\t{$dbvar_maxtime}");
332
  DUPX_Log::Info("MAXPACK:\t{$dbvar_maxpacks}");
333
 
52
 
53
  $tstSrv = ($dbConn) ? "<div class='dup-pass'>Success</div>" : "<div class='dup-fail'>Fail</div>";
54
  $tstDB = ($dbFound) ? "<div class='dup-pass'>Success</div>" : "<div class='dup-fail'>Fail</div>";
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
+ $dbvar_version = DupUtil::mysql_version($dbConn);
57
+ $dbvar_version_fail = version_compare($dbvar_version, $GLOBALS['FW_VERSION_DB']) < 0;
58
+ $tstCompat = ($dbvar_version_fail)
59
+ ? "<div class='dup-fail'>This Server: [{$dbvar_version}] -- Package Server: [{$GLOBALS['FW_VERSION_DB']}]</div>"
60
+ : "<div class='dup-pass'>This Server: [{$dbvar_version}] -- Package Server: [{$GLOBALS['FW_VERSION_DB']}]</div>";
61
+
62
+ $html .= <<<DATA
63
+ <div class='dup-db-test'>
64
+ <small>
65
+ Using Connection String:<br/>
66
+ Host={$_POST['dbhost']}; Database={$_POST['dbname']}; Uid={$_POST['dbuser']}; Pwd={$_POST['dbpass']}; {$port_view}
67
+ </small>
68
+ <table class='dup-db-test-dtls'>
69
+ <tr>
70
+ <td>Host:</td>
71
+ <td>{$tstSrv}</td>
72
+ </tr>
73
+ <tr>
74
+ <td>Database:</td>
75
+ <td>{$tstDB}</td>
76
+ </tr>
77
+ <tr>
78
+ <td>Version:</td>
79
+ <td>{$tstCompat}</td>
80
+ </tr>
81
+ </table>
82
+ DATA;
83
+
84
+ //--------------------------------
85
+ //WARNING: DB has tables with create option
86
+ if ($_POST['dbaction'] == 'create')
87
+ {
88
+ $tblcount = DupUtil::dbtable_count($dbConn, $_POST['dbname']);
89
+ $html .= ($tblcount > 0)
90
+ ? "<div class='warn-msg'><b>WARNING:</b> " . sprintf(ERR_DBEMPTY, $_POST['dbname'], $tblcount) . "</div>"
91
+ : '';
92
+ }
93
+
94
  //WARNNG: Input has utf8
95
  $dbConnItems = array($_POST['dbhost'], $_POST['dbuser'], $_POST['dbname'],$_POST['dbpass']);
96
  $dbUTF8_tst = false;
101
  break;
102
  }
103
  }
104
+ $html .= (! $dbConn && $dbUTF8_tst)
105
+ ? "<div class='warn-msg'><b>WARNING:</b> " . ERR_TESTDB_UTF8 . "</div>"
106
+ : '';
107
 
108
+ //WARNING Version Incompat
109
+ $html .= ($dbvar_version_fail)
110
+ ? "<div class='warn-msg'><b>NOTICE:</b> " . ERR_TESTDB_VERSION . "</div>"
111
+ : '';
112
+
 
113
  $html .= "</div>";
114
  die($html);
115
  }
347
  $dbvar_maxpacks = DupUtil::mysql_variable_value($dbh, 'max_allowed_packet');
348
  $dbvar_maxtime = is_null($dbvar_maxtime) ? 300 : $dbvar_maxtime;
349
  $dbvar_maxpacks = is_null($dbvar_maxpacks) ? 1048576 : $dbvar_maxpacks;
350
+ $dbvar_version = DupUtil::mysql_version($dbh);
351
 
352
 
353
  DUPX_Log::Info("{$GLOBALS['SEPERATOR1']}");
356
  DUPX_Log::Info("--------------------------------------");
357
  DUPX_Log::Info("SERVER ENVIROMENT");
358
  DUPX_Log::Info("--------------------------------------");
359
+ DUPX_Log::Info("MYSQL VERSION:\tThis Server: {$dbvar_version} -- Build Server: {$GLOBALS['FW_VERSION_DB']}");
360
  DUPX_Log::Info("TIMEOUT:\t{$dbvar_maxtime}");
361
  DUPX_Log::Info("MAXPACK:\t{$dbvar_maxpacks}");
362
 
installer/build/ajax.step2.php CHANGED
@@ -222,17 +222,17 @@ fclose($fp);
222
 
223
 
224
  //===============================
225
- //WARNING TESTS
226
  //===============================
227
  DUPX_Log::Info("\n--------------------------------------");
228
- DUPX_Log::Info("WARNINGS");
229
  DUPX_Log::Info("--------------------------------------");
230
  $config_vars = array('WP_CONTENT_DIR', 'WP_CONTENT_URL', 'WPCACHEHOME', 'COOKIE_DOMAIN', 'WP_SITEURL', 'WP_HOME', 'WP_TEMP_DIR');
231
  $config_found = DupUtil::string_has_value($config_vars, $config_file);
232
 
233
  //Files
234
  if ($config_found) {
235
- $msg = 'WP-CONFIG WARNING: The wp-config.php has one or more of these values "' . implode(", ", $config_vars) . '" which may cause issues please validate these values by opening the file.';
236
  $JSON['step2']['warnlist'][] = $msg;
237
  DUPX_Log::Info($msg);
238
  }
@@ -242,7 +242,7 @@ $result = @mysqli_query($dbh, "SELECT option_value FROM `{$GLOBALS['FW_TABLEPREF
242
  if ($result) {
243
  while ($row = mysqli_fetch_row($result)) {
244
  if (strlen($row[0])) {
245
- $msg = "MEDIA SETTINGS WARNING: The table '{$GLOBALS['FW_TABLEPREFIX']}options' has at least one the following values ['upload_url_path','upload_path'] set please validate settings. These settings can be changed in the wp-admin by going to Settings->Media area see 'Uploading Files'";
246
  $JSON['step2']['warnlist'][] = $msg;
247
  DUPX_Log::Info($msg);
248
  break;
@@ -251,7 +251,7 @@ if ($result) {
251
  }
252
 
253
  if (empty($JSON['step2']['warnlist'])) {
254
- DUPX_Log::Info("No Warnings Found\n");
255
  }
256
 
257
  $JSON['step2']['warn_all'] = empty($JSON['step2']['warnlist']) ? 0 : count($JSON['step2']['warnlist']);
222
 
223
 
224
  //===============================
225
+ //NOTICE TESTS
226
  //===============================
227
  DUPX_Log::Info("\n--------------------------------------");
228
+ DUPX_Log::Info("NOTICES");
229
  DUPX_Log::Info("--------------------------------------");
230
  $config_vars = array('WP_CONTENT_DIR', 'WP_CONTENT_URL', 'WPCACHEHOME', 'COOKIE_DOMAIN', 'WP_SITEURL', 'WP_HOME', 'WP_TEMP_DIR');
231
  $config_found = DupUtil::string_has_value($config_vars, $config_file);
232
 
233
  //Files
234
  if ($config_found) {
235
+ $msg = 'WP-CONFIG NOTICE: The wp-config.php has one or more of the following values set [' . implode(", ", $config_vars) . ']. Please validate these values are correct by opening the file and checking the values.';
236
  $JSON['step2']['warnlist'][] = $msg;
237
  DUPX_Log::Info($msg);
238
  }
242
  if ($result) {
243
  while ($row = mysqli_fetch_row($result)) {
244
  if (strlen($row[0])) {
245
+ $msg = "MEDIA SETTINGS NOTICE: The table '{$GLOBALS['FW_TABLEPREFIX']}options' has at least one the following values ['upload_url_path','upload_path'] set please validate settings. These settings can be changed in the wp-admin by going to Settings->Media area see 'Uploading Files'";
246
  $JSON['step2']['warnlist'][] = $msg;
247
  DUPX_Log::Info($msg);
248
  break;
251
  }
252
 
253
  if (empty($JSON['step2']['warnlist'])) {
254
+ DUPX_Log::Info("No Notices Found\n");
255
  }
256
 
257
  $JSON['step2']['warn_all'] = empty($JSON['step2']['warnlist']) ? 0 : count($JSON['step2']['warnlist']);
installer/build/assets/inc.css.php CHANGED
@@ -73,19 +73,22 @@
73
  table.s1-opts-dbhost td {padding:0; margin:0}
74
  table.s1-advopts td:first-child{width:125px; font-weight:bold}
75
 
76
- i#dup-step1-sys-req-msg {font-weight:normal; display:block; padding:0px 0 0 20px;}
77
  div.circle-pass, div.circle-fail {display:block;width:13px;height:13px;border-radius:50px;font-size:20px;color:#fff;line-height:100px;text-align:center;text-decoration:none;box-shadow:1px 1px 2px #000;background:#207D1D;opacity:0.95; display:inline-block;}
78
  div.circle-fail {background:#9A0D1D !important;}
79
  select#logging {font-size:11px}
80
- div.dup-step1-modes {padding:0px 15px 0 0px;}
81
- div#dup-step1-dbconn {margin:auto; text-align:center; margin:15px 0 20px 0px}
82
 
83
- input#dup-step1-dbconn-btn {font-size:11px; height:20px; border:1px solid gray; border-radius:3px; cursor:pointer}
84
- input#dup-step1-dbport-btn {font-size:11px; height:20px; border:1px solid gray; border-radius:3px; cursor:pointer; width:80px}
85
- div.dup-db-test label{display:inline-block; width:150px; font-weight:bold; white-space:nowrap;}
86
- div.dup-db-test small{display:block; margin:5px 0 5px 0px; font-style:italic; color:#444}
 
87
  div#dbconn-test-msg {font-size:12px}
88
- div#dup-step1-dbconn-status {border:1px solid silver; border-radius:3px; background-color:#f9f9f9; padding:2px 5px; margin-top:10px; height:125px; overflow-y: scroll}
 
 
89
 
90
  /*Warning Area and Message */
91
  div.dup-step1-gopro {color: black;font-style: italic;margin-top: 11px; text-align:center;margin-top:30px; padding:5px}
@@ -154,7 +157,7 @@
154
 
155
  /* ============================
156
  BUTTONS */
157
- div.dup-footer-buttons {position:absolute; bottom:20px; padding:10px; width:100%; text-align:right;}
158
  div.dup-footer-buttons input, button {
159
  color:#000; font-size:12px; border-radius:5px; padding:6px 8px 4px 8px; border:1px solid #999;
160
  background-color:#F1F1F1;
73
  table.s1-opts-dbhost td {padding:0; margin:0}
74
  table.s1-advopts td:first-child{width:125px; font-weight:bold}
75
 
76
+ i#s1-sys-req-msg {font-weight:normal; display:block; padding:0px 0 0 20px;}
77
  div.circle-pass, div.circle-fail {display:block;width:13px;height:13px;border-radius:50px;font-size:20px;color:#fff;line-height:100px;text-align:center;text-decoration:none;box-shadow:1px 1px 2px #000;background:#207D1D;opacity:0.95; display:inline-block;}
78
  div.circle-fail {background:#9A0D1D !important;}
79
  select#logging {font-size:11px}
80
+ div.s1-modes {padding:0px 15px 0 0px;}
81
+ div#s1-dbconn {margin:auto; text-align:center; margin:15px 0 20px 0px}
82
 
83
+ input.s1-small-btn {font-size:11px; height:20px; border:1px solid gray; border-radius:3px; cursor:pointer}
84
+ input#s1-dbport-btn { width:80px}
85
+ div.dup-db-test small{display:block; font-style:italic; color:#333; padding:3px 2px 5px 2px; border-bottom:1px dashed silver; margin-bottom:10px; text-align: center }
86
+ table.dup-db-test-dtls {text-align: left; margin: auto}
87
+ table.dup-db-test-dtls td:first-child {font-weight: bold}
88
  div#dbconn-test-msg {font-size:12px}
89
+ div#s1-dbconn-status {border:1px solid silver; border-radius:3px; background-color:#f9f9f9; padding:2px 5px; margin-top:10px; height:165px; overflow-y: scroll}
90
+ div#s1-dbconn-status div.warn-msg {text-align: left; padding:5px; margin:10px 0 10px 0}
91
+ div#s1-dbconn-status div.warn-msg b{color:maroon}
92
 
93
  /*Warning Area and Message */
94
  div.dup-step1-gopro {color: black;font-style: italic;margin-top: 11px; text-align:center;margin-top:30px; padding:5px}
157
 
158
  /* ============================
159
  BUTTONS */
160
+ div.dup-footer-buttons {padding:10px; width:100%; text-align:right;}
161
  div.dup-footer-buttons input, button {
162
  color:#000; font-size:12px; border-radius:5px; padding:6px 8px 4px 8px; border:1px solid #999;
163
  background-color:#F1F1F1;
installer/build/classes/class.logging.php CHANGED
@@ -21,6 +21,8 @@ define('ERR_DBCONNECT_CREATE', 'DATABASE CREATION FAILURE!<br/> Unable to creat
21
  define('ERR_DBTRYCLEAN', 'DATABASE CREATION FAILURE!<br/> Unable to remove all tables from database "%s".<br/> Please remove all tables from this database and try the installation again.');
22
  define('ERR_DBCREATE', 'The database "%s" does not exists.<br/> Change mode to create in order to create a new database.');
23
  define('ERR_DBEMPTY', 'The database "%s" has "%s" tables. The Duplicator only works with an EMPTY database. Enable the action "Connect and Remove All Data" radio button to remove all tables and or create a new database. Some hosting providers do not allow table removal from scripts. In this case you will need to login to your hosting providers control panel and remove the tables manually. Please contact your hosting provider for further details. Always backup all your data before proceeding!');
 
 
24
 
25
  /** * *****************************************************
26
  * DUPX_Log
21
  define('ERR_DBTRYCLEAN', 'DATABASE CREATION FAILURE!<br/> Unable to remove all tables from database "%s".<br/> Please remove all tables from this database and try the installation again.');
22
  define('ERR_DBCREATE', 'The database "%s" does not exists.<br/> Change mode to create in order to create a new database.');
23
  define('ERR_DBEMPTY', 'The database "%s" has "%s" tables. The Duplicator only works with an EMPTY database. Enable the action "Connect and Remove All Data" radio button to remove all tables and or create a new database. Some hosting providers do not allow table removal from scripts. In this case you will need to login to your hosting providers control panel and remove the tables manually. Please contact your hosting provider for further details. Always backup all your data before proceeding!');
24
+ define('ERR_TESTDB_UTF8', 'UTF8 Characters were detected as part of the database connection string. If your connection fails be sure to update the MySQL my.ini configuration file setting to support UTF8 characters by enabling this option [character_set_server=utf8] and restarting the database server.');
25
+ define('ERR_TESTDB_VERSION', 'In order to avoid database incompatibility issues make sure the database versions between the build and installer servers are as close as possible. If the package was created on a newer database version than where it is being installed then you might run into issues.<br/><br/> It is best to make sure the server where the installer is running has the same or higher version number than where it was built. If the major and minor version are the same or close for example [5.7 to 5.6], then the migration should work without issues. A version pair of [5.7 to 5.1] is more likely to cause issues unless you have a very simple setup. If the versions are too far apart work with your hosting provider to upgrade the MySQL engine on this server.');
26
 
27
  /** * *****************************************************
28
  * DUPX_Log
installer/build/main.installer.php CHANGED
@@ -98,6 +98,14 @@ $GLOBALS['REPLACE_LIST']
98
  array_push($GLOBALS['REPLACE_LIST'], array('search' => 'ftps://oldurl/', 'replace' => 'ftps://newurl/'));
99
  ================================================================================================= */
100
 
 
 
 
 
 
 
 
 
101
  $GLOBALS['FW_TABLEPREFIX'] = '%fwrite_wp_tableprefix%';
102
  $GLOBALS['FW_URL_OLD'] = '%fwrite_url_old%';
103
  $GLOBALS['FW_URL_NEW'] = '%fwrite_url_new%';
98
  array_push($GLOBALS['REPLACE_LIST'], array('search' => 'ftps://oldurl/', 'replace' => 'ftps://newurl/'));
99
  ================================================================================================= */
100
 
101
+ //COMPARE VALUES
102
+ $GLOBALS['FW_CREATED'] = '%fwrite_created%';
103
+ $GLOBALS['FW_VERSION_DUP'] = '%fwrite_version_dup%';
104
+ $GLOBALS['FW_VERSION_WP'] = '%fwrite_version_wp%';
105
+ $GLOBALS['FW_VERSION_DB'] = '%fwrite_version_db%';
106
+ $GLOBALS['FW_VERSION_PHP'] = '%fwrite_version_php%';
107
+ $GLOBALS['FW_VERSION_OS'] = '%fwrite_version_os%';
108
+ //GENERAL
109
  $GLOBALS['FW_TABLEPREFIX'] = '%fwrite_wp_tableprefix%';
110
  $GLOBALS['FW_URL_OLD'] = '%fwrite_url_old%';
111
  $GLOBALS['FW_URL_NEW'] = '%fwrite_url_new%';
installer/build/view.help.php CHANGED
@@ -34,6 +34,17 @@ HELP FORM -->
34
  <b>Password:</b><br/>
35
  The password of the MySQL database server user.
36
  <br/><br/>
 
 
 
 
 
 
 
 
 
 
 
37
 
38
  <b>Name:</b><br/>
39
  The name of the database to which this installation will connect and install the new tables onto.
34
  <b>Password:</b><br/>
35
  The password of the MySQL database server user.
36
  <br/><br/>
37
+
38
+ <b>Test Connection:</b><br/>
39
+ The test connection button will help validate if the connection parameters are correct for this server. There are three separate validation parameters:
40
+ <ul>
41
+ <li><b>Host:</b> Returns a status to indicate if the server host name is a valid host name <br/><br/></li>
42
+ <li><b>Database:</b> Returns a status to indicate if the database name is a valid <br/><br/></li>
43
+ <li><b>Version:</b> Shows the difference in database engine version numbers. If the package was created on a newer database version than where its trying to
44
+ be installed then you can run into issues. Its best to make sure the server where the installer is running has the same or higher version number than
45
+ where it was built.</li>
46
+ </ul>
47
+ <br/>
48
 
49
  <b>Name:</b><br/>
50
  The name of the database to which this installation will connect and install the new tables onto.
installer/build/view.step1.php CHANGED
@@ -126,7 +126,7 @@
126
  });
127
 
128
  $('#dbconn-test-msg').html("Attempting Connection. Please wait...");
129
- $("#dup-step1-dbconn-status").show(500);
130
 
131
  };
132
 
@@ -138,7 +138,7 @@
138
 
139
  Duplicator.togglePort = function () {
140
 
141
- $('#dup-step1-dbport-btn').hide();
142
  $('#dbport').show();
143
  }
144
 
@@ -183,7 +183,7 @@ VIEW: STEP 1- INPUT -->
183
  </div>
184
  </div><br/>
185
 
186
- <i id="dup-step1-sys-req-msg">
187
  This installation will not be able to proceed until the system requirements pass. Please validate your system requirements by clicking on the button above.
188
  In order to get these values to pass please contact your server administrator, hosting provider or visit the online FAQ.
189
  </i><br/>
@@ -216,11 +216,11 @@ VIEW: STEP 1- INPUT -->
216
  <tr>
217
  <td>Action</td>
218
  <td>
219
- <div class="dup-step1-modes">
220
  <input type="radio" name="dbaction" id="dbaction-create" value="create" checked="checked" />
221
  <label for="dbaction-create">Create New Database</label>
222
  </div>
223
- <div class="dup-step1-modes">
224
  <input type="radio" name="dbaction" id="dbaction-empty" value="empty" />
225
  <label for="dbaction-empty">Connect and Remove All Data</label>
226
  </div>
@@ -233,7 +233,7 @@ VIEW: STEP 1- INPUT -->
233
  <tr>
234
  <td><input type="text" name="dbhost" id="dbhost" required="true" value="<?php echo htmlspecialchars($GLOBALS['FW_DBHOST']); ?>" placeholder="localhost" style="width:410px" /></td>
235
  <td style="vertical-align:top">
236
- <input id="dup-step1-dbport-btn" type="button" onclick="Duplicator.togglePort()" style="" value="Port: <?php echo htmlspecialchars($GLOBALS['FW_DBPORT']); ?>" />
237
  <input name="dbport" id="dbport" type="text" style="width:80px; display:none" value="<?php echo htmlspecialchars($GLOBALS['FW_DBPORT']); ?>" />
238
  </td>
239
  </tr>
@@ -257,13 +257,13 @@ VIEW: STEP 1- INPUT -->
257
 
258
  <!-- =========================================
259
  DIALOG: DB CONNECTION CHECK -->
260
- <div id="dup-step1-dbconn">
261
- <input id="dup-step1-dbconn-btn" type="button" onclick="Duplicator.dlgTestDB()" style="" value="Test Connection" />
262
- <div id="dup-step1-dbconn-status" style="display:none">
263
  <div style="padding: 0px 10px 10px 10px;">
264
  <div id="dbconn-test-msg" style="min-height:80px"></div>
265
  </div>
266
- <small><a href="javascript:void()" onclick="$('#dup-step1-dbconn-status').hide(1000)">Hide Connection Details</a></small>
267
  </div>
268
  </div>
269
 
@@ -356,7 +356,7 @@ VIEW: STEP 1- INPUT -->
356
  <div id="dup-step1-warning-emptydb">
357
  The remove action will delete <u>all</u> tables and data from the database!
358
  </div>
359
- </div><br/><br/><br/>
360
 
361
  <div class="dup-footer-buttons">
362
  <input id="dup-step1-deploy-btn" type="button" value=" Run Deployment " onclick="Duplicator.runDeployment()" />
126
  });
127
 
128
  $('#dbconn-test-msg').html("Attempting Connection. Please wait...");
129
+ $("#s1-dbconn-status").show(500);
130
 
131
  };
132
 
138
 
139
  Duplicator.togglePort = function () {
140
 
141
+ $('#s1-dbport-btn').hide();
142
  $('#dbport').show();
143
  }
144
 
183
  </div>
184
  </div><br/>
185
 
186
+ <i id="s1-sys-req-msg">
187
  This installation will not be able to proceed until the system requirements pass. Please validate your system requirements by clicking on the button above.
188
  In order to get these values to pass please contact your server administrator, hosting provider or visit the online FAQ.
189
  </i><br/>
216
  <tr>
217
  <td>Action</td>
218
  <td>
219
+ <div class="s1-modes">
220
  <input type="radio" name="dbaction" id="dbaction-create" value="create" checked="checked" />
221
  <label for="dbaction-create">Create New Database</label>
222
  </div>
223
+ <div class="s1-modes">
224
  <input type="radio" name="dbaction" id="dbaction-empty" value="empty" />
225
  <label for="dbaction-empty">Connect and Remove All Data</label>
226
  </div>
233
  <tr>
234
  <td><input type="text" name="dbhost" id="dbhost" required="true" value="<?php echo htmlspecialchars($GLOBALS['FW_DBHOST']); ?>" placeholder="localhost" style="width:410px" /></td>
235
  <td style="vertical-align:top">
236
+ <input id="s1-dbport-btn" type="button" onclick="Duplicator.togglePort()" class="s1-small-btn" value="Port: <?php echo htmlspecialchars($GLOBALS['FW_DBPORT']); ?>" />
237
  <input name="dbport" id="dbport" type="text" style="width:80px; display:none" value="<?php echo htmlspecialchars($GLOBALS['FW_DBPORT']); ?>" />
238
  </td>
239
  </tr>
257
 
258
  <!-- =========================================
259
  DIALOG: DB CONNECTION CHECK -->
260
+ <div id="s1-dbconn">
261
+ <input type="button" onclick="Duplicator.dlgTestDB()" class="s1-small-btn" value="Test Connection" />
262
+ <div id="s1-dbconn-status" style="display:none">
263
  <div style="padding: 0px 10px 10px 10px;">
264
  <div id="dbconn-test-msg" style="min-height:80px"></div>
265
  </div>
266
+ <small><input type="button" onclick="$('#s1-dbconn-status').hide(500)" class="s1-small-btn" value="Hide Message" /></small>
267
  </div>
268
  </div>
269
 
356
  <div id="dup-step1-warning-emptydb">
357
  The remove action will delete <u>all</u> tables and data from the database!
358
  </div>
359
+ </div><br/><br/>
360
 
361
  <div class="dup-footer-buttons">
362
  <input id="dup-step1-deploy-btn" type="button" value=" Run Deployment " onclick="Duplicator.runDeployment()" />
installer/build/view.step2.php CHANGED
@@ -255,7 +255,7 @@ VIEW: STEP 2- INPUT -->
255
 
256
  </div>
257
 
258
- <div class="dup-footer-buttons">
259
  <input id="dup-step2-next" type="button" value=" Run Update " onclick="Duplicator.runUpdate()" />
260
  </div>
261
  </form>
255
 
256
  </div>
257
 
258
+ <div class="dup-footer-buttons" style='position: absolute; bottom:20px'>
259
  <input id="dup-step2-next" type="button" value=" Run Update " onclick="Duplicator.runUpdate()" />
260
  </div>
261
  </form>
installer/build/view.step3.php CHANGED
@@ -55,7 +55,7 @@ VIEW: STEP 3- INPUT -->
55
  <i id="dup-step3-install-report-count">
56
  <span data-bind="with: status.step1">Deploy Errors: (<span data-bind="text: query_errs"></span>)</span> &nbsp;
57
  <span data-bind="with: status.step2">Update Notices: (<span data-bind="text: err_all"></span>)</span> &nbsp; &nbsp;
58
- <span data-bind="with: status.step2" style="color:#888"><b>Warnings:</b> (<span data-bind="text: warn_all"></span>)</span>
59
  </i>
60
  </td>
61
  </tr>
@@ -110,7 +110,7 @@ VIEW: STEP 3- INPUT -->
110
  <a href="javascript:void(0);" onclick="$('#dup-step3-errs-upd').toggle(400)">Step2: Update Results (<span data-bind="text: err_all"></span>)</a>
111
  </td>
112
  <td data-bind="with: status.step2">
113
- <a href="#dup-step2-errs-warn-anchor" onclick="$('#dup-step3-warnlist').toggle(400)">General Warnings (<span data-bind="text: warn_all"></span>)</a>
114
  </td>
115
  </tr>
116
  <tr><td colspan="4"></td></tr>
@@ -184,17 +184,17 @@ VIEW: STEP 3- INPUT -->
184
  <!-- WARNINGS-->
185
  <div id="dup-step3-warnlist" class="s3-err-msg">
186
  <a href="#" id="dup-step2-errs-warn-anchor"></a>
187
- <b>GENERAL WARNINGS</b><br/>
188
  <div class="info">
189
- The following is a list of warnings that may need to be fixed in order to finalize your setup. For more details about
190
- warnings see the <a href="http://codex.wordpress.org/" target="_blank">wordpress codex.</a>.
191
  </div>
192
  <div class="content">
193
  <div data-bind="foreach: status.step2.warnlist">
194
  <div data-bind="text: $data"></div>
195
  </div>
196
  <div data-bind="visible: status.step2.warnlist.length == 0">
197
- No warnings found
198
  </div>
199
  </div>
200
  </div><br/>
55
  <i id="dup-step3-install-report-count">
56
  <span data-bind="with: status.step1">Deploy Errors: (<span data-bind="text: query_errs"></span>)</span> &nbsp;
57
  <span data-bind="with: status.step2">Update Notices: (<span data-bind="text: err_all"></span>)</span> &nbsp; &nbsp;
58
+ <span data-bind="with: status.step2" style="color:#888"><b>General Notices:</b> (<span data-bind="text: warn_all"></span>)</span>
59
  </i>
60
  </td>
61
  </tr>
110
  <a href="javascript:void(0);" onclick="$('#dup-step3-errs-upd').toggle(400)">Step2: Update Results (<span data-bind="text: err_all"></span>)</a>
111
  </td>
112
  <td data-bind="with: status.step2">
113
+ <a href="#dup-step2-errs-warn-anchor" onclick="$('#dup-step3-warnlist').toggle(400)">General Notices (<span data-bind="text: warn_all"></span>)</a>
114
  </td>
115
  </tr>
116
  <tr><td colspan="4"></td></tr>
184
  <!-- WARNINGS-->
185
  <div id="dup-step3-warnlist" class="s3-err-msg">
186
  <a href="#" id="dup-step2-errs-warn-anchor"></a>
187
+ <b>GENERAL NOTICES</b><br/>
188
  <div class="info">
189
+ The following is a list of notices that may need to be fixed in order to finalize your setup. These values should only be investigated if your running into
190
+ issues with your site. For more details see the <a href="https://codex.wordpress.org/Editing_wp-config.php" target="_blank">WordPress Codex</a>.
191
  </div>
192
  <div class="content">
193
  <div data-bind="foreach: status.step2.warnlist">
194
  <div data-bind="text: $data"></div>
195
  </div>
196
  <div data-bind="visible: status.step2.warnlist.length == 0">
197
+ No notices found
198
  </div>
199
  </div>
200
  </div><br/>
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: www.lifeinthegrid.com/partner
4
  Tags: backup, restore, move, migrate, localhost, synchronize, duplicate, clone, automate, niche
5
  Requires at least: 4.0
6
  Tested up to: 4.5.2
7
- Stable tag: 1.1.10
8
  License: GPLv2
9
 
10
  Duplicate, clone, backup, move and transfer an entire site from one location to another.
4
  Tags: backup, restore, move, migrate, localhost, synchronize, duplicate, clone, automate, niche
5
  Requires at least: 4.0
6
  Tested up to: 4.5.2
7
+ Stable tag: 1.1.12
8
  License: GPLv2
9
 
10
  Duplicate, clone, backup, move and transfer an entire site from one location to another.