Duplicator – WordPress Migration Plugin - Version 1.2.12

Version Description

Download this release

Release Info

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

Code changes from version 1.2.10 to 1.2.12

assets/css/style.css CHANGED
@@ -28,10 +28,6 @@ div.dup-panel {padding:0px; display: block; background-color: #fff; border: 1px
28
  div.dup-panel-title {font-size: 14px; padding: 10px 0 0 15px; font-weight: 600; height:28px; margin:0px; color:#000; }
29
  div.dup-panel-panel {padding:10px 15px 10px 15px; border-top:1px solid #EEEEEE; margin:-1px 0 0 0;}
30
 
31
- /*PANELS: Fancy */
32
- div.dup-box-fancy {border-radius: 4px; border:1px solid #E1E1E1; margin: 1px 0 1px 0}
33
- div.dup-box-title-fancy {padding:5px 2px 5px 8px; height:18px; background: #eeeeee; background: linear-gradient(to bottom, #eeeeee 0%,#e0e0e0 100%);}
34
-
35
  /*INFO-BOX:Simple box with no title */
36
  div.dup-info-box {padding:8px; border:1px solid #ccc; border-radius:4px; background-color:#F7FCFE; margin:0px 0px 5px 20px; line-height:16px}
37
  div.dup-info-box small {margin-top:10px; display:block}
28
  div.dup-panel-title {font-size: 14px; padding: 10px 0 0 15px; font-weight: 600; height:28px; margin:0px; color:#000; }
29
  div.dup-panel-panel {padding:10px 15px 10px 15px; border-top:1px solid #EEEEEE; margin:-1px 0 0 0;}
30
 
 
 
 
 
31
  /*INFO-BOX:Simple box with no title */
32
  div.dup-info-box {padding:8px; border:1px solid #ccc; border-radius:4px; background-color:#F7FCFE; margin:0px 0px 5px 20px; line-height:16px}
33
  div.dup-info-box small {margin-top:10px; display:block}
classes/package/class.pack.archive.php CHANGED
@@ -54,12 +54,12 @@ class DUP_Archive
54
 
55
  $rootPath = DUP_Util::safePath(rtrim(DUPLICATOR_WPROOTPATH, '//'));
56
 
57
- $this->wpCorePaths[] = "{$rootPath}/wp-admin";
58
- $this->wpCorePaths[] = WP_CONTENT_DIR . "/uploads";
59
- $this->wpCorePaths[] = WP_CONTENT_DIR . "/languages";
60
- $this->wpCorePaths[] = WP_PLUGIN_DIR;
61
- $this->wpCorePaths[] = get_theme_root();
62
- $this->wpCorePaths[] = "{$rootPath}/wp-includes";
63
  }
64
 
65
  /**
54
 
55
  $rootPath = DUP_Util::safePath(rtrim(DUPLICATOR_WPROOTPATH, '//'));
56
 
57
+ $this->wpCorePaths[] = DUP_Util::safePath("{$rootPath}/wp-admin");
58
+ $this->wpCorePaths[] = DUP_Util::safePath(WP_CONTENT_DIR . "/uploads");
59
+ $this->wpCorePaths[] = DUP_Util::safePath(WP_CONTENT_DIR . "/languages");
60
+ $this->wpCorePaths[] = DUP_Util::safePath(WP_PLUGIN_DIR);
61
+ $this->wpCorePaths[] = DUP_Util::safePath(get_theme_root());
62
+ $this->wpCorePaths[] = DUP_Util::safePath("{$rootPath}/wp-includes");
63
  }
64
 
65
  /**
classes/package/class.pack.database.php CHANGED
@@ -149,9 +149,10 @@ class DUP_Database
149
 
150
  $info['Size'] += $size;
151
  $info['Rows'] += ($table["Rows"]);
152
- $info['TableList'][$name]['Case'] = preg_match('/[A-Z]/', $name) ? 1 : 0;
153
- $info['TableList'][$name]['Rows'] = number_format($rows);
154
- $info['TableList'][$name]['Size'] = DUP_Util::byteSize($size);
 
155
  $tblCount++;
156
 
157
  //Table Uppercase
@@ -302,7 +303,10 @@ class DUP_Database
302
  DUP_Log::Info("TABLES: total:{$tblAllCount} | filtered:{$tblFilterCount} | create:{$tblCreateCount}");
303
  DUP_Log::Info("FILTERED: [{$this->FilterTables}]");
304
 
305
- $sql_header = "/* DUPLICATOR MYSQL SCRIPT CREATED ON : ".@date("Y-m-d H:i:s")." */\n\n";
 
 
 
306
  $sql_header .= "SET FOREIGN_KEY_CHECKS = 0;\n\n";
307
  fwrite($handle, $sql_header);
308
 
149
 
150
  $info['Size'] += $size;
151
  $info['Rows'] += ($table["Rows"]);
152
+ $info['TableList'][$name]['Case'] = preg_match('/[A-Z]/', $name) ? 1 : 0;
153
+ $info['TableList'][$name]['Rows'] = number_format($rows);
154
+ $info['TableList'][$name]['Size'] = DUP_Util::byteSize($size);
155
+ $info['TableList'][$name]['USize'] = $size;
156
  $tblCount++;
157
 
158
  //Table Uppercase
303
  DUP_Log::Info("TABLES: total:{$tblAllCount} | filtered:{$tblFilterCount} | create:{$tblCreateCount}");
304
  DUP_Log::Info("FILTERED: [{$this->FilterTables}]");
305
 
306
+ //Added 'NO_AUTO_VALUE_ON_ZERO' at plugin version 1.2.12 to fix :
307
+ //**ERROR** database error write 'Invalid default value for for older mysql versions
308
+ $sql_header = "/* DUPLICATOR-LITE (PHP BUILD MODE) MYSQL SCRIPT CREATED ON : ".@date("Y-m-d H:i:s")." */\n\n";
309
+ $sql_header .= "/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;\n\n";
310
  $sql_header .= "SET FOREIGN_KEY_CHECKS = 0;\n\n";
311
  fwrite($handle, $sql_header);
312
 
classes/package/class.pack.php CHANGED
@@ -119,7 +119,7 @@ class DUP_Package
119
  $report['ARC']['FilterInfo'] = $this->Archive->FilterInfo;
120
  $report['ARC']['Status']['Size'] = ($this->Archive->Size > DUPLICATOR_SCAN_SIZE_DEFAULT) ? 'Warn' : 'Good';
121
  $report['ARC']['Status']['Names'] = (count($this->Archive->FilterInfo->Files->Warning) + count($this->Archive->FilterInfo->Dirs->Warning)) ? 'Warn' : 'Good';
122
- $report['ARC']['Status']['Big'] = count($this->Archive->FilterInfo->Files->Size) ? 'Warn' : 'Good';
123
  $report['ARC']['Dirs'] = $this->Archive->Dirs;
124
  $report['ARC']['Files'] = $this->Archive->Files;
125
 
@@ -128,15 +128,15 @@ class DUP_Package
128
  $db = $this->Database->getScannerData();
129
  $report['DB'] = $db;
130
 
131
- $warnings = array($report['SRV']['WEB']['ALL'],
132
  $report['SRV']['PHP']['ALL'],
133
  $report['SRV']['WP']['ALL'],
134
  $report['ARC']['Status']['Size'],
135
  $report['ARC']['Status']['Names'],
136
- $report['ARC']['Status']['Big'],
137
- $db['Status']['Size'],
138
- $db['Status']['Rows'],
139
- $db['Status']['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
@@ -485,11 +485,13 @@ class DUP_Package
485
  *
486
  * @return string A default packagename such as 20170218_blogname
487
  */
488
- public static function getDefaultName()
489
  {
490
  //Remove specail_chars from final result
491
  $special_chars = array(".", "-");
492
- $name = date('Ymd').'_'.sanitize_title(get_bloginfo('name', 'display'));
 
 
493
  $name = substr(sanitize_file_name($name), 0, 40);
494
  $name = str_replace($special_chars, '', $name);
495
  return $name;
119
  $report['ARC']['FilterInfo'] = $this->Archive->FilterInfo;
120
  $report['ARC']['Status']['Size'] = ($this->Archive->Size > DUPLICATOR_SCAN_SIZE_DEFAULT) ? 'Warn' : 'Good';
121
  $report['ARC']['Status']['Names'] = (count($this->Archive->FilterInfo->Files->Warning) + count($this->Archive->FilterInfo->Dirs->Warning)) ? 'Warn' : 'Good';
122
+ //$report['ARC']['Status']['Big'] = count($this->Archive->FilterInfo->Files->Size) ? 'Warn' : 'Good';
123
  $report['ARC']['Dirs'] = $this->Archive->Dirs;
124
  $report['ARC']['Files'] = $this->Archive->Files;
125
 
128
  $db = $this->Database->getScannerData();
129
  $report['DB'] = $db;
130
 
131
+ $warnings = array(
132
  $report['SRV']['PHP']['ALL'],
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
485
  *
486
  * @return string A default packagename such as 20170218_blogname
487
  */
488
+ public static function getDefaultName($preDate = true)
489
  {
490
  //Remove specail_chars from final result
491
  $special_chars = array(".", "-");
492
+ $name = ($preDate)
493
+ ? date('Ymd') . '_' . sanitize_title(get_bloginfo('name', 'display'))
494
+ : sanitize_title(get_bloginfo('name', 'display')) . '_' . date('Ymd');
495
  $name = substr(sanitize_file_name($name), 0, 40);
496
  $name = str_replace($special_chars, '', $name);
497
  return $name;
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.10');
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());
@@ -39,7 +39,7 @@ if (function_exists('plugin_dir_url'))
39
  define('DUPLICATOR_SCAN_SIZE_DEFAULT', 157286400); //150MB
40
  define('DUPLICATOR_SCAN_WARNFILESIZE', 3145728); //3MB
41
  define('DUPLICATOR_SCAN_CACHESIZE', 1048576); //1MB
42
- define('DUPLICATOR_SCAN_DB_ALL_ROWS', 1000000); //1 rows million per DB
43
  define('DUPLICATOR_SCAN_DB_ALL_SIZE', 52428800); //50MB DB
44
  define('DUPLICATOR_SCAN_DB_TBL_ROWS', 100000); //100K rows per table
45
  define('DUPLICATOR_SCAN_DB_TBL_SIZE', 10485760); //10MB Table
2
  //Prevent directly browsing to the file
3
  if (function_exists('plugin_dir_url'))
4
  {
5
+ define('DUPLICATOR_VERSION', '1.2.12');
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());
39
  define('DUPLICATOR_SCAN_SIZE_DEFAULT', 157286400); //150MB
40
  define('DUPLICATOR_SCAN_WARNFILESIZE', 3145728); //3MB
41
  define('DUPLICATOR_SCAN_CACHESIZE', 1048576); //1MB
42
+ define('DUPLICATOR_SCAN_DB_ALL_ROWS', 500000); //500k per DB
43
  define('DUPLICATOR_SCAN_DB_ALL_SIZE', 52428800); //50MB DB
44
  define('DUPLICATOR_SCAN_DB_TBL_ROWS', 100000); //100K rows per table
45
  define('DUPLICATOR_SCAN_DB_TBL_SIZE', 10485760); //10MB Table
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.10
7
  Author: Snap Creek
8
  Author URI: http://www.snapcreek.com/duplicator/
9
  Text Domain: duplicator
@@ -183,8 +183,6 @@ if (is_admin() == true)
183
  case 'duplicator-settings': include('views/settings/controller.php'); break;
184
  case 'duplicator-tools': include('views/tools/controller.php'); break;
185
  case 'duplicator-debug': include('debug/main.php'); break;
186
- case 'duplicator-help': include('views/help/help.php'); break;
187
- case 'duplicator-about': include('views/help/about.php'); break;
188
  case 'duplicator-gopro': include('views/help/gopro.php'); break;
189
  }
190
  }
@@ -221,16 +219,6 @@ if (is_admin() == true)
221
  $lang_txt = __('Settings', 'duplicator');
222
  $page_settings = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-settings', 'duplicator_get_menu');
223
 
224
- $perms = 'manage_options';
225
- $perms = apply_filters($wpfront_caps_translator, $perms);
226
- $lang_txt = __('Help', 'duplicator');
227
- $page_help = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-help', 'duplicator_get_menu');
228
-
229
- $perms = 'manage_options';
230
- $perms = apply_filters($wpfront_caps_translator, $perms);
231
- $lang_txt = __('About', 'duplicator');
232
- $page_about = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-about', 'duplicator_get_menu');
233
-
234
  $perms = 'manage_options';
235
  $lang_txt = __('Go Pro!', 'duplicator');
236
  $go_pro_link = '<span style="color:#f18500">' . $lang_txt . '</span>';
@@ -251,17 +239,13 @@ if (is_admin() == true)
251
  //Apply Scripts
252
  add_action('admin_print_scripts-' . $page_packages, 'duplicator_scripts');
253
  add_action('admin_print_scripts-' . $page_settings, 'duplicator_scripts');
254
- add_action('admin_print_scripts-' . $page_help, 'duplicator_scripts');
255
  add_action('admin_print_scripts-' . $page_tools, 'duplicator_scripts');
256
- add_action('admin_print_scripts-' . $page_about, 'duplicator_scripts');
257
  add_action('admin_print_scripts-' . $page_gopro, 'duplicator_scripts');
258
 
259
  //Apply Styles
260
  add_action('admin_print_styles-' . $page_packages, 'duplicator_styles');
261
  add_action('admin_print_styles-' . $page_settings, 'duplicator_styles');
262
- add_action('admin_print_styles-' . $page_help, 'duplicator_styles');
263
  add_action('admin_print_styles-' . $page_tools, 'duplicator_styles');
264
- add_action('admin_print_styles-' . $page_about, 'duplicator_styles');
265
  add_action('admin_print_styles-' . $page_gopro, 'duplicator_styles');
266
 
267
  }
@@ -333,8 +317,7 @@ if (is_admin() == true)
333
  $plugin = plugin_basename(__FILE__);
334
  // create link
335
  if ($file == $plugin) {
336
- $links[] = '<a href="admin.php?page=duplicator-help" title="' . __('Get Help', 'duplicator') . '" >' . __('Help', 'duplicator') . '</a>';
337
- $links[] = '<a href="admin.php?page=duplicator-about" title="' . __('Support the Plugin', 'duplicator') . '">' . __('About', 'duplicator') . '</a>';
338
  return $links;
339
  }
340
  return $links;
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.12
7
  Author: Snap Creek
8
  Author URI: http://www.snapcreek.com/duplicator/
9
  Text Domain: duplicator
183
  case 'duplicator-settings': include('views/settings/controller.php'); break;
184
  case 'duplicator-tools': include('views/tools/controller.php'); break;
185
  case 'duplicator-debug': include('debug/main.php'); break;
 
 
186
  case 'duplicator-gopro': include('views/help/gopro.php'); break;
187
  }
188
  }
219
  $lang_txt = __('Settings', 'duplicator');
220
  $page_settings = add_submenu_page('duplicator', $lang_txt, $lang_txt, $perms, 'duplicator-settings', 'duplicator_get_menu');
221
 
 
 
 
 
 
 
 
 
 
 
222
  $perms = 'manage_options';
223
  $lang_txt = __('Go Pro!', 'duplicator');
224
  $go_pro_link = '<span style="color:#f18500">' . $lang_txt . '</span>';
239
  //Apply Scripts
240
  add_action('admin_print_scripts-' . $page_packages, 'duplicator_scripts');
241
  add_action('admin_print_scripts-' . $page_settings, 'duplicator_scripts');
 
242
  add_action('admin_print_scripts-' . $page_tools, 'duplicator_scripts');
 
243
  add_action('admin_print_scripts-' . $page_gopro, 'duplicator_scripts');
244
 
245
  //Apply Styles
246
  add_action('admin_print_styles-' . $page_packages, 'duplicator_styles');
247
  add_action('admin_print_styles-' . $page_settings, 'duplicator_styles');
 
248
  add_action('admin_print_styles-' . $page_tools, 'duplicator_styles');
 
249
  add_action('admin_print_styles-' . $page_gopro, 'duplicator_styles');
250
 
251
  }
317
  $plugin = plugin_basename(__FILE__);
318
  // create link
319
  if ($file == $plugin) {
320
+ $links[] = '<a href="admin.php?page=duplicator-gopro" title="' . __('Get Help', 'duplicator') . '" style="">' . __('Go Pro', 'duplicator') . '</a>';
 
321
  return $links;
322
  }
323
  return $links;
installer/build/assets/inc.css.php CHANGED
@@ -158,7 +158,7 @@
158
  /* ======================================
159
  STEP 4 VIEW
160
  ====================================== */
161
- div.s4-final-title {color:#BE2323;}
162
  div.s4-connect {font-size:12px; text-align:center; font-style:italic; position:absolute; bottom:10px; padding:10px; width:100%; margin-top:20px}
163
  table.s4-report-results,
164
  table.s4-report-errs {border-collapse:collapse; border:1px solid #dfdfdf; }
158
  /* ======================================
159
  STEP 4 VIEW
160
  ====================================== */
161
+ div.s4-final-title {color:#BE2323;font-size:18px}
162
  div.s4-connect {font-size:12px; text-align:center; font-style:italic; position:absolute; bottom:10px; padding:10px; width:100%; margin-top:20px}
163
  table.s4-report-results,
164
  table.s4-report-errs {border-collapse:collapse; border:1px solid #dfdfdf; }
installer/build/view.step4.php CHANGED
@@ -28,7 +28,7 @@ VIEW: STEP 4 - INPUT -->
28
  Step <span class="step">4</span> of 4: Test
29
  </div><br />
30
 
31
- <div class="hdr-sub1">
32
  <div class="s4-final-title">Final Steps</div>
33
  </div>
34
 
28
  Step <span class="step">4</span> of 4: Test
29
  </div><br />
30
 
31
+ <div class="hdr-sub3">
32
  <div class="s4-final-title">Final Steps</div>
33
  </div>
34
 
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.10
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.
@@ -16,7 +16,7 @@ WordPress migration and backups are much easier with Duplicator! Clone, backup,
16
  For complete details visit [snapcreek.com](https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wp_org&utm_content=desc_details&utm_campaign=duplicator_free).
17
 
18
  = Quick Video Demo =
19
- http://www.youtube.com/watch?v=yZ7pHmR9JC8
20
 
21
  = Overview =
22
  Duplicator enables you to:
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.12
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.
16
  For complete details visit [snapcreek.com](https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wp_org&utm_content=desc_details&utm_campaign=duplicator_free).
17
 
18
  = Quick Video Demo =
19
+ http://www.youtube.com/watch?v=oc73jtvHWYQ
20
 
21
  = Overview =
22
  Duplicator enables you to:
views/packages/main/controller.php CHANGED
@@ -4,7 +4,7 @@ $current_tab = isset($_REQUEST['tab']) ? esc_html($_REQUEST['tab']) : 'list';
4
  ?>
5
 
6
  <style>
7
- //TOOLBAR TABLE
8
  table#dup-toolbar td {white-space: nowrap !important; padding:10px 0 0 0}
9
  table#dup-toolbar {width:100%; border:0 solid red; padding: 0; margin:8px 0 4px 0; height: 35px}
10
  table#dup-toolbar td:last-child {font-size:16px; width:100%; text-align: right; vertical-align: bottom;white-space:nowrap;}
4
  ?>
5
 
6
  <style>
7
+ /*TOOLBAR TABLE*/
8
  table#dup-toolbar td {white-space: nowrap !important; padding:10px 0 0 0}
9
  table#dup-toolbar {width:100%; border:0 solid red; padding: 0; margin:8px 0 4px 0; height: 35px}
10
  table#dup-toolbar td:last-child {font-size:16px; width:100%; text-align: right; vertical-align: bottom;white-space:nowrap;}
views/packages/main/s1.setup1.php CHANGED
@@ -19,7 +19,6 @@ DUP_Util::initSnapshotDirectory();
19
  $Package = DUP_Package::getActive();
20
  $dup_tests = array();
21
  $dup_tests = DUP_Server::getRequirements();
22
- $default_name = DUP_Package::getDefaultName();
23
 
24
  //View State
25
  $ctrl_ui = new DUP_CTRL_UI();
@@ -79,8 +78,9 @@ TOOL BAR: STEPS -->
79
 
80
  <!-- ============================
81
  SYSTEM REQUIREMENTS -->
82
- <div class="dup-box dup-box-fancy">
83
- <div class="dup-box-title dup-box-title-fancy">
 
84
  <?php
85
  _e("Requirements:", 'duplicator');
86
  echo ($dup_tests['Success']) ? ' <div class="dup-sys-pass">Pass</div>' : ' <div class="dup-sys-fail">Fail</div>';
@@ -88,7 +88,7 @@ SYSTEM REQUIREMENTS -->
88
  <div class="dup-box-arrow"></div>
89
  </div>
90
 
91
- <div class="dup-box-panel" style="<?php echo ($dup_tests['Success']) ? 'display:none' : ''; ?>">
92
 
93
  <div class="dup-sys-section">
94
  <i><?php _e("System requirements must pass for the Duplicator to work properly. Click each link for details.", 'duplicator'); ?></i>
@@ -214,6 +214,7 @@ SYSTEM REQUIREMENTS -->
214
 
215
  </div>
216
  </div><br/>
 
217
 
218
 
219
  <!-- ============================
19
  $Package = DUP_Package::getActive();
20
  $dup_tests = array();
21
  $dup_tests = DUP_Server::getRequirements();
 
22
 
23
  //View State
24
  $ctrl_ui = new DUP_CTRL_UI();
78
 
79
  <!-- ============================
80
  SYSTEM REQUIREMENTS -->
81
+ <?php if (! $dup_tests['Success']) : ?>
82
+ <div class="dup-box">
83
+ <div class="dup-box-title">
84
  <?php
85
  _e("Requirements:", 'duplicator');
86
  echo ($dup_tests['Success']) ? ' <div class="dup-sys-pass">Pass</div>' : ' <div class="dup-sys-fail">Fail</div>';
88
  <div class="dup-box-arrow"></div>
89
  </div>
90
 
91
+ <div class="dup-box-panel">
92
 
93
  <div class="dup-sys-section">
94
  <i><?php _e("System requirements must pass for the Duplicator to work properly. Click each link for details.", 'duplicator'); ?></i>
214
 
215
  </div>
216
  </div><br/>
217
+ <?php endif; ?>
218
 
219
 
220
  <!-- ============================
views/packages/main/s1.setup2.php CHANGED
@@ -8,10 +8,11 @@
8
  form#dup-form-opts textarea, input[type="text"] {width:100%}
9
  form#dup-form-opts textarea#filter-dirs {height:95px;}
10
  form#dup-form-opts textarea#filter-exts {height:27px}
11
- textarea#package_notes {height:37px;}
12
  div.dup-notes-add {float:right; margin:-4px 2px 4px 0;}
13
  div#dup-notes-area {display:none}
14
-
 
15
  /*ARCHIVE SECTION*/
16
  form#dup-form-opts div.tabs-panel{max-height:550px; padding:10px; min-height:280px}
17
  form#dup-form-opts ul li.tabs{font-weight:bold}
@@ -47,14 +48,16 @@
47
  <form id="dup-form-opts" method="post" action="?page=duplicator&tab=new2<?php echo $retry_enabled ? '&retry=1' : '';?>" data-validate="parsley">
48
  <input type="hidden" id="dup-form-opts-action" name="action" value="">
49
  <div>
50
- <label for="package-name"><b><?php _e('Name', 'duplicator') ?>:</b> </label>
51
- <div class="dup-notes-add">
52
- <button class="button button-small" type="button" onclick="jQuery('#dup-notes-area').toggle()" title="<?php _e('Notes', 'duplicator') ?>"><i class="fa fa-pencil-square-o"></i> </button>
 
 
53
  </div>
54
- <a href="javascript:void(0)" onclick="Duplicator.Pack.ResetName()" title="<?php _e('Create a new default name', 'duplicator') ?>"><i class="fa fa-undo"></i></a> <br/>
55
  <input id="package-name" name="package-name" type="text" value="<?php echo $Package->Name ?>" maxlength="40" data-required="true" data-regexp="^[0-9A-Za-z|_]+$" /> <br/>
56
  <div id="dup-notes-area">
57
- <label><b><?php _e('Notes', 'duplicator') ?>:</b></label> <br/>
58
  <textarea id="package-notes" name="package-notes" maxlength="300" /><?php echo $Package->Notes ?></textarea>
59
  </div>
60
  </div>
@@ -425,11 +428,16 @@ THICK-BOX DIALOGS: -->
425
  $confirm1->message = __('This will clear and reset all of the current package settings. Would you like to continue?', 'duplicator');
426
  $confirm1->jscallback = 'Duplicator.Pack.ResetSettings()';
427
  $confirm1->initConfirm();
 
 
 
 
428
  ?>
429
  <script>
430
  jQuery(document).ready(function ($)
431
  {
432
- var DUP_NAMEDEFAULT = '<?php echo $default_name ?>';
 
433
  var DUP_NAMELAST = $('#package-name').val();
434
 
435
  Duplicator.Pack.ExportOnlyDB = function ()
@@ -508,7 +516,12 @@ jQuery(document).ready(function ($)
508
  Duplicator.Pack.ResetName = function ()
509
  {
510
  var current = $('#package-name').val();
511
- $('#package-name').val((current == DUP_NAMELAST) ? DUP_NAMEDEFAULT :DUP_NAMELAST)
 
 
 
 
 
512
  }
513
 
514
  Duplicator.Pack.ExcludeTable = function (check)
8
  form#dup-form-opts textarea, input[type="text"] {width:100%}
9
  form#dup-form-opts textarea#filter-dirs {height:95px;}
10
  form#dup-form-opts textarea#filter-exts {height:27px}
11
+ textarea#package-notes {height:75px;}
12
  div.dup-notes-add {float:right; margin:-4px 2px 4px 0;}
13
  div#dup-notes-area {display:none}
14
+ input#package-name {padding:4px; height: 2em; font-size: 1.2em; line-height: 100%; width: 100%; margin: 0 0 3px;}
15
+ label.lbl-larger {font-size:1.2em}
16
  /*ARCHIVE SECTION*/
17
  form#dup-form-opts div.tabs-panel{max-height:550px; padding:10px; min-height:280px}
18
  form#dup-form-opts ul li.tabs{font-weight:bold}
48
  <form id="dup-form-opts" method="post" action="?page=duplicator&tab=new2<?php echo $retry_enabled ? '&retry=1' : '';?>" data-validate="parsley">
49
  <input type="hidden" id="dup-form-opts-action" name="action" value="">
50
  <div>
51
+ <label for="package-name" class="lbl-larger"><b>&nbsp;<?php _e('Name', 'duplicator') ?>:</b> </label>
52
+ <div class="dup-notes-add">
53
+ <a href="javascript:void(0)" onclick="jQuery('#dup-notes-area').toggle()">
54
+ [<?php _e('Add Notes', 'duplicator') ?>]
55
+ </a>
56
  </div>
57
+ <a href="javascript:void(0)" onclick="Duplicator.Pack.ResetName()" title="<?php _e('Toggle a default name', 'duplicator') ?>"><i class="fa fa-undo"></i></a> <br/>
58
  <input id="package-name" name="package-name" type="text" value="<?php echo $Package->Name ?>" maxlength="40" data-required="true" data-regexp="^[0-9A-Za-z|_]+$" /> <br/>
59
  <div id="dup-notes-area">
60
+ <label class="lbl-larger"><b>&nbsp;<?php _e('Notes', 'duplicator') ?>:</b></label> <br/>
61
  <textarea id="package-notes" name="package-notes" maxlength="300" /><?php echo $Package->Notes ?></textarea>
62
  </div>
63
  </div>
428
  $confirm1->message = __('This will clear and reset all of the current package settings. Would you like to continue?', 'duplicator');
429
  $confirm1->jscallback = 'Duplicator.Pack.ResetSettings()';
430
  $confirm1->initConfirm();
431
+
432
+ $default_name1 = DUP_Package::getDefaultName();
433
+ $default_name2 = DUP_Package::getDefaultName(false);
434
+
435
  ?>
436
  <script>
437
  jQuery(document).ready(function ($)
438
  {
439
+ var DUP_NAMEDEFAULT1 = '<?php echo $default_name1 ?>';
440
+ var DUP_NAMEDEFAULT2 = '<?php echo $default_name2 ?>';
441
  var DUP_NAMELAST = $('#package-name').val();
442
 
443
  Duplicator.Pack.ExportOnlyDB = function ()
516
  Duplicator.Pack.ResetName = function ()
517
  {
518
  var current = $('#package-name').val();
519
+ switch (current) {
520
+ case DUP_NAMEDEFAULT1 : $('#package-name').val(DUP_NAMELAST); break;
521
+ case DUP_NAMEDEFAULT2 : $('#package-name').val(DUP_NAMEDEFAULT1); break;
522
+ case DUP_NAMELAST : $('#package-name').val(DUP_NAMEDEFAULT2); break;
523
+ default: $('#package-name').val(DUP_NAMELAST);
524
+ }
525
  }
526
 
527
  Duplicator.Pack.ExcludeTable = function (check)
views/packages/main/s2.scan1.php CHANGED
@@ -24,7 +24,7 @@
24
  form#form-duplicator {text-align:center; max-width:650px; min-height:200px; margin:0px auto 0px auto; padding:0px;}
25
  div.dup-progress-title {font-size:22px; padding:5px 0 20px 0; font-weight:bold}
26
  div#dup-msg-success {padding:0 5px 5px 5px; text-align:left}
27
- div#dup-msg-success div.details {padding:10px 15px 10px 15px; margin:5px 0 15px 0; background:#fff; border-radius:5px; border:1px solid #ddd; }
28
  div#dup-msg-success div.details-title {font-size:20px; border-bottom:1px solid #dfdfdf; padding:5px; margin:0 0 10px 0; font-weight:bold}
29
  div#dup-msg-success-subtitle {color:#999; margin:0; font-size:11px}
30
  div.dup-scan-filter-status {display:inline; float:right; font-size:11px; margin-right:10px; color:#630f0f;}
@@ -41,12 +41,14 @@
41
  div.scan-item div.title {background-color:#F1F1F1; width:100%; padding:4px 0 4px 0; cursor:pointer; height:20px;}
42
  div.scan-item div.title:hover {background-color:#ECECEC;}
43
  div.scan-item div.text {font-weight:bold; font-size:14px; float:left; position:relative; left:10px}
44
- div.scan-item div.badge-pass {float:right; background:green; border-radius:5px; color:#fff; min-width:40px; text-align:center; position:relative; right:10px; font-size:12px}
45
- div.scan-item div.badge-warn {float:right; background:#630f0f; border-radius:5px; color:#fff; min-width:40px; text-align:center; position:relative; right:10px; font-size:12px}
46
  div.scan-item div.info {display:none; padding:10px; background:#fff}
47
  div.scan-good {display:inline-block; color:green;font-weight:bold;}
48
  div.scan-warn {display:inline-block; color:#630f0f;font-weight:bold;}
49
  div.dup-more-details {float:right; font-size:14px}
 
 
50
  div.dup-more-details:hover {color:#777; cursor:pointer}
51
 
52
  /*FILES */
@@ -80,10 +82,9 @@
80
  div#size-more-details li {margin:0}
81
 
82
  /*DATABASE*/
83
- div#dup-scan-db-info {margin:0px 0px 0px 10px}
84
- div#data-db-tablelist {max-height:300px; overflow-y:scroll; border:1px dashed silver; padding:5px; margin-top:5px}
85
- div#data-db-tablelist div{padding:0px 0px 0px 15px;}
86
- div#data-db-tablelist span{display:inline-block; min-width:75px}
87
  div#data-db-size1 {display:inline-block; float:right; font-size:11px; margin-right:5px;}
88
 
89
  /*WARNING-CONTINUE*/
@@ -175,7 +176,7 @@ TOOL BAR:STEPS -->
175
  <div class="details">
176
  <?php
177
  include ('s2.scan2.php');
178
- echo '<br/><br/>';
179
  include ('s2.scan3.php')
180
  ?>
181
  </div>
@@ -184,7 +185,7 @@ TOOL BAR:STEPS -->
184
  <div id="dup-scan-warning-continue">
185
  <div class="msg1">
186
  <label for="dup-scan-warning-continue-checkbox">
187
- <?php _e('A warning status was detected, are you sure you want to continue?', 'duplicator');?>
188
  </label>
189
  <div style="padding:8px 0">
190
  <input type="checkbox" id="dup-scan-warning-continue-checkbox" onclick="Duplicator.Pack.warningContinue(this)"/>
@@ -328,9 +329,9 @@ jQuery(document).ready(function($)
328
  var result;
329
  switch (status) {
330
  case false : result = '<div class="scan-warn"><i class="fa fa-exclamation-triangle"></i></div>'; break;
331
- case 'Warn' : result = '<div class="badge-warn">Warn</div>'; break;
332
  case true : result = '<div class="scan-good"><i class="fa fa-check"></i></div>'; break;
333
- case 'Good' : result = '<div class="badge-pass">Good</div>'; break;
334
  default :
335
  result = 'unable to read';
336
  }
24
  form#form-duplicator {text-align:center; max-width:650px; min-height:200px; margin:0px auto 0px auto; padding:0px;}
25
  div.dup-progress-title {font-size:22px; padding:5px 0 20px 0; font-weight:bold}
26
  div#dup-msg-success {padding:0 5px 5px 5px; text-align:left}
27
+ div#dup-msg-success div.details {padding:10px 15px 10px 15px; margin:5px 0 15px 0; background:#fff; border-radius:5px; border:1px solid #ddd; box-shadow:0 8px 6px -6px #999; }
28
  div#dup-msg-success div.details-title {font-size:20px; border-bottom:1px solid #dfdfdf; padding:5px; margin:0 0 10px 0; font-weight:bold}
29
  div#dup-msg-success-subtitle {color:#999; margin:0; font-size:11px}
30
  div.dup-scan-filter-status {display:inline; float:right; font-size:11px; margin-right:10px; color:#630f0f;}
41
  div.scan-item div.title {background-color:#F1F1F1; width:100%; padding:4px 0 4px 0; cursor:pointer; height:20px;}
42
  div.scan-item div.title:hover {background-color:#ECECEC;}
43
  div.scan-item div.text {font-weight:bold; font-size:14px; float:left; position:relative; left:10px}
44
+ div.scan-item div.badge-pass {float:right; background:green; border-radius:5px; color:#fff; min-width:45px; text-align:center; position:relative; right:10px; font-size:12px}
45
+ div.scan-item div.badge-warn {float:right; background:#630f0f; border-radius:5px; color:#fff; min-width:45px; text-align:center; position:relative; right:10px; font-size:12px}
46
  div.scan-item div.info {display:none; padding:10px; background:#fff}
47
  div.scan-good {display:inline-block; color:green;font-weight:bold;}
48
  div.scan-warn {display:inline-block; color:#630f0f;font-weight:bold;}
49
  div.dup-more-details {float:right; font-size:14px}
50
+ div.dup-more-details a{color:black}
51
+ div.dup-more-details a:hover {color:#777; cursor:pointer}
52
  div.dup-more-details:hover {color:#777; cursor:pointer}
53
 
54
  /*FILES */
82
  div#size-more-details li {margin:0}
83
 
84
  /*DATABASE*/
85
+ div#dup-scan-db-info {margin-top:5px}
86
+ div#data-db-tablelist {max-height:250px; overflow-y:scroll; border:1px solid silver; padding:8px; background: #efefef; border-radius: 4px}
87
+ div#data-db-tablelist td{padding:0 5px 3px 20px; min-width:100px}
 
88
  div#data-db-size1 {display:inline-block; float:right; font-size:11px; margin-right:5px;}
89
 
90
  /*WARNING-CONTINUE*/
176
  <div class="details">
177
  <?php
178
  include ('s2.scan2.php');
179
+ echo '<br/>';
180
  include ('s2.scan3.php')
181
  ?>
182
  </div>
185
  <div id="dup-scan-warning-continue">
186
  <div class="msg1">
187
  <label for="dup-scan-warning-continue-checkbox">
188
+ <?php _e('A notice status has been detected, are you sure you want to continue?', 'duplicator');?>
189
  </label>
190
  <div style="padding:8px 0">
191
  <input type="checkbox" id="dup-scan-warning-continue-checkbox" onclick="Duplicator.Pack.warningContinue(this)"/>
329
  var result;
330
  switch (status) {
331
  case false : result = '<div class="scan-warn"><i class="fa fa-exclamation-triangle"></i></div>'; break;
332
+ case 'Warn' : result = '<div class="badge-warn"><?php _e("Notice", 'duplicator') ?></div>'; break;
333
  case true : result = '<div class="scan-good"><i class="fa fa-check"></i></div>'; break;
334
+ case 'Good' : result = '<div class="badge-pass"><?php _e("Good", 'duplicator') ?></div>'; break;
335
  default :
336
  result = 'unable to read';
337
  }
views/packages/main/s2.scan2.php CHANGED
@@ -1,7 +1,10 @@
1
  <!-- ================================================================
2
  SERVER -->
3
  <div class="details-title">
4
- <i class="fa fa-hdd-o"></i> <?php _e("Server", 'duplicator'); ?>
 
 
 
5
  </div>
6
 
7
  <!-- ============
1
  <!-- ================================================================
2
  SERVER -->
3
  <div class="details-title">
4
+ <i class="fa fa-hdd-o"></i> <?php _e("Server", 'duplicator'); ?>
5
+ <div class="dup-more-details" title="<?php _e('Show Diagnostics', 'duplicator');?>">
6
+ <a href="?page=duplicator-tools&tab=diagnostics" target="_blank"><i class="fa fa-microchip"></i></a>
7
+ </div>
8
  </div>
9
 
10
  <!-- ============
views/packages/main/s2.scan3.php CHANGED
@@ -37,7 +37,7 @@ ARCHIVE -->
37
  TOTAL SIZE -->
38
  <div class="scan-item">
39
  <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
40
- <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Size Check', 'duplicator');?></div>
41
  <div id="data-arc-status-size"></div>
42
  </div>
43
  <div class="info" id="scan-itme-file-size">
@@ -63,7 +63,7 @@ TOTAL SIZE -->
63
  echo '<li>' . __('Apply the "Quick Filters" below or click the back button to apply on previous page.', 'duplicator') . '</li>';
64
  echo '<li>' . __('See the FAQ link to adjust this hosts timeout limits: ', 'duplicator') . "&nbsp;<a href='https://snapcreek.com/duplicator/docs/faqs-tech/#faq-trouble-100-q' target='_blank'>" . __('What can I try for Timeout Issues?', 'duplicator') . '</a></li>';
65
  echo '<li>' . __('Consider trying multi-threaded support in ', 'duplicator');
66
- echo "<a href='https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=free_size_warn&utm_campaign=duplicator_pro' target='_blank'>" . __('Duplicator Pro.', 'duplicator') . "</a>";
67
  echo '</li>';
68
  echo '</ul>';
69
 
@@ -123,7 +123,17 @@ TOTAL SIZE -->
123
  {{/if}}
124
  </div>
125
  </div>
126
- <div class="apply-btn">
 
 
 
 
 
 
 
 
 
 
127
  <button type="button" class="button-small" onclick="Duplicator.Pack.applyFilters(this, 'large')">
128
  <i class="fa fa-filter"></i> <?php _e('Add Filters &amp; Rescan', 'duplicator');?>
129
  </button>
@@ -131,6 +141,9 @@ TOTAL SIZE -->
131
  <i class="fa fa-clipboard" aria-hidden="true"></i>
132
  </button>
133
  </div>
 
 
 
134
  </script>
135
  <div id="hb-files-large-result" class="hb-files-style"></div>
136
  </div>
@@ -140,7 +153,7 @@ TOTAL SIZE -->
140
  FILE NAME CHECKS -->
141
  <div class="scan-item scan-item-last">
142
  <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
143
- <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Name Check', 'duplicator');?></div>
144
  <div id="data-arc-status-names"></div>
145
  </div>
146
  <div class="info">
@@ -210,13 +223,12 @@ FILE NAME CHECKS -->
210
  <div id="hb-files-utf8-result" class="hb-files-style"></div>
211
  </div>
212
  </div>
213
- <br/><br/>
214
 
215
 
216
  <!-- ============
217
  DATABASE -->
218
  <div id="dup-scan-db">
219
- <div class="scan-header scan-item-first">
220
  <i class="fa fa-table"></i>
221
  <?php _e("Database", 'duplicator'); ?>
222
  <i class="fa fa-question-circle data-size-help"
@@ -233,79 +245,55 @@ DATABASE -->
233
  </div>
234
  </div>
235
 
236
- <!-- ============
237
- DB: TOTAL SIZE -->
238
- <div class="scan-item">
239
  <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
240
- <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Total Size', 'duplicator');?></div>
241
  <div id="data-db-status-size"></div>
242
  </div>
243
  <div class="info">
 
244
  <b><?php _e('Size', 'duplicator');?>:</b> <span id="data-db-size2"></span> &nbsp; | &nbsp;
245
  <b><?php _e('Tables', 'duplicator');?>:</b> <span id="data-db-tablecount"></span> &nbsp; | &nbsp;
246
- <b><?php _e('Records', 'duplicator');?>:</b> <span id="data-db-rows"></span>
247
- <br/><br/>
248
  <?php
249
- //OVERVIEW
250
- echo '<b>' . __('Overview:', 'duplicator') . '</b><br/>';
251
- printf(__('Total size and row counts are approximate values. The thresholds that trigger warnings are %1$s OR %2$s records total for the entire database. '
252
- . 'The larger the databases the more time it takes to process and execute. This can cause issues with budget hosts that have cpu/memory limits, and timeout constraints.', 'duplicator'),
253
  DUP_Util::byteSize(DUPLICATOR_SCAN_DB_ALL_SIZE),
254
  number_format(DUPLICATOR_SCAN_DB_ALL_ROWS));
255
 
256
- //OPTIONS
257
- echo '<br/><br/>';
258
- echo '<b>' . __('Options:', 'duplicator') . '</b><br/>';
259
- $lnk = '<a href="maint/repair.php" target="_blank">' . __('Repair and optimize', 'duplicator') . '</a>';
260
- printf(__('1. %1$s the database to improve its size, performance and efficiency.', 'duplicator'), $lnk);
261
- echo '<br/><br/>';
262
- $lnk = '<a href="?page=duplicator-settings&tab=package" target="_blank">' . __('Enable mysqldump', 'duplicator') . '</a>';
263
- printf(__('2. %1$s if this host supports the option.', 'duplicator'), $lnk);
264
- echo '<br/><br/>';
265
- _e('3. Consider removing data from tables that store logging, statistical or other non-critical information.', 'duplicator');
266
- ?>
267
- </div>
268
- </div>
269
 
270
- <!-- ============
271
- DB: TABLE DETAILS -->
272
- <div class="scan-item scan-item-last">
273
- <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
274
- <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Table Details', 'duplicator');?></div>
275
- <div id="data-db-status-details"></div>
276
- </div>
277
- <div class="info">
278
- <?php
279
- //OVERVIEW
280
- echo '<b>' . __('Overview:', 'duplicator') . '</b><br/>';
281
- printf(__('The thresholds that trigger warnings for individual tables are %1$s OR %2$s records OR tables names with upper-case characters. The larger '
282
- . 'the table the more time it takes to process and execute. This can cause issues with budget hosts that have cpu/memory limits, and timeout constraints.', 'duplicator'),
283
  DUP_Util::byteSize(DUPLICATOR_SCAN_DB_TBL_SIZE),
284
  number_format(DUPLICATOR_SCAN_DB_TBL_ROWS));
285
-
286
- //OPTIONS
287
- echo '<br/><br/>';
288
- echo '<b>' . __('Options:', 'duplicator') . '</b><br/>';
289
- $lnk = '<a href="maint/repair.php" target="_blank">' . __('Repair and Optimization', 'duplicator') . '</a>';
 
 
 
 
290
  printf(__('1. Run a %1$s on the table to improve the overall size and performance.', 'duplicator'), $lnk);
291
  echo '<br/><br/>';
292
- _e('2. Remove stale date from tables such as logging, statistical or other non-critical data.', 'duplicator');
293
  echo '<br/><br/>';
294
- $lnk = '<a href="http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lower_case_table_names" target="_blank">' . __('lower_case_table_names', 'duplicator') . '</a>';
295
- printf(__('3. For table name case sensitivity issues either rename the table with lower case characters or be prepared to work with the %1$s system variable setting.', 'duplicator'), $lnk);
296
  echo '<br/><br/>';
 
 
 
297
 
298
- echo '<b>' . __('Tables:', 'duplicator') . '</b><br/>';
299
  ?>
300
-
301
- <div id="dup-scan-db-info">
302
- <div id="data-db-tablelist"></div>
303
- </div>
304
  </div>
305
  </div>
306
- <br/>
307
-
308
- </div><!-- end .dup-scan-db -->
309
 
310
 
311
  <!-- ==========================================
@@ -601,28 +589,21 @@ jQuery(document).ready(function($)
601
  $('div.hb-filter-file-list-result').html(html);
602
 
603
  Duplicator.UI.loadQtip();
604
-
605
- //Auto check the large quick filters directories
606
- //var $dirChecks = $("#hb-files-large-result div.directory input[name='dir_paths[]']");
607
- //$.each($dirChecks, function() {$(this).trigger('click');})
608
  }
609
 
610
 
611
  Duplicator.Pack.initArchiveDBData = function(data)
612
  {
613
  var errMsg = "unable to read";
 
614
  var html = "";
615
  var DB_TotalSize = 'Good';
616
- var DB_TableDetails = 'Good';
617
  var DB_TableRowMax = <?php echo DUPLICATOR_SCAN_DB_TBL_ROWS; ?>;
618
  var DB_TableSizeMax = <?php echo DUPLICATOR_SCAN_DB_TBL_SIZE; ?>;
619
  if (data.DB.Status.Success)
620
  {
621
  DB_TotalSize = data.DB.Status.DB_Rows == 'Warn' || data.DB.Status.DB_Size == 'Warn' ? 'Warn' : 'Good';
622
- DB_TableDetails = data.DB.Status.TBL_Rows == 'Warn' || data.DB.Status.TBL_Size == 'Warn' || data.DB.Status.TBL_Case == 'Warn' ? 'Warn' : 'Good';
623
-
624
  $('#data-db-status-size').html(Duplicator.Pack.setScanStatus(DB_TotalSize));
625
- $('#data-db-status-details').html(Duplicator.Pack.setScanStatus(DB_TableDetails));
626
  $('#data-db-size1').text(data.DB.Size || errMsg);
627
  $('#data-db-size2').text(data.DB.Size || errMsg);
628
  $('#data-db-rows').text(data.DB.Rows || errMsg);
@@ -633,11 +614,24 @@ jQuery(document).ready(function($)
633
  } else {
634
  $.each(data.DB.TableList, function(i) {
635
  html += '<b>' + i + '</b><br/>';
 
636
  $.each(data.DB.TableList[i], function(key,val) {
637
- html += (key == 'Case' && val == 1) || (key == 'Rows' && val > DB_TableRowMax) || (key == 'Size' && parseInt(val) > DB_TableSizeMax)
638
- ? '<div style="color:red"><span>' + key + ':</span>' + val + '</div>'
639
- : '<div><span>' + key + ':</span>' + val + '</div>';
 
 
 
 
 
 
 
 
 
 
 
640
  });
 
641
  });
642
  }
643
  $('#data-db-tablelist').append(html);
@@ -654,4 +648,4 @@ jQuery(document).ready(function($)
654
  ?>
655
 
656
  });
657
- </script>
37
  TOTAL SIZE -->
38
  <div class="scan-item">
39
  <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
40
+ <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Size Checks', 'duplicator');?></div>
41
  <div id="data-arc-status-size"></div>
42
  </div>
43
  <div class="info" id="scan-itme-file-size">
63
  echo '<li>' . __('Apply the "Quick Filters" below or click the back button to apply on previous page.', 'duplicator') . '</li>';
64
  echo '<li>' . __('See the FAQ link to adjust this hosts timeout limits: ', 'duplicator') . "&nbsp;<a href='https://snapcreek.com/duplicator/docs/faqs-tech/#faq-trouble-100-q' target='_blank'>" . __('What can I try for Timeout Issues?', 'duplicator') . '</a></li>';
65
  echo '<li>' . __('Consider trying multi-threaded support in ', 'duplicator');
66
+ echo "<a href='https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content=multithreaded_pro&utm_campaign=duplicator_pro' target='_blank'>" . __('Duplicator Pro.', 'duplicator') . "</a>";
67
  echo '</li>';
68
  echo '</ul>';
69
 
123
  {{/if}}
124
  </div>
125
  </div>
126
+
127
+ <?php
128
+ if ($zip_check != null) {
129
+ echo '<div style="text-align:center; font-weight:bold; font-style:italic; float:left">&nbsp;';
130
+ _e('Package support up to 2GB in', 'duplicator');
131
+ echo '&nbsp;<a href="https://snapcreek.com/duplicator/?utm_source=duplicator_free&amp;utm_medium=wordpress_plugin&amp;utm_content=free_size_warn&amp;utm_campaign=duplicator_pro" target="_blank">' . __('Professional', 'duplicator') . '</a>';
132
+ echo '</div>';
133
+ }
134
+ ?>
135
+
136
+ <div class="apply-btn" style="margin-bottom:5px;float:right">
137
  <button type="button" class="button-small" onclick="Duplicator.Pack.applyFilters(this, 'large')">
138
  <i class="fa fa-filter"></i> <?php _e('Add Filters &amp; Rescan', 'duplicator');?>
139
  </button>
141
  <i class="fa fa-clipboard" aria-hidden="true"></i>
142
  </button>
143
  </div>
144
+ <div style="clear:both"></div>
145
+
146
+
147
  </script>
148
  <div id="hb-files-large-result" class="hb-files-style"></div>
149
  </div>
153
  FILE NAME CHECKS -->
154
  <div class="scan-item scan-item-last">
155
  <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
156
+ <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Name Checks', 'duplicator');?></div>
157
  <div id="data-arc-status-names"></div>
158
  </div>
159
  <div class="info">
223
  <div id="hb-files-utf8-result" class="hb-files-style"></div>
224
  </div>
225
  </div>
 
226
 
227
 
228
  <!-- ============
229
  DATABASE -->
230
  <div id="dup-scan-db">
231
+ <div class="scan-header">
232
  <i class="fa fa-table"></i>
233
  <?php _e("Database", 'duplicator'); ?>
234
  <i class="fa fa-question-circle data-size-help"
245
  </div>
246
  </div>
247
 
248
+ <div class="scan-item scan-item-last">
 
 
249
  <div class="title" onclick="Duplicator.Pack.toggleScanItem(this);">
250
+ <div class="text"><i class="fa fa-caret-right"></i> <?php _e('Overview', 'duplicator');?></div>
251
  <div id="data-db-status-size"></div>
252
  </div>
253
  <div class="info">
254
+ <?php echo '<b>' . __('TOTAL SIZE', 'duplicator') . ' &nbsp; &#8667; &nbsp; </b>'; ?>
255
  <b><?php _e('Size', 'duplicator');?>:</b> <span id="data-db-size2"></span> &nbsp; | &nbsp;
256
  <b><?php _e('Tables', 'duplicator');?>:</b> <span id="data-db-tablecount"></span> &nbsp; | &nbsp;
257
+ <b><?php _e('Records', 'duplicator');?>:</b> <span id="data-db-rows"></span><br/>
 
258
  <?php
259
+ printf(__('Total size and row counts are approximate values. The thresholds that trigger notices are <i>%1$s OR %2$s</i> records total for the entire database. '
260
+ . 'Larger databases take more time to process. On some budget hosts that have cpu/memory/timeout limits this may cause issues.', 'duplicator'),
 
 
261
  DUP_Util::byteSize(DUPLICATOR_SCAN_DB_ALL_SIZE),
262
  number_format(DUPLICATOR_SCAN_DB_ALL_ROWS));
263
 
264
+ echo '<br/><br/><hr size="1" />';
 
 
 
 
 
 
 
 
 
 
 
 
265
 
266
+ //TABLE DETAILS
267
+ echo '<b>' . __('TABLE DETAILS:', 'duplicator') . '</b><br/>';
268
+ printf(__('The notices for tables are <i>%1$s, %2$s records or names with upper-case characters</i>. Individual tables will not trigger '
269
+ . 'a notice message, but can help narrow down issues if they occur later on.', 'duplicator'),
 
 
 
 
 
 
 
 
 
270
  DUP_Util::byteSize(DUPLICATOR_SCAN_DB_TBL_SIZE),
271
  number_format(DUPLICATOR_SCAN_DB_TBL_ROWS));
272
+
273
+ echo '<div id="dup-scan-db-info"><div id="data-db-tablelist"></div></div>';
274
+
275
+ //RECOMMENDATIONS
276
+ echo '<br/><hr size="1" />';
277
+ echo '<b>' . __('RECOMMENDATIONS:', 'duplicator') . '</b><br/>';
278
+
279
+ echo '<div style="padding:5px">';
280
+ $lnk = '<a href="maint/repair.php" target="_blank">' . __('repair and optimization', 'duplicator') . '</a>';
281
  printf(__('1. Run a %1$s on the table to improve the overall size and performance.', 'duplicator'), $lnk);
282
  echo '<br/><br/>';
283
+ _e('2. Remove post revisions and stale data from tables. Tables such as logs, statistical or other non-critical data should be cleared.', 'duplicator');
284
  echo '<br/><br/>';
285
+ $lnk = '<a href="?page=duplicator-settings&tab=package" target="_blank">' . __('Enable mysqldump', 'duplicator') . '</a>';
286
+ printf(__('3. %1$s if this host supports the option.', 'duplicator'), $lnk);
287
  echo '<br/><br/>';
288
+ $lnk = '<a href="http://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_lower_case_table_names" target="_blank">' . __('lower_case_table_names', 'duplicator') . '</a>';
289
+ printf(__('4. For table name case sensitivity issues either rename the table with lower case characters or be prepared to work with the %1$s system variable setting.', 'duplicator'), $lnk);
290
+ echo '</div>';
291
 
 
292
  ?>
 
 
 
 
293
  </div>
294
  </div>
295
+ </div>
296
+ <br/><br/>
 
297
 
298
 
299
  <!-- ==========================================
589
  $('div.hb-filter-file-list-result').html(html);
590
 
591
  Duplicator.UI.loadQtip();
 
 
 
 
592
  }
593
 
594
 
595
  Duplicator.Pack.initArchiveDBData = function(data)
596
  {
597
  var errMsg = "unable to read";
598
+ var color;
599
  var html = "";
600
  var DB_TotalSize = 'Good';
 
601
  var DB_TableRowMax = <?php echo DUPLICATOR_SCAN_DB_TBL_ROWS; ?>;
602
  var DB_TableSizeMax = <?php echo DUPLICATOR_SCAN_DB_TBL_SIZE; ?>;
603
  if (data.DB.Status.Success)
604
  {
605
  DB_TotalSize = data.DB.Status.DB_Rows == 'Warn' || data.DB.Status.DB_Size == 'Warn' ? 'Warn' : 'Good';
 
 
606
  $('#data-db-status-size').html(Duplicator.Pack.setScanStatus(DB_TotalSize));
 
607
  $('#data-db-size1').text(data.DB.Size || errMsg);
608
  $('#data-db-size2').text(data.DB.Size || errMsg);
609
  $('#data-db-rows').text(data.DB.Rows || errMsg);
614
  } else {
615
  $.each(data.DB.TableList, function(i) {
616
  html += '<b>' + i + '</b><br/>';
617
+ html += '<table><tr>';
618
  $.each(data.DB.TableList[i], function(key,val) {
619
+ switch(key) {
620
+ case 'Case':
621
+ color = (val == 1) ? 'red' : 'black';
622
+ html += '<td style="color:' + color + '">Uppercase: ' + val + '</td>';
623
+ break;
624
+ case 'Rows':
625
+ color = (val > DB_TableRowMax) ? 'red' : 'black';
626
+ html += '<td style="color:' + color + '">Rows: ' + val + '</td>';
627
+ break;
628
+ case 'USize':
629
+ color = (parseInt(val) > DB_TableSizeMax) ? 'red' : 'black';
630
+ html += '<td style="color:' + color + '">Size: ' + data.DB.TableList[i]['Size'] + '</td>';
631
+ break;
632
+ }
633
  });
634
+ html += '</tr></table>';
635
  });
636
  }
637
  $('#data-db-tablelist').append(html);
648
  ?>
649
 
650
  });
651
+ </script>
views/packages/main/s3.build.php CHANGED
@@ -1,7 +1,17 @@
1
  <?php
2
  $Package = DUP_Package::getActive();
3
  $ajax_nonce = wp_create_nonce('dup_package_build');
4
-
 
 
 
 
 
 
 
 
 
 
5
  ?>
6
 
7
  <style>
@@ -23,6 +33,7 @@
23
  div.dup-button-footer {text-align:right; margin:20px 10px 0px 0px}
24
  button.button {font-size:16px !important; height:30px !important; font-weight:bold; padding:0px 10px 5px 10px !important; min-width: 150px }
25
  span.dup-btn-size {font-size:11px;font-weight: normal}
 
26
  </style>
27
 
28
  <!-- =========================================
@@ -62,7 +73,7 @@ TOOL BAR: STEPS -->
62
  </div>
63
 
64
  <div id="dup-progress-area" class="dup-panel" style="display:none">
65
- <div class="dup-panel-title dup-box-title-fancy"><b style="font-size:18px"><?php _e('Build Status', 'duplicator'); ?></b></div>
66
  <div class="dup-panel-panel">
67
 
68
  <!-- =========================
@@ -85,14 +96,17 @@ TOOL BAR: STEPS -->
85
  <i class="fa fa-file-archive-o"></i> <?php _e("Archive", 'duplicator') ?>
86
  <span id="dup-btn-archive-size" class="dup-btn-size"></span>
87
  </button>
88
- <div style='margin: 7px 0 20px 0'>
89
  <small><i><?php _e("click buttons to download", 'duplicator') ?></i></small>
90
  </div>
91
  <div class="dup-msg-success-links">
92
  <?php printf("<a href='?page=duplicator'>[ %s ]</a>", __('All Packages', 'duplicator'));?>
93
  <?php printf("<a href='?page=duplicator&tab=new1'>[ %s ]</a>", __('Create New', 'duplicator'));?>
94
- </div><br/>
95
-
 
 
 
96
  </div>
97
 
98
  <!-- =========================
1
  <?php
2
  $Package = DUP_Package::getActive();
3
  $ajax_nonce = wp_create_nonce('dup_package_build');
4
+
5
+ // Allows for auto cycling of message in the future - just add dp_texts[n] and dp_contents[n]
6
+ $dp_texts = array();
7
+ $dp_texts[0] = __('Get even more power & features with', 'duplicator');
8
+ $dp_contents[] = array();
9
+ $dp_contents[0] = 'package_build_more_power';
10
+ $dp_index = rand(0, count($dp_contents) - 1);
11
+ $dp_text = $dp_texts[$dp_index];
12
+ $dp_content = $dp_contents[$dp_index];
13
+ $dp_url = "https://snapcreek.com/duplicator/?utm_source=duplicator_free&utm_medium=wordpress_plugin&utm_content={$dp_content}&utm_campaign=duplicator_pro";
14
+
15
  ?>
16
 
17
  <style>
33
  div.dup-button-footer {text-align:right; margin:20px 10px 0px 0px}
34
  button.button {font-size:16px !important; height:30px !important; font-weight:bold; padding:0px 10px 5px 10px !important; min-width: 150px }
35
  span.dup-btn-size {font-size:11px;font-weight: normal}
36
+ p.get-pro {font-size:12px; color:#777; border-top:1px solid #eeeeee; padding:5px 0 0 0; margin:0; font-style:italic}
37
  </style>
38
 
39
  <!-- =========================================
73
  </div>
74
 
75
  <div id="dup-progress-area" class="dup-panel" style="display:none">
76
+ <div class="dup-panel-title"><b style="font-size:22px"><?php _e('Build Status', 'duplicator'); ?></b></div>
77
  <div class="dup-panel-panel">
78
 
79
  <!-- =========================
96
  <i class="fa fa-file-archive-o"></i> <?php _e("Archive", 'duplicator') ?>
97
  <span id="dup-btn-archive-size" class="dup-btn-size"></span>
98
  </button>
99
+ <div style='margin: 7px 0 20px 0; color:#999'>
100
  <small><i><?php _e("click buttons to download", 'duplicator') ?></i></small>
101
  </div>
102
  <div class="dup-msg-success-links">
103
  <?php printf("<a href='?page=duplicator'>[ %s ]</a>", __('All Packages', 'duplicator'));?>
104
  <?php printf("<a href='?page=duplicator&tab=new1'>[ %s ]</a>", __('Create New', 'duplicator'));?>
105
+ </div>
106
+ <br/>
107
+ <p class="get-pro">
108
+ <?php echo $dp_text ?>&nbsp;<a target="_blank" href="<?php echo $dp_url;?>"><?php _e('Professional', 'duplicator'); ?></a>!
109
+ </p>
110
  </div>
111
 
112
  <!-- =========================
views/{help/about.php → settings/about-info.php} RENAMED
@@ -1,9 +1,3 @@
1
- <?php
2
- DUP_Util::hasCapability('read');
3
-
4
- require_once(DUPLICATOR_PLUGIN_PATH . '/assets/js/javascript.php');
5
- require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
6
- ?>
7
  <style>
8
  /*================================================
9
  PAGE-SUPPORT:*/
@@ -46,18 +40,16 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
46
 
47
  <div class="wrap dup-wrap dup-support-all">
48
 
49
- <?php duplicator_header(__("About", 'duplicator')) ?>
50
- <hr size="1" />
51
-
52
  <div style="width:850px; margin:auto; margin-top: 20px">
53
  <table style="width:825px">
54
  <tr>
55
  <td style="width:90px">
56
  <img src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/logo-box.png" style='text-align:top; margin:0' />
57
  </td>
58
- <td valign="top" style="padding-top:10px; font-size:14px">
59
  <?php
60
- _e("Duplicator helps you streamline your workflow and quickly clone a WordPress site. The plugin was made to help you speed up the migration process of moving a WordPress site. Please help us continue development by giving this plugin a 5 star.", 'duplicator');
 
61
  ?>
62
  </td>
63
  </tr>
 
 
 
 
 
 
1
  <style>
2
  /*================================================
3
  PAGE-SUPPORT:*/
40
 
41
  <div class="wrap dup-wrap dup-support-all">
42
 
 
 
 
43
  <div style="width:850px; margin:auto; margin-top: 20px">
44
  <table style="width:825px">
45
  <tr>
46
  <td style="width:90px">
47
  <img src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/logo-box.png" style='text-align:top; margin:0' />
48
  </td>
49
+ <td valign="top" style="padding-top:10px; font-size:18px; line-height: 24px">
50
  <?php
51
+ _e("Duplicator can streamline your workflow and quickly clone/migrate a WordPress site. The plugin helps admins, designers and developers speed up the "
52
+ . "migration process of moving a WordPress site. Please help us continue development by giving this plugin a 5 star.", 'duplicator');
53
  ?>
54
  </td>
55
  </tr>
views/settings/controller.php CHANGED
@@ -23,6 +23,7 @@ $current_tab = isset($_REQUEST['tab']) ? esc_html($_REQUEST['tab']) : 'general';
23
  <a href="?page=duplicator-settings&tab=package" class="nav-tab <?php echo ($current_tab == 'package') ? 'nav-tab-active' : '' ?>"> <?php _e('Packages', 'duplicator'); ?></a>
24
  <a href="?page=duplicator-settings&tab=schedule" class="nav-tab <?php echo ($current_tab == 'schedule') ? 'nav-tab-active' : '' ?>"> <?php _e('Schedules', 'duplicator'); ?></a>
25
  <a href="?page=duplicator-settings&tab=storage" class="nav-tab <?php echo ($current_tab == 'storage') ? 'nav-tab-active' : '' ?>"> <?php _e('Storage', 'duplicator'); ?></a>
 
26
  </h2>
27
 
28
  <?php
@@ -35,6 +36,8 @@ $current_tab = isset($_REQUEST['tab']) ? esc_html($_REQUEST['tab']) : 'general';
35
  break;
36
  case 'storage': include('storage.php');
37
  break;
 
 
38
  }
39
  ?>
40
  </div>
23
  <a href="?page=duplicator-settings&tab=package" class="nav-tab <?php echo ($current_tab == 'package') ? 'nav-tab-active' : '' ?>"> <?php _e('Packages', 'duplicator'); ?></a>
24
  <a href="?page=duplicator-settings&tab=schedule" class="nav-tab <?php echo ($current_tab == 'schedule') ? 'nav-tab-active' : '' ?>"> <?php _e('Schedules', 'duplicator'); ?></a>
25
  <a href="?page=duplicator-settings&tab=storage" class="nav-tab <?php echo ($current_tab == 'storage') ? 'nav-tab-active' : '' ?>"> <?php _e('Storage', 'duplicator'); ?></a>
26
+ <a href="?page=duplicator-settings&tab=about" class="nav-tab <?php echo ($current_tab == 'about') ? 'nav-tab-active' : '' ?>"> <?php _e('About', 'duplicator'); ?></a>
27
  </h2>
28
 
29
  <?php
36
  break;
37
  case 'storage': include('storage.php');
38
  break;
39
+ case 'about': include('about-info.php');
40
+ break;
41
  }
42
  ?>
43
  </div>
views/tools/controller.php CHANGED
@@ -18,6 +18,7 @@ $current_tab = isset($_REQUEST['tab']) ? esc_html($_REQUEST['tab']) : 'logging';
18
  <a href="?page=duplicator-tools&tab=logging" class="nav-tab <?php echo ($current_tab == 'logging') ? 'nav-tab-active' : '' ?>"> <?php _e('Logging', 'duplicator'); ?></a>
19
  <a href="?page=duplicator-tools&tab=diagnostics" class="nav-tab <?php echo ($current_tab == 'diagnostics') ? 'nav-tab-active' : '' ?>"> <?php _e('Diagnostics', 'duplicator'); ?></a>
20
  <a href="?page=duplicator-tools&tab=cleanup" class="nav-tab <?php echo ($current_tab == 'cleanup') ? 'nav-tab-active' : '' ?>"> <?php _e('Cleanup', 'duplicator'); ?></a>
 
21
  </h2>
22
 
23
  <?php
@@ -28,6 +29,8 @@ $current_tab = isset($_REQUEST['tab']) ? esc_html($_REQUEST['tab']) : 'logging';
28
  break;
29
  case 'cleanup': include('cleanup.php');
30
  break;
 
 
31
  }
32
  ?>
33
  </div>
18
  <a href="?page=duplicator-tools&tab=logging" class="nav-tab <?php echo ($current_tab == 'logging') ? 'nav-tab-active' : '' ?>"> <?php _e('Logging', 'duplicator'); ?></a>
19
  <a href="?page=duplicator-tools&tab=diagnostics" class="nav-tab <?php echo ($current_tab == 'diagnostics') ? 'nav-tab-active' : '' ?>"> <?php _e('Diagnostics', 'duplicator'); ?></a>
20
  <a href="?page=duplicator-tools&tab=cleanup" class="nav-tab <?php echo ($current_tab == 'cleanup') ? 'nav-tab-active' : '' ?>"> <?php _e('Cleanup', 'duplicator'); ?></a>
21
+ <a href="?page=duplicator-tools&tab=support" class="nav-tab <?php echo ($current_tab == 'support') ? 'nav-tab-active' : '' ?>"> <?php _e('Support', 'duplicator'); ?></a>
22
  </h2>
23
 
24
  <?php
29
  break;
30
  case 'cleanup': include('cleanup.php');
31
  break;
32
+ case 'support': include('support.php');
33
+ break;
34
  }
35
  ?>
36
  </div>
views/{help/help.php → tools/support.php} RENAMED
@@ -1,9 +1,3 @@
1
- <?php
2
- DUP_Util::hasCapability('read');
3
-
4
- require_once(DUPLICATOR_PLUGIN_PATH . '/assets/js/javascript.php');
5
- require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
6
- ?>
7
  <style>
8
  div.dup-support-all {font-size:13px; line-height:20px}
9
  div.dup-support-txts-links {width:100%;font-size:14px; font-weight:bold; line-height:26px; text-align:center}
@@ -26,9 +20,6 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
26
 
27
  <div class="wrap dup-wrap dup-support-all">
28
 
29
- <?php duplicator_header(__("Help", 'duplicator')) ?>
30
- <hr size="1" />
31
-
32
  <div style="width:800px; margin:auto; margin-top: 20px">
33
  <table>
34
  <tr>
 
 
 
 
 
 
1
  <style>
2
  div.dup-support-all {font-size:13px; line-height:20px}
3
  div.dup-support-txts-links {width:100%;font-size:14px; font-weight:bold; line-height:26px; text-align:center}
20
 
21
  <div class="wrap dup-wrap dup-support-all">
22
 
 
 
 
23
  <div style="width:800px; margin:auto; margin-top: 20px">
24
  <table>
25
  <tr>