Version Description
Download this release
Release Info
Developer | cory@lamle.org |
Plugin | Duplicator – WordPress Migration Plugin |
Version | 1.2.16 |
Comparing to | |
See all releases |
Code changes from version 1.2.14 to 1.2.16
- classes/package/class.pack.installer.php +0 -9
- classes/package/class.pack.php +5 -11
- define.php +1 -1
- duplicator.php +1 -1
- installer/build/classes/config/class.conf.wp.php +4 -3
- installer/build/ctrls/ctrl.step3.php +35 -24
- installer/build/main.installer.php +0 -4
- installer/build/view.help.php +10 -11
- installer/build/view.step3.php +9 -9
- readme.txt +1 -1
- views/packages/details/detail.php +0 -4
- views/packages/main/packages.php +24 -5
- views/packages/main/s1.setup2.php +0 -43
- views/packages/main/s2.scan1.php +1 -1
classes/package/class.pack.installer.php
CHANGED
@@ -10,11 +10,6 @@ class DUP_Installer
|
|
10 |
public $OptsDBPort;
|
11 |
public $OptsDBName;
|
12 |
public $OptsDBUser;
|
13 |
-
public $OptsSSLAdmin;
|
14 |
-
public $OptsSSLLogin;
|
15 |
-
public $OptsCacheWP;
|
16 |
-
public $OptsCachePath;
|
17 |
-
public $OptsURLNew;
|
18 |
//PROTECTED
|
19 |
protected $Package;
|
20 |
|
@@ -156,15 +151,11 @@ class DUP_Installer
|
|
156 |
"fwrite_archive_onlydb" => $this->Package->Archive->ExportOnlyDB,
|
157 |
"fwrite_package_notes" => $this->Package->Notes,
|
158 |
"fwrite_secure_name" => $this->Package->NameHash,
|
159 |
-
"fwrite_url_new" => $this->Package->Installer->OptsURLNew,
|
160 |
"fwrite_dbhost" => $this->Package->Installer->OptsDBHost,
|
161 |
"fwrite_dbport" => $this->Package->Installer->OptsDBPort,
|
162 |
"fwrite_dbname" => $this->Package->Installer->OptsDBName,
|
163 |
"fwrite_dbuser" => $this->Package->Installer->OptsDBUser,
|
164 |
"fwrite_dbpass" => '',
|
165 |
-
"fwrite_ssl_admin" => $this->Package->Installer->OptsSSLAdmin,
|
166 |
-
"fwrite_cache_wp" => $this->Package->Installer->OptsCacheWP,
|
167 |
-
"fwrite_cache_path" => $this->Package->Installer->OptsCachePath,
|
168 |
"fwrite_wp_tableprefix" => $wpdb->prefix,
|
169 |
"fwrite_opts_delete" => json_encode($deleteOpts),
|
170 |
"fwrite_blogname" => esc_html(get_option('blogname')),
|
10 |
public $OptsDBPort;
|
11 |
public $OptsDBName;
|
12 |
public $OptsDBUser;
|
|
|
|
|
|
|
|
|
|
|
13 |
//PROTECTED
|
14 |
protected $Package;
|
15 |
|
151 |
"fwrite_archive_onlydb" => $this->Package->Archive->ExportOnlyDB,
|
152 |
"fwrite_package_notes" => $this->Package->Notes,
|
153 |
"fwrite_secure_name" => $this->Package->NameHash,
|
|
|
154 |
"fwrite_dbhost" => $this->Package->Installer->OptsDBHost,
|
155 |
"fwrite_dbport" => $this->Package->Installer->OptsDBPort,
|
156 |
"fwrite_dbname" => $this->Package->Installer->OptsDBName,
|
157 |
"fwrite_dbuser" => $this->Package->Installer->OptsDBUser,
|
158 |
"fwrite_dbpass" => '',
|
|
|
|
|
|
|
159 |
"fwrite_wp_tableprefix" => $wpdb->prefix,
|
160 |
"fwrite_opts_delete" => json_encode($deleteOpts),
|
161 |
"fwrite_blogname" => esc_html(get_option('blogname')),
|
classes/package/class.pack.php
CHANGED
@@ -133,10 +133,8 @@ class DUP_Package
|
|
133 |
$report['SRV']['WP']['ALL'],
|
134 |
$report['ARC']['Status']['Size'],
|
135 |
$report['ARC']['Status']['Names'],
|
136 |
-
//$report['ARC']['Status']['Big'],
|
137 |
$db['Status']['DB_Size'],
|
138 |
-
$db['Status']['DB_Rows']
|
139 |
-
$db['Status']['DB_Case']);
|
140 |
|
141 |
//array_count_values will throw a warning message if it has null values,
|
142 |
//so lets replace all nulls with empty string
|
@@ -145,9 +143,10 @@ class DUP_Package
|
|
145 |
$warnings[$i] = '';
|
146 |
}
|
147 |
}
|
|
|
148 |
$warn_counts = is_array($warnings) ? array_count_values($warnings) : 0;
|
149 |
-
$report['RPT']['Warnings'] = $warn_counts['Warn'];
|
150 |
-
$report['RPT']['Success'] = $warn_counts['Good'];
|
151 |
$report['RPT']['ScanTime'] = DUP_Util::elapsedTime(DUP_Util::getMicrotime(), $timerStart);
|
152 |
$fp = fopen(DUPLICATOR_SSDIR_PATH_TMP."/{$this->ScanFile}", 'w');
|
153 |
|
@@ -161,7 +160,7 @@ class DUP_Package
|
|
161 |
/**
|
162 |
* Starts the package build process
|
163 |
*
|
164 |
-
* @return obj
|
165 |
*/
|
166 |
public function runBuild()
|
167 |
{
|
@@ -334,11 +333,6 @@ class DUP_Package
|
|
334 |
$this->Installer->OptsDBPort = esc_html($post['dbport']);
|
335 |
$this->Installer->OptsDBName = esc_html($post['dbname']);
|
336 |
$this->Installer->OptsDBUser = esc_html($post['dbuser']);
|
337 |
-
$this->Installer->OptsSSLAdmin = isset($post['ssl-admin']) ? 1 : 0;
|
338 |
-
$this->Installer->OptsSSLLogin = isset($post['ssl-login']) ? 1 : 0;
|
339 |
-
$this->Installer->OptsCacheWP = isset($post['cache-wp']) ? 1 : 0;
|
340 |
-
$this->Installer->OptsCachePath = isset($post['cache-path']) ? 1 : 0;
|
341 |
-
$this->Installer->OptsURLNew = esc_html($post['url-new']);
|
342 |
//DATABASE
|
343 |
$this->Database->FilterOn = isset($post['dbfilter-on']) ? 1 : 0;
|
344 |
$this->Database->FilterTables = esc_html($tablelist);
|
133 |
$report['SRV']['WP']['ALL'],
|
134 |
$report['ARC']['Status']['Size'],
|
135 |
$report['ARC']['Status']['Names'],
|
|
|
136 |
$db['Status']['DB_Size'],
|
137 |
+
$db['Status']['DB_Rows']);
|
|
|
138 |
|
139 |
//array_count_values will throw a warning message if it has null values,
|
140 |
//so lets replace all nulls with empty string
|
143 |
$warnings[$i] = '';
|
144 |
}
|
145 |
}
|
146 |
+
|
147 |
$warn_counts = is_array($warnings) ? array_count_values($warnings) : 0;
|
148 |
+
$report['RPT']['Warnings'] = is_null($warn_counts['Warn']) ? 0 : $warn_counts['Warn'];
|
149 |
+
$report['RPT']['Success'] = is_null($warn_counts['Good']) ? 0 : $warn_counts['Good'];
|
150 |
$report['RPT']['ScanTime'] = DUP_Util::elapsedTime(DUP_Util::getMicrotime(), $timerStart);
|
151 |
$fp = fopen(DUPLICATOR_SSDIR_PATH_TMP."/{$this->ScanFile}", 'w');
|
152 |
|
160 |
/**
|
161 |
* Starts the package build process
|
162 |
*
|
163 |
+
* @return obj Returns a DUP_Package object
|
164 |
*/
|
165 |
public function runBuild()
|
166 |
{
|
333 |
$this->Installer->OptsDBPort = esc_html($post['dbport']);
|
334 |
$this->Installer->OptsDBName = esc_html($post['dbname']);
|
335 |
$this->Installer->OptsDBUser = esc_html($post['dbuser']);
|
|
|
|
|
|
|
|
|
|
|
336 |
//DATABASE
|
337 |
$this->Database->FilterOn = isset($post['dbfilter-on']) ? 1 : 0;
|
338 |
$this->Database->FilterTables = esc_html($tablelist);
|
define.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
//Prevent directly browsing to the file
|
3 |
if (function_exists('plugin_dir_url'))
|
4 |
{
|
5 |
-
define('DUPLICATOR_VERSION', '1.2.
|
6 |
define('DUPLICATOR_HOMEPAGE', 'http://lifeinthegrid.com/labs/duplicator');
|
7 |
define('DUPLICATOR_PLUGIN_URL', plugin_dir_url(__FILE__));
|
8 |
define('DUPLICATOR_SITE_URL', get_site_url());
|
2 |
//Prevent directly browsing to the file
|
3 |
if (function_exists('plugin_dir_url'))
|
4 |
{
|
5 |
+
define('DUPLICATOR_VERSION', '1.2.16');
|
6 |
define('DUPLICATOR_HOMEPAGE', 'http://lifeinthegrid.com/labs/duplicator');
|
7 |
define('DUPLICATOR_PLUGIN_URL', plugin_dir_url(__FILE__));
|
8 |
define('DUPLICATOR_SITE_URL', get_site_url());
|
duplicator.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Duplicator
|
4 |
Plugin URI: http://www.lifeinthegrid.com/duplicator/
|
5 |
Description: Migrate and backup a copy of your WordPress files and database. Duplicate and move a site from one location to another quickly.
|
6 |
-
Version: 1.2.
|
7 |
Author: Snap Creek
|
8 |
Author URI: http://www.snapcreek.com/duplicator/
|
9 |
Text Domain: duplicator
|
3 |
Plugin Name: Duplicator
|
4 |
Plugin URI: http://www.lifeinthegrid.com/duplicator/
|
5 |
Description: Migrate and backup a copy of your WordPress files and database. Duplicate and move a site from one location to another quickly.
|
6 |
+
Version: 1.2.16
|
7 |
Author: Snap Creek
|
8 |
Author URI: http://www.snapcreek.com/duplicator/
|
9 |
Text Domain: duplicator
|
installer/build/classes/config/class.conf.wp.php
CHANGED
@@ -98,8 +98,9 @@ class DUPX_WPConfig
|
|
98 |
"'WP_HOME', '{$_POST['url_new']}');",
|
99 |
"'WP_SITEURL', '{$_POST['url_new']}');");
|
100 |
|
101 |
-
//Not sure how well tokenParser works on all servers so only using for
|
102 |
-
|
|
|
103 |
$defines = self::tokenParser($wpconfig_path);
|
104 |
|
105 |
//WP_CONTENT_DIR
|
@@ -113,7 +114,7 @@ class DUPX_WPConfig
|
|
113 |
|
114 |
//WP_CONTENT_URL
|
115 |
if (isset($defines['WP_CONTENT_URL'])) {
|
116 |
-
$val = str_replace($_POST['url_old'], $_POST['url_new'], $defines['WP_CONTENT_URL'], $count);
|
117 |
if ($count > 0) {
|
118 |
array_push($patterns, "/('|\")WP_CONTENT_URL.*?\)\s*;/");
|
119 |
array_push($replace, "'WP_CONTENT_URL', '{$val}');");
|
98 |
"'WP_HOME', '{$_POST['url_new']}');",
|
99 |
"'WP_SITEURL', '{$_POST['url_new']}');");
|
100 |
|
101 |
+
//Not sure how well tokenParser works on all servers so only using for not critical constants at this point.
|
102 |
+
//$count checks for dynamic variable types such as: define('WP_TEMP_DIR', 'D:/' . $var . 'somepath/');
|
103 |
+
//which should not be updated.
|
104 |
$defines = self::tokenParser($wpconfig_path);
|
105 |
|
106 |
//WP_CONTENT_DIR
|
114 |
|
115 |
//WP_CONTENT_URL
|
116 |
if (isset($defines['WP_CONTENT_URL'])) {
|
117 |
+
$val = str_replace($_POST['url_old'] . '/', $_POST['url_new'] . '/', $defines['WP_CONTENT_URL'], $count);
|
118 |
if ($count > 0) {
|
119 |
array_push($patterns, "/('|\")WP_CONTENT_URL.*?\)\s*;/");
|
120 |
array_push($replace, "'WP_CONTENT_URL', '{$val}');");
|
installer/build/ctrls/ctrl.step3.php
CHANGED
@@ -25,7 +25,7 @@ DUPX_DB::setCharset($dbh, $_POST['dbcharset'], $_POST['dbcollate']);
|
|
25 |
$_POST['blogname'] = mysqli_real_escape_string($dbh, $_POST['blogname']);
|
26 |
$_POST['postguid'] = isset($_POST['postguid']) && $_POST['postguid'] == 1 ? 1 : 0;
|
27 |
$_POST['fullsearch'] = isset($_POST['fullsearch']) && $_POST['fullsearch'] == 1 ? 1 : 0;
|
28 |
-
$_POST['
|
29 |
$_POST['path_old'] = isset($_POST['path_old']) ? trim($_POST['path_old']) : null;
|
30 |
$_POST['path_new'] = isset($_POST['path_new']) ? trim($_POST['path_new']) : null;
|
31 |
$_POST['siteurl'] = isset($_POST['siteurl']) ? rtrim(trim($_POST['siteurl']), '/') : null;
|
@@ -99,33 +99,47 @@ $url_new_json = str_replace('"', "", json_encode($_POST['url_new']));
|
|
99 |
$path_old_json = str_replace('"', "", json_encode($_POST['path_old']));
|
100 |
$path_new_json = str_replace('"', "", json_encode($_POST['path_new']));
|
101 |
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
array('search' => urlencode($_POST['url_old']), 'replace' => urlencode($_POST['url_new'])),
|
109 |
-
array('search' => rtrim(DUPX_U::unsetSafePath($_POST['path_old']), '\\'), 'replace' => rtrim($_POST['path_new'], '/'))
|
110 |
);
|
111 |
|
112 |
-
//
|
113 |
-
if ($_POST['
|
114 |
-
|
115 |
-
//RAW '//'
|
116 |
$url_old_raw = str_ireplace(array('http://', 'https://'), '//', $_POST['url_old']);
|
117 |
$url_new_raw = str_ireplace(array('http://', 'https://'), '//', $_POST['url_new']);
|
118 |
$url_old_raw_json = str_replace('"', "", json_encode($url_old_raw));
|
119 |
$url_new_raw_json = str_replace('"', "", json_encode($url_new_raw));
|
120 |
|
121 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
if (stristr($_POST['url_old'], 'http:')) {
|
123 |
//Search for https urls
|
124 |
$url_old_diff = str_ireplace('http:', 'https:', $_POST['url_old']);
|
125 |
$url_new_diff = str_ireplace('http:', 'https:', $_POST['url_new']);
|
126 |
$url_old_diff_json = str_replace('"', "", json_encode($url_old_diff));
|
127 |
$url_new_diff_json = str_replace('"', "", json_encode($url_new_diff));
|
128 |
-
|
129 |
} else {
|
130 |
//Search for http urls
|
131 |
$url_old_diff = str_ireplace('https:', 'http:', $_POST['url_old']);
|
@@ -135,16 +149,13 @@ if ($_POST['urlextended']) {
|
|
135 |
}
|
136 |
|
137 |
array_push($GLOBALS['REPLACE_LIST'],
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
//INVERSE
|
144 |
-
array('search' => $url_old_diff, 'replace' => $url_new_diff),
|
145 |
-
array('search' => $url_old_diff_json, 'replace' => $url_new_diff_json),
|
146 |
-
array('search' => urlencode($url_old_diff), 'replace' => urlencode($url_new_diff))
|
147 |
);
|
|
|
|
|
148 |
}
|
149 |
|
150 |
|
25 |
$_POST['blogname'] = mysqli_real_escape_string($dbh, $_POST['blogname']);
|
26 |
$_POST['postguid'] = isset($_POST['postguid']) && $_POST['postguid'] == 1 ? 1 : 0;
|
27 |
$_POST['fullsearch'] = isset($_POST['fullsearch']) && $_POST['fullsearch'] == 1 ? 1 : 0;
|
28 |
+
$_POST['urlrelative'] = isset($_POST['urlrelative']) && $_POST['urlrelative'] == 1 ? 1 : 0;
|
29 |
$_POST['path_old'] = isset($_POST['path_old']) ? trim($_POST['path_old']) : null;
|
30 |
$_POST['path_new'] = isset($_POST['path_new']) ? trim($_POST['path_new']) : null;
|
31 |
$_POST['siteurl'] = isset($_POST['siteurl']) ? rtrim(trim($_POST['siteurl']), '/') : null;
|
99 |
$path_old_json = str_replace('"', "", json_encode($_POST['path_old']));
|
100 |
$path_new_json = str_replace('"', "", json_encode($_POST['path_new']));
|
101 |
|
102 |
+
//DIRS PATHS
|
103 |
+
array_push($GLOBALS['REPLACE_LIST'],
|
104 |
+
array('search' => $_POST['path_old'], 'replace' => $_POST['path_new']),
|
105 |
+
array('search' => $path_old_json, 'replace' => $path_new_json),
|
106 |
+
array('search' => urlencode($_POST['path_old']), 'replace' => urlencode($_POST['path_new'])),
|
107 |
+
array('search' => rtrim(DUPX_U::unsetSafePath($_POST['path_old']), '\\'), 'replace' => rtrim($_POST['path_new'], '/'))
|
|
|
|
|
108 |
);
|
109 |
|
110 |
+
//SEARCH WITH NO PROTOCAL: RAW "//"
|
111 |
+
if ($_POST['urlrelative']) {
|
112 |
+
|
|
|
113 |
$url_old_raw = str_ireplace(array('http://', 'https://'), '//', $_POST['url_old']);
|
114 |
$url_new_raw = str_ireplace(array('http://', 'https://'), '//', $_POST['url_new']);
|
115 |
$url_old_raw_json = str_replace('"', "", json_encode($url_old_raw));
|
116 |
$url_new_raw_json = str_replace('"', "", json_encode($url_new_raw));
|
117 |
|
118 |
+
array_push($GLOBALS['REPLACE_LIST'],
|
119 |
+
//RAW
|
120 |
+
array('search' => $url_old_raw, 'replace' => $url_new_raw),
|
121 |
+
array('search' => $url_old_raw_json, 'replace' => $url_new_raw_json),
|
122 |
+
array('search' => urlencode($url_old_raw), 'replace' => urlencode($url_new_raw))
|
123 |
+
);
|
124 |
+
|
125 |
+
//SEARCH ONLY HTTP(S)
|
126 |
+
} else {
|
127 |
+
|
128 |
+
//URL PATHS
|
129 |
+
array_push($GLOBALS['REPLACE_LIST'],
|
130 |
+
array('search' => $_POST['url_old'], 'replace' => $_POST['url_new']),
|
131 |
+
array('search' => $url_old_json, 'replace' => $url_new_json),
|
132 |
+
array('search' => urlencode($_POST['url_old']), 'replace' => urlencode($_POST['url_new']))
|
133 |
+
);
|
134 |
+
|
135 |
+
//INVERSE: Apply a search for the inverse of the orginal http vs https
|
136 |
if (stristr($_POST['url_old'], 'http:')) {
|
137 |
//Search for https urls
|
138 |
$url_old_diff = str_ireplace('http:', 'https:', $_POST['url_old']);
|
139 |
$url_new_diff = str_ireplace('http:', 'https:', $_POST['url_new']);
|
140 |
$url_old_diff_json = str_replace('"', "", json_encode($url_old_diff));
|
141 |
$url_new_diff_json = str_replace('"', "", json_encode($url_new_diff));
|
142 |
+
|
143 |
} else {
|
144 |
//Search for http urls
|
145 |
$url_old_diff = str_ireplace('https:', 'http:', $_POST['url_old']);
|
149 |
}
|
150 |
|
151 |
array_push($GLOBALS['REPLACE_LIST'],
|
152 |
+
//INVERSE
|
153 |
+
array('search' => $url_old_diff, 'replace' => $url_new_diff),
|
154 |
+
array('search' => $url_old_diff_json, 'replace' => $url_new_diff_json),
|
155 |
+
array('search' => urlencode($url_old_diff), 'replace' => urlencode($url_new_diff))
|
|
|
|
|
|
|
|
|
|
|
156 |
);
|
157 |
+
|
158 |
+
|
159 |
}
|
160 |
|
161 |
|
installer/build/main.installer.php
CHANGED
@@ -83,7 +83,6 @@ $GLOBALS['FW_VERSION_OS'] = '%fwrite_version_os%';
|
|
83 |
//GENERAL
|
84 |
$GLOBALS['FW_TABLEPREFIX'] = '%fwrite_wp_tableprefix%';
|
85 |
$GLOBALS['FW_URL_OLD'] = '%fwrite_url_old%';
|
86 |
-
$GLOBALS['FW_URL_NEW'] = '%fwrite_url_new%';
|
87 |
$GLOBALS['FW_PACKAGE_NAME'] = '%fwrite_archive_name%';
|
88 |
$GLOBALS['FW_PACKAGE_NOTES'] = '%fwrite_package_notes%';
|
89 |
$GLOBALS['FW_SECURE_NAME'] = '%fwrite_secure_name%';
|
@@ -94,9 +93,6 @@ $GLOBALS['FW_DBPORT'] = empty($GLOBALS['FW_DBPORT']) ? 3306 : $GLOBALS['FW_DBP
|
|
94 |
$GLOBALS['FW_DBNAME'] = '%fwrite_dbname%';
|
95 |
$GLOBALS['FW_DBUSER'] = '%fwrite_dbuser%';
|
96 |
$GLOBALS['FW_DBPASS'] = '%fwrite_dbpass%';
|
97 |
-
$GLOBALS['FW_SSL_ADMIN'] = '%fwrite_ssl_admin%';
|
98 |
-
$GLOBALS['FW_CACHE_WP'] = '%fwrite_cache_wp%';
|
99 |
-
$GLOBALS['FW_CACHE_PATH'] = '%fwrite_cache_path%';
|
100 |
$GLOBALS['FW_BLOGNAME'] = '%fwrite_blogname%';
|
101 |
$GLOBALS['FW_WPROOT'] = '%fwrite_wproot%';
|
102 |
$GLOBALS['FW_WPLOGIN_URL'] = '%fwrite_wplogin_url%';
|
83 |
//GENERAL
|
84 |
$GLOBALS['FW_TABLEPREFIX'] = '%fwrite_wp_tableprefix%';
|
85 |
$GLOBALS['FW_URL_OLD'] = '%fwrite_url_old%';
|
|
|
86 |
$GLOBALS['FW_PACKAGE_NAME'] = '%fwrite_archive_name%';
|
87 |
$GLOBALS['FW_PACKAGE_NOTES'] = '%fwrite_package_notes%';
|
88 |
$GLOBALS['FW_SECURE_NAME'] = '%fwrite_secure_name%';
|
93 |
$GLOBALS['FW_DBNAME'] = '%fwrite_dbname%';
|
94 |
$GLOBALS['FW_DBUSER'] = '%fwrite_dbuser%';
|
95 |
$GLOBALS['FW_DBPASS'] = '%fwrite_dbpass%';
|
|
|
|
|
|
|
96 |
$GLOBALS['FW_BLOGNAME'] = '%fwrite_blogname%';
|
97 |
$GLOBALS['FW_WPROOT'] = '%fwrite_wproot%';
|
98 |
$GLOBALS['FW_WPLOGIN_URL'] = '%fwrite_wplogin_url%';
|
installer/build/view.help.php
CHANGED
@@ -370,28 +370,27 @@ STEP 3
|
|
370 |
<td>These plug-ins are the plug-ins that were activated when the package was created and represent the plug-ins that will be activated after the install.</td>
|
371 |
</tr>
|
372 |
<tr>
|
373 |
-
<td>
|
374 |
<td>
|
375 |
-
As part of the search and replace process,
|
376 |
-
|
377 |
-
To enable the search across all protocol types check this checkbox.
|
378 |
<br/><br/>
|
379 |
-
|
380 |
-
|
381 |
</td>
|
382 |
</tr>
|
383 |
-
<tr>
|
384 |
-
<td>Post GUID</td>
|
385 |
-
<td>If your moving a site keep this value checked. For more details see the <a href="http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note" target="_blank">notes on GUIDS</a>. Changing values in the posts table GUID column can change RSS readers to evaluate that the posts are new and may show them in feeds again.</td>
|
386 |
-
</tr>
|
387 |
<tr>
|
388 |
<td>Full Search</td>
|
389 |
<td>Full search forces a scan of every single cell in the database. If it is not checked then only text based columns are searched which makes the update process much faster.
|
390 |
Use this option if you have issues with data not updating correctly.</td>
|
391 |
</tr>
|
|
|
|
|
|
|
|
|
392 |
<tr>
|
393 |
<td colspan="2" class="section">WP-Config File</td>
|
394 |
-
</
|
395 |
<tr>
|
396 |
<td>Config SSL</td>
|
397 |
<td>Turn off SSL support for WordPress. This sets FORCE_SSL_ADMIN in your wp-config file to false if true, otherwise it will create the setting if not set. The "Enforce on Login"
|
370 |
<td>These plug-ins are the plug-ins that were activated when the package was created and represent the plug-ins that will be activated after the install.</td>
|
371 |
</tr>
|
372 |
<tr>
|
373 |
+
<td>Protocol Relative<br/> URL Replace</td>
|
374 |
<td>
|
375 |
+
As part of the search and replace process, this option will look at every cell in the database and replace the 'Old URL' with the 'New URL'. This process is an
|
376 |
+
<u>protocol relative</u> search which uses only '//' as its starting point for the search.
|
|
|
377 |
<br/><br/>
|
378 |
+
To force the search to use only 'http://' and 'https://' as the starting search match then un-check this box. If you find that some links did not get updated
|
379 |
+
correctly then try to un-check this box and run the stiller over again from step 1.
|
380 |
</td>
|
381 |
</tr>
|
|
|
|
|
|
|
|
|
382 |
<tr>
|
383 |
<td>Full Search</td>
|
384 |
<td>Full search forces a scan of every single cell in the database. If it is not checked then only text based columns are searched which makes the update process much faster.
|
385 |
Use this option if you have issues with data not updating correctly.</td>
|
386 |
</tr>
|
387 |
+
<tr>
|
388 |
+
<td>Post GUID</td>
|
389 |
+
<td>If your moving a site keep this value checked. For more details see the <a href="http://codex.wordpress.org/Changing_The_Site_URL#Important_GUID_Note" target="_blank">notes on GUIDS</a>. Changing values in the posts table GUID column can change RSS readers to evaluate that the posts are new and may show them in feeds again.</td>
|
390 |
+
</tr>
|
391 |
<tr>
|
392 |
<td colspan="2" class="section">WP-Config File</td>
|
393 |
+
</tr>
|
394 |
<tr>
|
395 |
<td>Config SSL</td>
|
396 |
<td>Turn off SSL support for WordPress. This sets FORCE_SSL_ADMIN in your wp-config file to false if true, otherwise it will create the setting if not set. The "Enforce on Login"
|
installer/build/view.step3.php
CHANGED
@@ -45,7 +45,7 @@ VIEW: STEP 3- INPUT -->
|
|
45 |
<tr>
|
46 |
<td style="width:80px">URL:</td>
|
47 |
<td>
|
48 |
-
<input type="text" name="url_new" id="url_new" value="
|
49 |
<a href="javascript:DUPX.getNewURL('url_new')" style="font-size:12px">get</a>
|
50 |
</td>
|
51 |
</tr>
|
@@ -147,9 +147,9 @@ VIEW: STEP 3- INPUT -->
|
|
147 |
</table>
|
148 |
<br/>
|
149 |
|
150 |
-
<input type="checkbox" name="
|
151 |
-
<input type="checkbox" name="fullsearch" id="fullsearch" value="1" /> <label for="fullsearch">
|
152 |
-
<input type="checkbox" name="postguid" id="postguid" value="1" /> <label for="postguid">Keep Post GUID
|
153 |
<br/><br/>
|
154 |
|
155 |
<!-- WP-CONFIG -->
|
@@ -157,18 +157,17 @@ VIEW: STEP 3- INPUT -->
|
|
157 |
<table class="dupx-opts dupx-advopts">
|
158 |
<tr>
|
159 |
<td>Cache:</td>
|
160 |
-
<td style="width:125px"><input type="checkbox" name="cache_wp" id="cache_wp"
|
161 |
-
<td><input type="checkbox" name="cache_path" id="cache_path"
|
162 |
</tr>
|
163 |
<tr>
|
164 |
<td>SSL:</td>
|
165 |
-
<td><input type="checkbox" name="ssl_admin" id="ssl_admin"
|
166 |
<td></td>
|
167 |
</tr>
|
168 |
</table>
|
169 |
<br/><br/><br/>
|
170 |
<br/><br/>
|
171 |
-
|
172 |
</div>
|
173 |
|
174 |
<div class="dupx-footer-buttons">
|
@@ -275,7 +274,8 @@ DUPX.runUpdate = function()
|
|
275 |
DUPX.getNewURL = function(id)
|
276 |
{
|
277 |
var filename= window.location.pathname.split('/').pop() || 'installer.php' ;
|
278 |
-
|
|
|
279 |
}
|
280 |
|
281 |
/** Allows user to edit the package url */
|
45 |
<tr>
|
46 |
<td style="width:80px">URL:</td>
|
47 |
<td>
|
48 |
+
<input type="text" name="url_new" id="url_new" value="" />
|
49 |
<a href="javascript:DUPX.getNewURL('url_new')" style="font-size:12px">get</a>
|
50 |
</td>
|
51 |
</tr>
|
147 |
</table>
|
148 |
<br/>
|
149 |
|
150 |
+
<input type="checkbox" name="urlrelative" id="urlrelative" value="1" checked="true" /> <label for="urlrelative">Use Protocol Relative URL Replace</label><br/>
|
151 |
+
<input type="checkbox" name="fullsearch" id="fullsearch" value="1" /> <label for="fullsearch">Use Database Full Search Mode </label><br/>
|
152 |
+
<input type="checkbox" name="postguid" id="postguid" value="1" /> <label for="postguid">Keep Post GUID Unchanged</label><br/>
|
153 |
<br/><br/>
|
154 |
|
155 |
<!-- WP-CONFIG -->
|
157 |
<table class="dupx-opts dupx-advopts">
|
158 |
<tr>
|
159 |
<td>Cache:</td>
|
160 |
+
<td style="width:125px"><input type="checkbox" name="cache_wp" id="cache_wp" /> <label for="cache_wp">Keep Enabled</label></td>
|
161 |
+
<td><input type="checkbox" name="cache_path" id="cache_path" /> <label for="cache_path">Keep Home Path</label></td>
|
162 |
</tr>
|
163 |
<tr>
|
164 |
<td>SSL:</td>
|
165 |
+
<td><input type="checkbox" name="ssl_admin" id="ssl_admin" /> <label for="ssl_admin">Enforce on Admin</label></td>
|
166 |
<td></td>
|
167 |
</tr>
|
168 |
</table>
|
169 |
<br/><br/><br/>
|
170 |
<br/><br/>
|
|
|
171 |
</div>
|
172 |
|
173 |
<div class="dupx-footer-buttons">
|
274 |
DUPX.getNewURL = function(id)
|
275 |
{
|
276 |
var filename= window.location.pathname.split('/').pop() || 'installer.php' ;
|
277 |
+
var path = window.location.href.replace(filename, '').replace(/\/$/, '');
|
278 |
+
$("#" + id).val(path);
|
279 |
}
|
280 |
|
281 |
/** Allows user to edit the package url */
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link: www.lifeinthegrid.com/partner
|
|
4 |
Tags: migration, backup, restore, move, migrate, duplicate, transfer, clone, automate, copy site
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.8
|
7 |
-
Stable tag: 1.2.
|
8 |
License: GPLv2
|
9 |
|
10 |
WordPress migration and backups are much easier with Duplicator! Clone, backup, move and transfer an entire site from one location to another.
|
4 |
Tags: migration, backup, restore, move, migrate, duplicate, transfer, clone, automate, copy site
|
5 |
Requires at least: 4.0
|
6 |
Tested up to: 4.8
|
7 |
+
Stable tag: 1.2.16
|
8 |
License: GPLv2
|
9 |
|
10 |
WordPress migration and backups are much easier with Duplicator! Clone, backup, move and transfer an entire site from one location to another.
|
views/packages/details/detail.php
CHANGED
@@ -326,10 +326,6 @@ INSTALLER -->
|
|
326 |
<td><?php _e('User', 'duplicator') ?>:</td>
|
327 |
<td><?php echo strlen($package->Installer->OptsDBUser) ? $package->Installer->OptsDBUser : __('- not set -', 'duplicator') ?></td>
|
328 |
</tr>
|
329 |
-
<tr>
|
330 |
-
<td><?php _e('New URL', 'duplicator') ?>:</td>
|
331 |
-
<td><?php echo strlen($package->Installer->OptsURLNew) ? $package->Installer->OptsURLNew : __('- not set -', 'duplicator') ?></td>
|
332 |
-
</tr>
|
333 |
</table>
|
334 |
</div>
|
335 |
</div>
|
326 |
<td><?php _e('User', 'duplicator') ?>:</td>
|
327 |
<td><?php echo strlen($package->Installer->OptsDBUser) ? $package->Installer->OptsDBUser : __('- not set -', 'duplicator') ?></td>
|
328 |
</tr>
|
|
|
|
|
|
|
|
|
329 |
</table>
|
330 |
</div>
|
331 |
</div>
|
views/packages/main/packages.php
CHANGED
@@ -37,15 +37,28 @@
|
|
37 |
td.error-msg span {display:inline-block; padding:7px 18px 0px 0px; color:maroon}
|
38 |
div.dup-vote { position: absolute; top:15px; right:25px; }
|
39 |
div.dup-vote a { font-size:12px; font-style: italic }
|
|
|
|
|
|
|
|
|
40 |
</style>
|
41 |
|
42 |
<form id="form-duplicator" method="post">
|
43 |
|
44 |
-
|
45 |
-
<
|
46 |
-
<
|
47 |
-
</
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
|
50 |
<!-- ====================
|
51 |
TOOL-BAR -->
|
@@ -294,6 +307,12 @@ jQuery(document).ready(function($)
|
|
294 |
{
|
295 |
window.location.href = '?page=duplicator&action=detail&tab=detail&id=' + package_id;
|
296 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
297 |
|
298 |
});
|
299 |
</script>
|
37 |
td.error-msg span {display:inline-block; padding:7px 18px 0px 0px; color:maroon}
|
38 |
div.dup-vote { position: absolute; top:15px; right:25px; }
|
39 |
div.dup-vote a { font-size:12px; font-style: italic }
|
40 |
+
div#dup-feedback-form {display:none; height:150px; top:70px; min-width:250px; padding:10px; background-color:#f9f9f9; border:1px solid silver; border-radius:5px;
|
41 |
+
position:fixed; right:25px; z-index: 2; cursor:pointer; line-height:34px; font-size:14px; box-shadow: 10px 10px 5px -6px #999;}
|
42 |
+
div#dup-feedback-form i {display: inline-block; width: 15px}
|
43 |
+
|
44 |
</style>
|
45 |
|
46 |
<form id="form-duplicator" method="post">
|
47 |
|
48 |
+
<div class="dup-vote">
|
49 |
+
<a href="javascript:void(0);" onclick="Duplicator.Pack.showFeedbackForm()">
|
50 |
+
<i class="fa fa-bullhorn" aria-hidden="true"></i> <?php _e("Feedback", 'duplicator') ?>
|
51 |
+
</a>
|
52 |
+
</div>
|
53 |
+
|
54 |
+
<div id="dup-feedback-form">
|
55 |
+
<div style="text-align: center"><b><?php _e("LEAVE FEEDBACK", 'duplicator') ?></b></div>
|
56 |
+
<i class="fa fa-question-circle"></i> <a href="https://snapcreek.com/ticket/" target="_blank"><?php _e("Need help with the plugin?", 'duplicator') ?></a> <br/>
|
57 |
+
<i class="fa fa-lightbulb-o"></i> <a href="https://snapcreek.com/support?idea=1" target="_blank"><?php _e("Have an idea for the plugin?", 'duplicator') ?></a> <br/>
|
58 |
+
<?php if($statusCount >= 2) : ?>
|
59 |
+
<i class="fa fa-star-o"></i> <a href="https://wordpress.org/support/plugin/duplicator/reviews/?filter=5" target="vote-wp"><?php _e("Help review the plugin!", 'duplicator') ?></a>
|
60 |
+
<?php endif; ?>
|
61 |
+
</div>
|
62 |
|
63 |
<!-- ====================
|
64 |
TOOL-BAR -->
|
307 |
{
|
308 |
window.location.href = '?page=duplicator&action=detail&tab=detail&id=' + package_id;
|
309 |
}
|
310 |
+
|
311 |
+
/* Toggles the feedback form */
|
312 |
+
Duplicator.Pack.showFeedbackForm = function ()
|
313 |
+
{
|
314 |
+
$("div#dup-feedback-form").toggle(300);
|
315 |
+
}
|
316 |
|
317 |
});
|
318 |
</script>
|
views/packages/main/s1.setup2.php
CHANGED
@@ -351,51 +351,8 @@ INSTALLER -->
|
|
351 |
<td><?php _e("User", 'duplicator') ?></td>
|
352 |
<td><input type="text" name="dbuser" id="dbuser" value="<?php echo $Package->Installer->OptsDBUser ?>" maxlength="100" placeholder="<?php _e('example: DatabaseUserName (value is optional)', 'duplicator'); ?>" /></td>
|
353 |
</tr>
|
354 |
-
<!--tr>
|
355 |
-
<td colspan="2"><div class="dup-installer-header-2"><?php _e("Advanced Options", 'duplicator') ?></div></td>
|
356 |
-
</tr>
|
357 |
-
<tr>
|
358 |
-
<td colspan="2">
|
359 |
-
<table>
|
360 |
-
<tr>
|
361 |
-
<td style="width:130px"><?php _e("SSL", 'duplicator') ?></td>
|
362 |
-
<td style="padding-right:20px; white-space:nowrap">
|
363 |
-
<input type="checkbox" name="ssl-admin" id="ssl-admin" <?php echo ($Package->Installer->OptsSSLAdmin) ? "checked='checked'" :""; ?> />
|
364 |
-
<label class="chk-labels" for="ssl-admin"><?php _e("Enforce on Admin", 'duplicator') ?></label>
|
365 |
-
</td>
|
366 |
-
<td>
|
367 |
-
<input type="checkbox" name="ssl-login" id="ssl-login" <?php echo ($Package->Installer->OptsSSLLogin) ? "checked='checked'" :""; ?> />
|
368 |
-
<label class="chk-labels" for="ssl-login"><?php _e("Enforce on Logins", 'duplicator') ?></label>
|
369 |
-
</td>
|
370 |
-
</tr>
|
371 |
-
<tr>
|
372 |
-
<td><?php _e("Cache", 'duplicator') ?></td>
|
373 |
-
<td style="padding-right:20px; white-space:nowrap">
|
374 |
-
<input type="checkbox" name="cache-wp" id="cache-wp" <?php echo ($Package->Installer->OptsCacheWP) ? "checked='checked'" :""; ?> />
|
375 |
-
<label class="chk-labels" for="cache-wp"><?php _e("Keep Enabled", 'duplicator') ?></label>
|
376 |
-
</td>
|
377 |
-
<td>
|
378 |
-
<input type="checkbox" name="cache-path" id="cache-path" <?php echo ($Package->Installer->OptsCachePath) ? "checked='checked'" :""; ?> />
|
379 |
-
<label class="chk-labels" for="cache-path"><?php _e("Keep Home Path", 'duplicator') ?></label>
|
380 |
-
</td>
|
381 |
-
</tr>
|
382 |
-
</table>
|
383 |
-
</td>
|
384 |
-
</tr-->
|
385 |
</table><br />
|
386 |
|
387 |
-
|
388 |
-
|
389 |
-
<input type="hidden" name="url-new" id="url-new" value=""/>
|
390 |
-
|
391 |
-
|
392 |
-
<!--table class="dup-installer-tbl">
|
393 |
-
<tr>
|
394 |
-
<td style="width:130px"><?php _e("New URL", 'duplicator') ?></td>
|
395 |
-
<td><input type="text" name="url-new" id="url-new" value="<?php echo $Package->Installer->OptsURLNew ?>" placeholder="http://mynewsite.com" /></td>
|
396 |
-
</tr>
|
397 |
-
</table-->
|
398 |
-
|
399 |
<div style="padding:10px 0 0 12px;">
|
400 |
<span class="dup-pro-text">
|
401 |
<img src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/cpanel-48.png" style="width:16px; height:12px" />
|
351 |
<td><?php _e("User", 'duplicator') ?></td>
|
352 |
<td><input type="text" name="dbuser" id="dbuser" value="<?php echo $Package->Installer->OptsDBUser ?>" maxlength="100" placeholder="<?php _e('example: DatabaseUserName (value is optional)', 'duplicator'); ?>" /></td>
|
353 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
</table><br />
|
355 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
<div style="padding:10px 0 0 12px;">
|
357 |
<span class="dup-pro-text">
|
358 |
<img src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/cpanel-48.png" style="width:16px; height:12px" />
|
views/packages/main/s2.scan1.php
CHANGED
@@ -58,7 +58,7 @@
|
|
58 |
div.hb-files-style div.container b {font-weight:bold}
|
59 |
div.hb-files-style div.container div.divider {margin-bottom:2px; font-weight:bold}
|
60 |
div.hb-files-style div.data {padding:8px; line-height:21px; height:175px; overflow-y:scroll; }
|
61 |
-
div.hb-files-style div.hdrs {
|
62 |
div.hb-files-style div.hdrs sup i.fa {font-size:11px}
|
63 |
div.hb-files-style div.hdrs-up-down {float:right; margin:2px 12px 0 0}
|
64 |
div.hb-files-style i.dup-nav-toggle:hover {cursor:pointer; color:#999}
|
58 |
div.hb-files-style div.container b {font-weight:bold}
|
59 |
div.hb-files-style div.container div.divider {margin-bottom:2px; font-weight:bold}
|
60 |
div.hb-files-style div.data {padding:8px; line-height:21px; height:175px; overflow-y:scroll; }
|
61 |
+
div.hb-files-style div.hdrs {padding:0 4px 4px 6px; border-bottom:1px solid #E0E0E0; font-weight:bold}
|
62 |
div.hb-files-style div.hdrs sup i.fa {font-size:11px}
|
63 |
div.hb-files-style div.hdrs-up-down {float:right; margin:2px 12px 0 0}
|
64 |
div.hb-files-style i.dup-nav-toggle:hover {cursor:pointer; color:#999}
|