Duplicator – WordPress Migration Plugin - Version 1.1.18

Version Description

Download this release

Release Info

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

Code changes from version 1.1.16 to 1.1.18

classes/server.php CHANGED
@@ -30,13 +30,23 @@ class DUP_Server
30
  $dup_tests['PHP']['FUNC_3'] = function_exists("mb_strlen") ? 'Pass' : 'Fail';
31
  $dup_tests['PHP']['ALL'] = ! in_array('Fail', $dup_tests['PHP']) ? 'Pass' : 'Fail';
32
 
33
- //PERMISSIONS
34
- $handle_test = @opendir(DUPLICATOR_WPROOTPATH);
35
- $dup_tests['IO']['WPROOT'] = is_writeable(DUPLICATOR_WPROOTPATH) && $handle_test ? 'Pass' : 'Fail';
36
- $dup_tests['IO']['SSDIR'] = is_writeable(DUPLICATOR_SSDIR_PATH) ? 'Pass' : 'Fail';
 
 
 
 
 
 
 
 
 
 
37
  $dup_tests['IO']['SSTMP'] = is_writeable(DUPLICATOR_SSDIR_PATH_TMP) ? 'Pass' : 'Fail';
38
  $dup_tests['IO']['ALL'] = ! in_array('Fail', $dup_tests['IO']) ? 'Pass' : 'Fail';
39
- @closedir($handle_test);
40
 
41
  //SERVER SUPPORT
42
  $dup_tests['SRV']['MYSQLi'] = function_exists('mysqli_connect') ? 'Pass' : 'Fail';
30
  $dup_tests['PHP']['FUNC_3'] = function_exists("mb_strlen") ? 'Pass' : 'Fail';
31
  $dup_tests['PHP']['ALL'] = ! in_array('Fail', $dup_tests['PHP']) ? 'Pass' : 'Fail';
32
 
33
+ //REQUIRED PATHS
34
+ if (file_exists(DUPLICATOR_SSDIR_PATH) && is_writeable(DUPLICATOR_SSDIR_PATH))
35
+ {
36
+ $dup_tests['IO']['SSDIR'] = 'Pass';
37
+ $dup_tests['IO']['WPROOT'] = 'Pass';
38
+ }
39
+ else
40
+ {
41
+ $handle_test = @opendir(DUPLICATOR_WPROOTPATH);
42
+ $dup_tests['IO']['WPROOT'] = is_writeable(DUPLICATOR_WPROOTPATH) && $handle_test ? 'Pass' : 'Fail';
43
+ $dup_tests['IO']['SSDIR'] = 'Fail';
44
+ @closedir($handle_test);
45
+ }
46
+
47
  $dup_tests['IO']['SSTMP'] = is_writeable(DUPLICATOR_SSDIR_PATH_TMP) ? 'Pass' : 'Fail';
48
  $dup_tests['IO']['ALL'] = ! in_array('Fail', $dup_tests['IO']) ? 'Pass' : 'Fail';
49
+
50
 
51
  //SERVER SUPPORT
52
  $dup_tests['SRV']['MYSQLi'] = function_exists('mysqli_connect') ? 'Pass' : 'Fail';
classes/ui.php CHANGED
@@ -116,79 +116,5 @@ class DUP_UI {
116
  }
117
  }
118
 
119
- /**
120
- * Shows a random affilate link
121
- * @return type string
122
- */
123
- public static function ShowRandomAffilateLink($format = 'one')
124
- {
125
- /*-- AFFILIATES --*/
126
- $aff_urls = array();
127
- $aff_urls[0] = 'https://snapcreek.com/visit/bluehost';
128
- $aff_urls[1] = 'https://snapcreek.com/visit/inmotion';
129
- $aff_urls[2] = 'https://snapcreek.com/visit/elegantthemes';
130
- $aff_urls[3] = 'https://snapcreek.com/visit/managewp';
131
- $aff_urls[4] = 'https://snapcreek.com/visit/maxcdn';
132
- //$aff_urls[5] = 'https://snapcreek.com/visit/ninjaforms';
133
- //$aff_urls[6] = 'https://snapcreek.com/visit/optinmonster';
134
-
135
- $aff_text = array();
136
- // Bluehost
137
- $aff_text[0] = sprintf("<b>%s</b> <i>%s</i>",
138
- __('Need a new host?', 'duplicator'),
139
- __('Get Bluehost Hosting for 50% off today!', 'duplicator'));
140
- // InMotion
141
- $aff_text[1] = sprintf("<b>%s</b> <i>%s</i>",
142
- __('On a bad host?', 'duplicator'),
143
- __('Trade up to InMotion - with FREE SSDs and up to 25% off!', 'duplicator'));
144
- // Elegant Themes
145
- $aff_text[2] = sprintf("<b>%s</b> <i>%s</i>",
146
- __('Have a cheesy theme?', 'duplicator'),
147
- __('Change to an Elegant Theme and get 10% off today!', 'duplicator'));
148
- // ManageWP
149
- $aff_text[3] = sprintf("<b>%s</b> <i>%s</i>",
150
- __('Juggling multiple sites?', 'duplicator'),
151
- __('Control them all from ONE dashboard - 10% off ManageWP today!', 'duplicator'));
152
- // MaxCDN
153
- $aff_text[4] = sprintf("<b>%s</b> <i>%s</i>",
154
- __('Slow site?', 'duplicator'),
155
- __('Supercharge it with MaxCDN and get 25% off today!', 'duplicator'));
156
-
157
- // Ninja Forms
158
- $aff_text[5] = sprintf("<b>%s</b> <i>%s</i>",
159
- __('Need a great formbuilder?', 'duplicator'),
160
- __('Get Ninja Forms!', 'duplicator'));
161
- // Optinmonster
162
- $aff_text[6] = sprintf("<b>%s</b> <i>%s</i>",
163
- __('Visitors leaving too quickly?', 'duplicator'),
164
- __('Snag \'em with Optinmonster!', 'duplicator'));
165
-
166
- $aff_icon = array();
167
- $aff_fa[0] = "fa-th";
168
- $aff_fa[1] = "fa-cube";
169
- $aff_fa[2] = "fa-asterisk";
170
- $aff_fa[3] = "fa-sitemap";
171
- $aff_fa[4] = "fa-maxcdn";
172
- $aff_fa[5] = "fa-check-square-o";
173
- $aff_fa[6] = "fa-envelope";
174
-
175
- if ($format == 'list')
176
- {
177
- //Generate a list
178
- $html = '<div id="dup-add-slider"><ul>';
179
- for ($i = 0; $i < count($aff_urls); $i++)
180
- {
181
- $html .= "<li><i class='fa {$aff_fa[$i]}'></i>&nbsp; <a target='_blank' href='{$aff_urls[$i]}'>$aff_text[$i]</a></li>";
182
- }
183
- $html .= '</ul></div>';
184
- }
185
- else
186
- {
187
- //Return single item
188
- $aff_index = rand(0, count($aff_urls) - 1);
189
- $html = "<span id='dup-add-link'><i class='fa {$aff_fa[$aff_index]}'></i>&nbsp; <a href='admin.php?page=duplicator-perks&amp;a={$aff_index}'>$aff_text[$aff_index]</a> &nbsp; ";
190
- }
191
- return $html;
192
- }
193
  }
194
  ?>
116
  }
117
  }
118
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
119
  }
120
  ?>
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.1.16');
6
  define('DUPLICATOR_HOMEPAGE', 'http://lifeinthegrid.com/labs/duplicator');
7
  define('DUPLICATOR_GIVELINK', 'http://lifeinthegrid.com/partner');
8
  define('DUPLICATOR_HELPLINK', 'http://lifeinthegrid.com/duplicator-docs');
2
  //Prevent directly browsing to the file
3
  if (function_exists('plugin_dir_url'))
4
  {
5
+ define('DUPLICATOR_VERSION', '1.1.18');
6
  define('DUPLICATOR_HOMEPAGE', 'http://lifeinthegrid.com/labs/duplicator');
7
  define('DUPLICATOR_GIVELINK', 'http://lifeinthegrid.com/partner');
8
  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.16
7
  Author: LifeInTheGrid
8
  Author URI: http://www.lifeinthegrid.com
9
  Text Domain: duplicator
@@ -209,10 +209,10 @@ if (is_admin() == true) {
209
  $lang_txt = __('About', 'duplicator');
210
  $page_about = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-about', 'duplicator_get_menu');
211
 
212
- $perms = 'manage_options';
213
- $lang_txt = __('Perks', 'duplicator');
214
- $perms = apply_filters($wpfront_caps_translator, $perms);
215
- $page_perks = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-perks', 'duplicator_get_menu');
216
 
217
  $perms = 'manage_options';
218
  $lang_txt = __('Go Pro!', 'duplicator');
@@ -228,7 +228,7 @@ if (is_admin() == true) {
228
  add_action('admin_print_scripts-' . $page_help, 'duplicator_scripts');
229
  add_action('admin_print_scripts-' . $page_tools, 'duplicator_scripts');
230
  add_action('admin_print_scripts-' . $page_about, 'duplicator_scripts');
231
- add_action('admin_print_scripts-' . $page_perks, 'duplicator_scripts');
232
  add_action('admin_print_scripts-' . $page_gopro, 'duplicator_scripts');
233
 
234
  //Apply Styles
@@ -237,7 +237,7 @@ if (is_admin() == true) {
237
  add_action('admin_print_styles-' . $page_help, 'duplicator_styles');
238
  add_action('admin_print_styles-' . $page_tools, 'duplicator_styles');
239
  add_action('admin_print_styles-' . $page_about, 'duplicator_styles');
240
- add_action('admin_print_styles-' . $page_perks, 'duplicator_styles');
241
  add_action('admin_print_styles-' . $page_gopro, 'duplicator_styles');
242
 
243
  }
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.18
7
  Author: LifeInTheGrid
8
  Author URI: http://www.lifeinthegrid.com
9
  Text Domain: duplicator
209
  $lang_txt = __('About', 'duplicator');
210
  $page_about = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-about', 'duplicator_get_menu');
211
 
212
+ //$perms = 'manage_options';
213
+ //$lang_txt = __('Perks', 'duplicator');
214
+ //$perms = apply_filters($wpfront_caps_translator, $perms);
215
+ //$page_perks = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-perks', 'duplicator_get_menu');
216
 
217
  $perms = 'manage_options';
218
  $lang_txt = __('Go Pro!', 'duplicator');
228
  add_action('admin_print_scripts-' . $page_help, 'duplicator_scripts');
229
  add_action('admin_print_scripts-' . $page_tools, 'duplicator_scripts');
230
  add_action('admin_print_scripts-' . $page_about, 'duplicator_scripts');
231
+ //add_action('admin_print_scripts-' . $page_perks, 'duplicator_scripts');
232
  add_action('admin_print_scripts-' . $page_gopro, 'duplicator_scripts');
233
 
234
  //Apply Styles
237
  add_action('admin_print_styles-' . $page_help, 'duplicator_styles');
238
  add_action('admin_print_styles-' . $page_tools, 'duplicator_styles');
239
  add_action('admin_print_styles-' . $page_about, 'duplicator_styles');
240
+ //add_action('admin_print_styles-' . $page_perks, 'duplicator_styles');
241
  add_action('admin_print_styles-' . $page_gopro, 'duplicator_styles');
242
 
243
  }
installer/build/ajax.step1.php CHANGED
@@ -10,6 +10,7 @@ if (! defined('DUPLICATOR_INIT')) {
10
  //POST PARAMS
11
  $_POST['dbaction'] = isset($_POST['dbaction']) ? $_POST['dbaction'] : 'create';
12
  $_POST['dbnbsp'] = (isset($_POST['dbnbsp']) && $_POST['dbnbsp'] == '1') ? true : false;
 
13
  $_POST['ssl_admin'] = (isset($_POST['ssl_admin'])) ? true : false;
14
  $_POST['ssl_login'] = (isset($_POST['ssl_login'])) ? true : false;
15
  $_POST['cache_wp'] = (isset($_POST['cache_wp'])) ? true : false;
@@ -275,13 +276,22 @@ DUPX_Util::fcgi_flush();
275
  @mysqli_query($dbh, "SET max_allowed_packet = {$GLOBALS['DB_MAX_PACKETS']}");
276
  DUPX_Util::mysql_set_charset($dbh, $_POST['dbcharset'], $_POST['dbcollate']);
277
 
278
- //Set defaults incase the variable could not be read
279
- $dbvar_maxtime = DUPX_Util::mysql_variable_value($dbh, 'wait_timeout');
280
- $dbvar_maxpacks = DUPX_Util::mysql_variable_value($dbh, 'max_allowed_packet');
281
- $dbvar_maxtime = is_null($dbvar_maxtime) ? 300 : $dbvar_maxtime;
282
- $dbvar_maxpacks = is_null($dbvar_maxpacks) ? 1048576 : $dbvar_maxpacks;
283
- $dbvar_version = DUPX_Util::mysql_version($dbh);
284
 
 
 
 
 
 
 
 
 
 
285
 
286
  DUPX_Log::Info("{$GLOBALS['SEPERATOR1']}");
287
  DUPX_Log::Info('DATABASE-ROUTINES');
@@ -292,6 +302,16 @@ DUPX_Log::Info("--------------------------------------");
292
  DUPX_Log::Info("MYSQL VERSION:\tThis Server: {$dbvar_version} -- Build Server: {$GLOBALS['FW_VERSION_DB']}");
293
  DUPX_Log::Info("TIMEOUT:\t{$dbvar_maxtime}");
294
  DUPX_Log::Info("MAXPACK:\t{$dbvar_maxpacks}");
 
 
 
 
 
 
 
 
 
 
295
 
296
  //CREATE DB
297
  switch ($_POST['dbaction']) {
10
  //POST PARAMS
11
  $_POST['dbaction'] = isset($_POST['dbaction']) ? $_POST['dbaction'] : 'create';
12
  $_POST['dbnbsp'] = (isset($_POST['dbnbsp']) && $_POST['dbnbsp'] == '1') ? true : false;
13
+ $_POST['dbmysqlmode'] = (isset($_POST['dbmysqlmode']) && $_POST['dbmysqlmode'] == '1') ? true : false;
14
  $_POST['ssl_admin'] = (isset($_POST['ssl_admin'])) ? true : false;
15
  $_POST['ssl_login'] = (isset($_POST['ssl_login'])) ? true : false;
16
  $_POST['cache_wp'] = (isset($_POST['cache_wp'])) ? true : false;
276
  @mysqli_query($dbh, "SET max_allowed_packet = {$GLOBALS['DB_MAX_PACKETS']}");
277
  DUPX_Util::mysql_set_charset($dbh, $_POST['dbcharset'], $_POST['dbcollate']);
278
 
279
+ //Will set mode to null only for this db handle session
280
+ //sql_mode can cause db create issues on some systems
281
+ if ($_POST['dbmysqlmode'])
282
+ {
283
+ @mysqli_query($dbh, "SET SESSION sql_mode = ''");
284
+ }
285
 
286
+ //Set defaults incase the variable could not be read
287
+ $dbvar_maxtime = DUPX_Util::mysql_variable_value($dbh, 'wait_timeout');
288
+ $dbvar_maxpacks = DUPX_Util::mysql_variable_value($dbh, 'max_allowed_packet');
289
+ $dbvar_sqlmode = DUPX_Util::mysql_variable_value($dbh, 'sql_mode');
290
+ $dbvar_maxtime = is_null($dbvar_maxtime) ? 300 : $dbvar_maxtime;
291
+ $dbvar_maxpacks = is_null($dbvar_maxpacks) ? 1048576 : $dbvar_maxpacks;
292
+ $dbvar_sqlmode = empty($dbvar_sqlmode) ? 'NOT_SET' : $dbvar_sqlmode;
293
+ $dbvar_version = DUPX_Util::mysql_version($dbh);
294
+ $dbwarning_modes = explode(',','NO_ENGINE_SUBSTITUTION,MYSQL323');
295
 
296
  DUPX_Log::Info("{$GLOBALS['SEPERATOR1']}");
297
  DUPX_Log::Info('DATABASE-ROUTINES');
302
  DUPX_Log::Info("MYSQL VERSION:\tThis Server: {$dbvar_version} -- Build Server: {$GLOBALS['FW_VERSION_DB']}");
303
  DUPX_Log::Info("TIMEOUT:\t{$dbvar_maxtime}");
304
  DUPX_Log::Info("MAXPACK:\t{$dbvar_maxpacks}");
305
+ DUPX_Log::Info("SQLMODE:\t{$dbvar_sqlmode}");
306
+
307
+
308
+ if (in_array($dbvar_sqlmode, $dbwarning_modes))
309
+ {
310
+ $log = "WARNING: A sql_mode has been detected that may cause issues with this install.\n";
311
+ $log .= "Please use the advanced options in Step 1 to disable the sql_mode or disable it the my.ini file\n";
312
+ $log .= "For more details on this topic please visit: http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html\n";
313
+ DUPX_Log::Info("\n{$log}\n");
314
+ }
315
 
316
  //CREATE DB
317
  switch ($_POST['dbaction']) {
installer/build/assets/inc.css.php CHANGED
@@ -133,27 +133,13 @@
133
  table.s3-final-step {width:100%;}
134
  table.s3-final-step td {padding:5px 15px 5px 5px}
135
  table.s3-final-step td:first-child {white-space:nowrap; font-weight:bold}
136
- div.s3-go-back {border-bottom:1px dotted #dfdfdf; border-top:1px dotted #dfdfdf; margin:auto; text-align:center}
137
  div.s3-btns-msg {text-align: center; font-size:10px; color:#777; margin:5px 0 15px 0}
138
  a.s3-final-btns {display: block; width:135; padding:5px; line-height: 1.4; background-color:#F1F1F1; border:1px solid silver;
139
  color: #000; box-shadow: 5px 5px 5px -5px #949494; text-decoration: none; text-align: center; border-radius: 4px;
140
  }
141
  a.s3-final-btns:hover {background-color: #dfdfdf;}
142
- div.s3-gopro-btn {text-align:center; font-family: 'Oswald', sans-serif; font-size:14px; margin:auto; width:200px}
143
- div.s3-gopro-btn a {
144
- background: #e2e2e2;
145
- background: -moz-linear-gradient(top, #e2e2e2 0%, #dbdbdb 50%, #d1d1d1 51%, #fefefe 100%);
146
- background: -webkit-linear-gradient(top, #e2e2e2 0%,#dbdbdb 50%,#d1d1d1 51%,#fefefe 100%);
147
- background: linear-gradient(to bottom, #e2e2e2 0%,#dbdbdb 50%,#d1d1d1 51%,#fefefe 100%);
148
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e2e2e2', endColorstr='#fefefe',GradientType=0 );
149
- }
150
- div.s3-gopro-btn a:hover {
151
- background: #ebf1f6;
152
- background: -moz-linear-gradient(top, #ebf1f6 0%, #abd3ee 50%, #89c3eb 51%, #d5ebfb 100%);
153
- background: -webkit-linear-gradient(top, #ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);
154
- background: linear-gradient(to bottom, #ebf1f6 0%,#abd3ee 50%,#89c3eb 51%,#d5ebfb 100%);
155
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebf1f6', endColorstr='#d5ebfb',GradientType=0 );
156
- }
157
 
158
  /* ============================
159
  BUTTONS */
133
  table.s3-final-step {width:100%;}
134
  table.s3-final-step td {padding:5px 15px 5px 5px}
135
  table.s3-final-step td:first-child {white-space:nowrap; font-weight:bold}
136
+ div.s3-go-back {border-bottom:1px dotted #dfdfdf; border-top:1px dotted #dfdfdf; margin:auto; text-align:center; font-size: 12px}
137
  div.s3-btns-msg {text-align: center; font-size:10px; color:#777; margin:5px 0 15px 0}
138
  a.s3-final-btns {display: block; width:135; padding:5px; line-height: 1.4; background-color:#F1F1F1; border:1px solid silver;
139
  color: #000; box-shadow: 5px 5px 5px -5px #949494; text-decoration: none; text-align: center; border-radius: 4px;
140
  }
141
  a.s3-final-btns:hover {background-color: #dfdfdf;}
142
+ div.s3-gopro-btn {text-align:center; font-size:14px; margin:auto; width:200px; font-style: italic}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
143
 
144
  /* ============================
145
  BUTTONS */
installer/build/view.step1.php CHANGED
@@ -282,6 +282,7 @@ VIEW: STEP 1- INPUT -->
282
  <table class="s1-opts">
283
  <tr><td><input type="checkbox" name="zip_manual" id="zip_manual" value="1" /> <label for="zip_manual">Manual package extraction</label></td></tr>
284
  <tr><td><input type="checkbox" name="dbnbsp" id="dbnbsp" value="1" /> <label for="dbnbsp">Fix non-breaking space characters</label></td></tr>
 
285
  </table>
286
 
287
 
282
  <table class="s1-opts">
283
  <tr><td><input type="checkbox" name="zip_manual" id="zip_manual" value="1" /> <label for="zip_manual">Manual package extraction</label></td></tr>
284
  <tr><td><input type="checkbox" name="dbnbsp" id="dbnbsp" value="1" /> <label for="dbnbsp">Fix non-breaking space characters</label></td></tr>
285
+ <tr><td><input type="checkbox" name="dbmysqlmode" id="dbmysqlmode" value="1" /> <label for="dbmysqlmode">Run this session with MySQL sql_mode disabled</label></td></tr>
286
  </table>
287
 
288
 
installer/build/view.step3.php CHANGED
@@ -63,8 +63,8 @@ VIEW: STEP 3- INPUT -->
63
  <div class="s3-btns-msg">Click buttons above to complete process</div>
64
 
65
  <div class="s3-go-back">
66
- <i style='font-size:11px'>To re-install <a href="javascript:history.go(-2)">start over at step 1</a>.</i><br/>
67
- <i style="font-size:11px;">The .htaccess file was reset. Resave plugins that write to this file.</i>
68
  </div>
69
 
70
 
@@ -205,7 +205,7 @@ VIEW: STEP 3- INPUT -->
205
  switch ($num) {
206
  case 1:
207
  $key = 'free_inst_s3btn1';
208
- $txt = 'Want More Power?';
209
  break;
210
  case 2:
211
  $key = 'free_inst_s3btn2';
@@ -218,7 +218,7 @@ VIEW: STEP 3- INPUT -->
218
  ?>
219
 
220
  <div class="s3-gopro-btn">
221
- <a style="width:100%" class="s3-final-btns" href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_campaign=duplicator_pro&utm_content="<?php echo $key;?>" target="_blank">&#10097;&#10097; <?php echo $txt;?></a>
222
  </div>
223
  <br/><br/>
224
 
63
  <div class="s3-btns-msg">Click buttons above to complete process</div>
64
 
65
  <div class="s3-go-back">
66
+ <i>To re-install <a href="javascript:history.go(-2)">start over at step 1</a>.</i><br/>
67
+ <i>The .htaccess file was reset. Resave plugins that write to this file.</i>
68
  </div>
69
 
70
 
205
  switch ($num) {
206
  case 1:
207
  $key = 'free_inst_s3btn1';
208
+ $txt = 'Considered Going Pro?';
209
  break;
210
  case 2:
211
  $key = 'free_inst_s3btn2';
218
  ?>
219
 
220
  <div class="s3-gopro-btn">
221
+ <a href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_campaign=duplicator_pro&utm_content="<?php echo $key;?>" target="_blank"> <?php echo $txt;?></a>
222
  </div>
223
  <br/><br/>
224
 
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.6
7
- Stable tag: 1.1.16
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.6
7
+ Stable tag: 1.1.18
8
  License: GPLv2
9
 
10
  Duplicate, clone, backup, move and transfer an entire site from one location to another.
views/help/about.php CHANGED
@@ -68,31 +68,17 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
68
  <table class="dup-support-hlp-hdrs">
69
  <tr >
70
  <td style="height:30px; text-align: center;">
71
- <span style="display: inline-block; margin-top: 5px"><?php _e('Partner with Us', 'duplicator') ?></span>
72
  </td>
73
  </tr>
74
  </table>
75
  <table style="text-align: center;width:100%; font-size:11px; font-style:italic; margin-top:25px">
76
  <tr>
77
- <td class="dup-support-grid-img" style="padding-left:40px">
78
- <div class="dup-support-cell" onclick="jQuery('#dup-donate-form').submit()">
79
- <form id="dup-donate-form" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank" >
80
- <input name="cmd" type="hidden" value="_s-xclick" />
81
- <input name="hosted_button_id" type="hidden" value="EYJ7AV43RTZJL" />
82
- <input alt="PayPal - The safer, easier way to pay online!" name="submit" src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/paypal.png" type="image" />
83
- <div style="margin-top:-5px"><?php _e('Keep Active and Online', 'duplicator') ?></div>
84
- <img src="https://www.paypalobjects.com/WEBSCR-640-20110401-1/en_US/i/scr/pixel.gif" border="0" alt="" width="1" height="1" />
85
- </form>
86
- </div>
87
- </td>
88
- <td style="padding-right:40px;" valign="top">
89
  <a href="http://wordpress.org/extend/plugins/duplicator" target="_blank"><img id="dup-img-5stars" src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/5star.png" /></a>
90
- <div style="margin-top:-4px"><?php _e('Leave 5 Stars', 'duplicator') ?></div></a>
91
- </td>
92
- </tr>
93
- <tr>
94
- <td colspan="2">
95
-
96
  </td>
97
  </tr>
98
  </table>
68
  <table class="dup-support-hlp-hdrs">
69
  <tr >
70
  <td style="height:30px; text-align: center;">
71
+ <span style="display: inline-block; margin-top: 5px"><?php _e('Rate Duplicator', 'duplicator') ?></span>
72
  </td>
73
  </tr>
74
  </table>
75
  <table style="text-align: center;width:100%; font-size:11px; font-style:italic; margin-top:25px">
76
  <tr>
77
+ <td valign="top">
 
 
 
 
 
 
 
 
 
 
 
78
  <a href="http://wordpress.org/extend/plugins/duplicator" target="_blank"><img id="dup-img-5stars" src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/5star.png" /></a>
79
+ <div style=" font-size: 16px; font-weight: bold">
80
+ <a href="http://wordpress.org/extend/plugins/duplicator" target="_blank"><?php _e('Leave 5 Stars', 'duplicator') ?></a>
81
+ </div>
 
 
 
82
  </td>
83
  </tr>
84
  </table>
views/packages/main/new1.setup.php CHANGED
@@ -132,22 +132,23 @@ SYSTEM REQUIREMENTS -->
132
  <!-- PERMISSIONS -->
133
  <div class='dup-sys-req'>
134
  <div class='dup-sys-title'>
135
- <a><?php _e('Permissions', 'duplicator'); ?></a> <div><?php echo $dup_tests['IO']['ALL']; ?></div>
136
  </div>
137
  <div class="dup-sys-info dup-info-box">
138
- <b><?php _e("Required Paths", 'duplicator'); ?></b>
139
- <div style="padding:3px 0px 0px 15px">
140
- <?php
141
- printf("<b>%s</b> &nbsp; [%s] <br/>", $dup_tests['IO']['WPROOT'], DUPLICATOR_WPROOTPATH);
142
- printf("<b>%s</b> &nbsp; [%s] <br/>", $dup_tests['IO']['SSDIR'], DUPLICATOR_SSDIR_PATH);
143
- printf("<b>%s</b> &nbsp; [%s] <br/>", $dup_tests['IO']['SSTMP'], DUPLICATOR_SSDIR_PATH_TMP);
144
- //printf("<b>%s:</b> [%s] <br/>", __('PHP Script Owner', 'duplicator'), DUP_Util::GetCurrentUser());
145
- //printf("<b>%s:</b> [%s] <br/>", __('PHP Process Owner', 'duplicator'), DUP_Util::GetProcessOwner());
146
- ?>
147
- </div>
148
- <small>
149
- <?php _e("Permissions can be difficult to resolve on some systems. If the plugin can not read the above paths here are a few things to try. 1) Set the above paths to have permissions of 755 for directories and 644 for files. You can temporarily try 777 however, be sure you don’t leave them this way. 2) Check the owner/group settings for both files and directories. The PHP script owner and the process owner are different. The script owner owns the PHP script but the process owner is the user the script is running as, thus determining its capabilities/privileges in the file system. For more details contact your host or server administrator or visit the 'Help' menu under Duplicator for additional online resources.", 'duplicator'); ?>
150
- </small>
 
151
  </div>
152
  </div>
153
 
132
  <!-- PERMISSIONS -->
133
  <div class='dup-sys-req'>
134
  <div class='dup-sys-title'>
135
+ <a><?php _e('Required Paths', 'duplicator'); ?></a> <div><?php echo $dup_tests['IO']['ALL']; ?></div>
136
  </div>
137
  <div class="dup-sys-info dup-info-box">
138
+ <?php
139
+ printf("<b>%s</b> &nbsp; [%s] <br/>", $dup_tests['IO']['SSDIR'], DUPLICATOR_SSDIR_PATH);
140
+ printf("<b>%s</b> &nbsp; [%s] <br/>", $dup_tests['IO']['SSTMP'], DUPLICATOR_SSDIR_PATH_TMP);
141
+ ?>
142
+ <br/>
143
+ <div style="font-size:11px">
144
+ <?php
145
+ _e("If Duplicator does not have enough permissions then you will need to manually create the paths above. &nbsp; ", 'duplicator');
146
+ if ($dup_tests['IO']['WPROOT'] == 'Fail')
147
+ {
148
+ echo sprintf( __('The root WordPress path [%s] is currently not writable by PHP.', 'duplicator'), DUPLICATOR_WPROOTPATH);
149
+ }
150
+ ?>
151
+ </div>
152
  </div>
153
  </div>
154
 
views/packages/main/new2.scan.php CHANGED
@@ -67,7 +67,7 @@
67
 
68
  div#dup-scan-warning-continue {display:none; text-align: center; padding: 0 0 15px 0}
69
  div#dup-scan-warning-continue div.msg1 label{font-size:16px; color:maroon}
70
- div#dup-scan-warning-continue div.msg2 {padding:2px}
71
  div#dup-scan-warning-continue div.msg2 label {font-size:11px !important}
72
 
73
  /*Footer*/
@@ -466,8 +466,14 @@ TOOL BAR: STEPS -->
466
  <!-- WARNING CONTINUE -->
467
  <div id="dup-scan-warning-continue">
468
  <div class="msg1">
469
- <input type="checkbox" id="dup-scan-warning-continue-checkbox" onclick="Duplicator.Pack.WarningContinue(this)"/>
470
- <label for="dup-scan-warning-continue-checkbox"><?php _e('A warning status was detected, are you sure you want to continue?', 'duplicator');?></label>
 
 
 
 
 
 
471
  </div>
472
  <div class="msg2">
473
  <label for="dup-scan-warning-continue-checkbox">
67
 
68
  div#dup-scan-warning-continue {display:none; text-align: center; padding: 0 0 15px 0}
69
  div#dup-scan-warning-continue div.msg1 label{font-size:16px; color:maroon}
70
+ div#dup-scan-warning-continue div.msg2 {padding:2px; line-height: 13px}
71
  div#dup-scan-warning-continue div.msg2 label {font-size:11px !important}
72
 
73
  /*Footer*/
466
  <!-- WARNING CONTINUE -->
467
  <div id="dup-scan-warning-continue">
468
  <div class="msg1">
469
+
470
+ <label for="dup-scan-warning-continue-checkbox">
471
+ <?php _e('A warning status was detected, are you sure you want to continue?', 'duplicator');?>
472
+ </label>
473
+ <div style="padding:8px 0">
474
+ <input type="checkbox" id="dup-scan-warning-continue-checkbox" onclick="Duplicator.Pack.WarningContinue(this)"/>
475
+ <label for="dup-scan-warning-continue-checkbox"><?php _e('Yes. Continue with the build process!', 'duplicator');?></label>
476
+ </div>
477
  </div>
478
  <div class="msg2">
479
  <label for="dup-scan-warning-continue-checkbox">
views/packages/main/packages.php CHANGED
@@ -33,25 +33,26 @@
33
  td.error-msg a i {color:maroon}
34
  td.error-msg span {display:inline-block; padding:7px 18px 0px 0px; color:maroon}
35
 
36
- /*Add Rotator */
37
- span#dup-add-link {display:none; font-size:13px}
38
  </style>
39
 
40
  <form id="form-duplicator" method="post">
 
 
 
 
 
 
41
 
42
  <!-- ====================
43
  TOOL-BAR -->
44
  <table id="dup-toolbar">
45
  <tr valign="top">
46
  <td style="white-space: nowrap">
47
- <div class="alignleft actions">
48
- <select id="dup-pack-bulk-actions">
49
- <option value="-1" selected="selected"><?php _e("Bulk Actions", 'duplicator') ?></option>
50
- <option value="delete" title="<?php _e("Delete selected package(s)", 'duplicator') ?>"><?php _e("Delete", 'duplicator') ?></option>
51
- </select>
52
- <input type="button" id="dup-pack-bulk-apply" class="button action" value="<?php _e("Apply", 'duplicator') ?>" onclick="Duplicator.Pack.Delete()">
53
- </div>
54
- <br class="clear">
55
  </td>
56
  <td align="center" >
57
  <a href="?page=duplicator-tools" id="btn-logs-dialog" class="button" title="<?php _e("Package Logs", 'duplicator') ?>..."><i class="fa fa-list-alt"></i>
@@ -181,10 +182,7 @@ TOOL-BAR -->
181
  ?>
182
  <tfoot>
183
  <tr>
184
- <th colspan="4">
185
- <?php echo DUP_UI::ShowRandomAffilateLink(); ?>
186
- </th>
187
- <th colspan="7" style='text-align:right; font-size:12px'>
188
  <?php echo _e("Packages", 'duplicator') . ': ' . $totalElements; ?> |
189
  <?php echo _e("Total Size", 'duplicator') . ': ' . DUP_Util::ByteSize($totalSize); ?>
190
  </th>
@@ -248,6 +246,5 @@ jQuery(document).ready(function($)
248
  window.location.href = '?page=duplicator&action=detail&tab=detail&id=' + package_id;
249
  }
250
 
251
- $('#dup-add-link').slideDown(1500);
252
  });
253
  </script>
33
  td.error-msg a i {color:maroon}
34
  td.error-msg span {display:inline-block; padding:7px 18px 0px 0px; color:maroon}
35
 
 
 
36
  </style>
37
 
38
  <form id="form-duplicator" method="post">
39
+
40
+ <?php if($statusCount >= 2) : ?>
41
+ <div style="font-size:14px; position: absolute; top:15px; right:25px">
42
+ <a href="admin.php?page=duplicator-about" style="color:maroon"><i><i class="fa fa-check-circle"></i> <?php _e("Help Support Duplicator", 'duplicator') ?></i> </a>
43
+ </div>
44
+ <?php endif; ?>
45
 
46
  <!-- ====================
47
  TOOL-BAR -->
48
  <table id="dup-toolbar">
49
  <tr valign="top">
50
  <td style="white-space: nowrap">
51
+ <select id="dup-pack-bulk-actions">
52
+ <option value="-1" selected="selected"><?php _e("Bulk Actions", 'duplicator') ?></option>
53
+ <option value="delete" title="<?php _e("Delete selected package(s)", 'duplicator') ?>"><?php _e("Delete", 'duplicator') ?></option>
54
+ </select>
55
+ <input type="button" id="dup-pack-bulk-apply" class="button action" value="<?php _e("Apply", 'duplicator') ?>" onclick="Duplicator.Pack.Delete()">
 
 
 
56
  </td>
57
  <td align="center" >
58
  <a href="?page=duplicator-tools" id="btn-logs-dialog" class="button" title="<?php _e("Package Logs", 'duplicator') ?>..."><i class="fa fa-list-alt"></i>
182
  ?>
183
  <tfoot>
184
  <tr>
185
+ <th colspan="11" style='text-align:right; font-size:12px'>
 
 
 
186
  <?php echo _e("Packages", 'duplicator') . ': ' . $totalElements; ?> |
187
  <?php echo _e("Total Size", 'duplicator') . ': ' . DUP_Util::ByteSize($totalSize); ?>
188
  </th>
246
  window.location.href = '?page=duplicator&action=detail&tab=detail&id=' + package_id;
247
  }
248
 
 
249
  });
250
  </script>
views/tools/diagnostics.php CHANGED
@@ -168,6 +168,10 @@
168
  <td><?php _e("User", 'duplicator'); ?></td>
169
  <td><?php echo DUP_Util::GetCurrentUser(); ?></td>
170
  </tr>
 
 
 
 
171
  <tr>
172
  <td><a href="http://php.net/manual/en/features.safe-mode.php" target="_blank"><?php _e("Safe Mode", 'duplicator'); ?></a></td>
173
  <td>
168
  <td><?php _e("User", 'duplicator'); ?></td>
169
  <td><?php echo DUP_Util::GetCurrentUser(); ?></td>
170
  </tr>
171
+ <tr>
172
+ <td><?php _e("Process", 'duplicator'); ?></td>
173
+ <td><?php echo DUP_Util::GetProcessOwner(); ?></td>
174
+ </tr>
175
  <tr>
176
  <td><a href="http://php.net/manual/en/features.safe-mode.php" target="_blank"><?php _e("Safe Mode", 'duplicator'); ?></a></td>
177
  <td>
views/tools/logging.php CHANGED
@@ -39,11 +39,14 @@
39
  td#dup-log-panel-left div.name {float:left; margin: 0px 0px 5px 5px;}
40
  td#dup-log-panel-left div.opts {float:right;}
41
  td#dup-log-panel-right {vertical-align: top; padding-left:15px; max-width: 375px}
42
- div.dup-log-file-list a, span{display: inline-block; white-space: nowrap; text-overflow: ellipsis; max-width: 375px; line-height:20px; overflow:hidden}
 
43
  div.dup-log-file-list span {font-weight: bold}
 
44
  div.dup-opts-items {border:1px solid silver; background: #efefef; padding: 5px; border-radius: 4px; margin:2px 0px 10px -2px;}
45
  label#dup-auto-refresh-lbl {display: inline-block;}
46
  iframe#dup-log-content {padding:5px; background: #fff; min-height:500px; width:99%; border:1px solid silver}
 
47
  </style>
48
 
49
  <script type="text/javascript">
@@ -196,7 +199,7 @@ jQuery(document).ready(function($) {
196
  $name = esc_html(basename($log));
197
  $url = '?page=duplicator-tools&logname=' . $name;
198
  echo ($active == $name)
199
- ? "<span title='{$name}'>{$time} - {$name}</span><br/>"
200
  : "<a href='javascript:void(0)' title='{$name}' onclick='Duplicator.Tools.GetLog(\"{$url}\")'>{$time} - {$name}</a><br/>";
201
  if ($count > 20) break;
202
  }
39
  td#dup-log-panel-left div.name {float:left; margin: 0px 0px 5px 5px;}
40
  td#dup-log-panel-left div.opts {float:right;}
41
  td#dup-log-panel-right {vertical-align: top; padding-left:15px; max-width: 375px}
42
+
43
+ div.dup-log-file-list a, span.dup-log{display: inline-block; white-space: nowrap; text-overflow: ellipsis; max-width: 375px; line-height:20px; overflow:hidden}
44
  div.dup-log-file-list span {font-weight: bold}
45
+
46
  div.dup-opts-items {border:1px solid silver; background: #efefef; padding: 5px; border-radius: 4px; margin:2px 0px 10px -2px;}
47
  label#dup-auto-refresh-lbl {display: inline-block;}
48
  iframe#dup-log-content {padding:5px; background: #fff; min-height:500px; width:99%; border:1px solid silver}
49
+
50
  </style>
51
 
52
  <script type="text/javascript">
199
  $name = esc_html(basename($log));
200
  $url = '?page=duplicator-tools&logname=' . $name;
201
  echo ($active == $name)
202
+ ? "<span class='dup-log' title='{$name}'>{$time} - {$name}</span><br/>"
203
  : "<a href='javascript:void(0)' title='{$name}' onclick='Duplicator.Tools.GetLog(\"{$url}\")'>{$time} - {$name}</a><br/>";
204
  if ($count > 20) break;
205
  }