Duplicator – WordPress Migration Plugin - Version 1.1.24

Version Description

Download this release

Release Info

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

Code changes from version 1.1.22 to 1.1.24

assets/css/style.css CHANGED
@@ -1,7 +1,7 @@
1
  /* ================================================
2
  * DUPLICATOR STYLE
3
  * Common elements shared across the duplicator plugin
4
- * Copyright:lifeinthegrid.com 2011-2014
5
  * ================================================ */
6
 
7
  /*Global Elements*/
1
  /* ================================================
2
  * DUPLICATOR STYLE
3
  * Common elements shared across the duplicator plugin
4
+ * Copyright:snapcreek.com 2011-2014
5
  * ================================================ */
6
 
7
  /*Global Elements*/
classes/package.php CHANGED
@@ -79,6 +79,8 @@ class DUP_Package {
79
  /**
80
  * Generates a scan report
81
  * @return array of scan results
 
 
82
  */
83
  public function Scan() {
84
 
@@ -141,10 +143,13 @@ class DUP_Package {
141
  $db['Status']['Case']);
142
 
143
  //array_count_values will throw a warning message if it has null values,
144
- //so lets replace all nulls with empty string
145
- $warnings_safe = array_replace($warnings, array_fill_keys(array_keys($warnings, null),''));
146
- $warn_counts = is_array($warnings_safe) ? array_count_values($warnings_safe) : 0;
147
-
 
 
 
148
  $report['RPT']['Warnings'] = $warn_counts['Warn'];
149
  $report['RPT']['Success'] = $warn_counts['Good'];
150
  $report['RPT']['ScanTime'] = DUP_Util::ElapsedTime(DUP_Util::GetMicrotime(), $timerStart);
79
  /**
80
  * Generates a scan report
81
  * @return array of scan results
82
+ *
83
+ * @notes: Testing = /wp-admin/admin-ajax.php?action=duplicator_package_scan
84
  */
85
  public function Scan() {
86
 
143
  $db['Status']['Case']);
144
 
145
  //array_count_values will throw a warning message if it has null values,
146
+ //so lets replace all nulls with empty string
147
+ foreach ($warnings as $i => $value) {
148
+ if (is_null($value)) {
149
+ $warnings[$i] = '';
150
+ }
151
+ }
152
+ $warn_counts = is_array($warnings) ? array_count_values($warnings) : 0;
153
  $report['RPT']['Warnings'] = $warn_counts['Warn'];
154
  $report['RPT']['Success'] = $warn_counts['Good'];
155
  $report['RPT']['ScanTime'] = DUP_Util::ElapsedTime(DUP_Util::GetMicrotime(), $timerStart);
define.php CHANGED
@@ -2,11 +2,8 @@
2
  //Prevent directly browsing to the file
3
  if (function_exists('plugin_dir_url'))
4
  {
5
- define('DUPLICATOR_VERSION', '1.1.22');
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');
9
- define('DUPLICATOR_CERTIFIED', 'http://lifeinthegrid.com/duplicator-hosts');
10
  define('DUPLICATOR_PLUGIN_URL', plugin_dir_url(__FILE__));
11
  define('DUPLICATOR_SITE_URL', get_site_url());
12
 
2
  //Prevent directly browsing to the file
3
  if (function_exists('plugin_dir_url'))
4
  {
5
+ define('DUPLICATOR_VERSION', '1.1.24');
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());
9
 
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.22
7
  Author: LifeInTheGrid
8
  Author URI: http://www.lifeinthegrid.com
9
  Text Domain: duplicator
3
  Plugin Name: Duplicator
4
  Plugin URI: http://www.lifeinthegrid.com/duplicator/
5
  Description: Create a backup of your WordPress files and database. Duplicate and move an entire site from one location to another in a few steps. Create a full snapshot of your site at any point in time.
6
+ Version: 1.1.24
7
  Author: LifeInTheGrid
8
  Author URI: http://www.lifeinthegrid.com
9
  Text Domain: duplicator
installer/build/main.installer.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /*
3
- Copyright 2011-16 lifeinthegrid.com
4
 
5
  This program is free software; you can redistribute it and/or modify
6
  it under the terms of the GNU General Public License, version 2, as
@@ -233,17 +233,17 @@ if (isset($_POST['action_ajax'])) {
233
  <div style="font-size:22px; padding:5px 0px 0px 0px">
234
  <!-- !!DO NOT CHANGE/EDIT OR REMOVE PRODUCT NAME!!
235
  If your interested in Private Label Rights please contact us at the URL below to discuss
236
- customizations to product labeling: http://lifeinthegrid.com -->
237
  &nbsp; Duplicator - Installer
238
  </div>
239
  </td>
240
  <td style="white-space:nowrap; text-align:right">
241
  <select id="dup-hlp-lnk">
242
  <option value="null"> - Online Resources -</option>
243
- <option value="http://lifeinthegrid.com/duplicator-docs">&raquo; Knowledge Base</option>
244
- <option value="http://lifeinthegrid.com/duplicator-guide">&raquo; User Guide</option>
245
- <option value="http://lifeinthegrid.com/duplicator-faq">&raquo; Common FAQs</option>
246
- <option value="http://lifeinthegrid.com/duplicator-hosts">&raquo; Approved Hosts</option>
247
  </select>
248
  </td>
249
  </tr>
1
  <?php
2
  /*
3
+ Copyright 2011-16 snapcreek.com
4
 
5
  This program is free software; you can redistribute it and/or modify
6
  it under the terms of the GNU General Public License, version 2, as
233
  <div style="font-size:22px; padding:5px 0px 0px 0px">
234
  <!-- !!DO NOT CHANGE/EDIT OR REMOVE PRODUCT NAME!!
235
  If your interested in Private Label Rights please contact us at the URL below to discuss
236
+ customizations to product labeling: http://snapcreek.com -->
237
  &nbsp; Duplicator - Installer
238
  </div>
239
  </td>
240
  <td style="white-space:nowrap; text-align:right">
241
  <select id="dup-hlp-lnk">
242
  <option value="null"> - Online Resources -</option>
243
+ <option value="https://snapcreek.com/duplicator/docs/">&raquo; Knowledge Base</option>
244
+ <option value="https://snapcreek.com/duplicator/docs/guide/">&raquo; User Guide</option>
245
+ <option value="https://snapcreek.com/duplicator/docs/faqs-tech/">&raquo; Common FAQs</option>
246
+ <option value="https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-040-q">&raquo; Approved Hosts</option>
247
  </select>
248
  </td>
249
  </tr>
installer/build/view.help.php CHANGED
@@ -10,7 +10,7 @@
10
  <!-- =========================================
11
  HELP FORM -->
12
  <div id="dup-main-help">
13
- <div style="text-align:center">For in-depth help please see the <a href="http://lifeinthegrid.com/duplicator-docs" target="_blank">online resources</a></div>
14
 
15
  <h3>Step 1 - Deploy</h3>
16
  <div id="dup-help-step1" class="dup-help-page">
@@ -221,7 +221,7 @@ HELP FORM -->
221
  <div style="padding: 0px 10px 10px 10px;">
222
  <b>Common Quick Fix Issues:</b>
223
  <ul>
224
- <li>Use an <a href='http://lifeinthegrid.com/duplicator-hosts' target='_blank'>approved hosting provider</a></li>
225
  <li>Validate directory and file permissions (see below)</li>
226
  <li>Validate web server configuration file (see below)</li>
227
  <li>Clear your browsers cache</li>
@@ -256,7 +256,7 @@ HELP FORM -->
256
  </fieldset>
257
  </div>
258
 
259
- <div style="text-align:center">For in-depth help please see the <a href="http://lifeinthegrid.com/duplicator-docs" target="_blank">online resources</a></div>
260
 
261
  <br/><br/>
262
  </div>
10
  <!-- =========================================
11
  HELP FORM -->
12
  <div id="dup-main-help">
13
+ <div style="text-align:center">For in-depth help please see the <a href="https://snapcreek.com/duplicator/docs/" target="_blank">online resources</a></div>
14
 
15
  <h3>Step 1 - Deploy</h3>
16
  <div id="dup-help-step1" class="dup-help-page">
221
  <div style="padding: 0px 10px 10px 10px;">
222
  <b>Common Quick Fix Issues:</b>
223
  <ul>
224
+ <li>Use an <a href='https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-040-q' target='_blank'>approved hosting provider</a></li>
225
  <li>Validate directory and file permissions (see below)</li>
226
  <li>Validate web server configuration file (see below)</li>
227
  <li>Clear your browsers cache</li>
256
  </fieldset>
257
  </div>
258
 
259
+ <div style="text-align:center">For in-depth help please see the <a href="https://snapcreek.com/duplicator/docs/" target="_blank">online resources</a></div>
260
 
261
  <br/><br/>
262
  </div>
installer/build/view.step1.php CHANGED
@@ -203,9 +203,9 @@ VIEW: STEP 1- INPUT -->
203
 
204
  <div style="line-height:28px; font-size:14px; padding:0px 0px 0px 30px; font-weight:normal">
205
  <b>Helpful Resources:</b><br/>
206
- &raquo; <a href="http://lifeinthegrid.com/duplicator-faq" target="_blank">Common FAQs</a> <br/>
207
- &raquo; <a href="http://lifeinthegrid.com/duplicator-guide" target="_blank">User Guide</a> <br/>
208
- &raquo; <a href="http://lifeinthegrid.com/duplicator-hosts" target="_blank">Approved Hosts</a> <br/>
209
  </div><br/>
210
 
211
  <!-- CHECKS: PASS -->
@@ -282,12 +282,12 @@ VIEW: STEP 1- INPUT -->
282
 
283
  <!-- !!DO NOT CHANGE/EDIT OR REMOVE THIS SECTION!!
284
  If your interested in Private Label Rights please contact us at the URL below to discuss
285
- customizations to product labeling: http://lifeinthegrid.com -->
286
  <a href="javascript:void(0)" onclick="$('#dup-step1-cpanel').toggle(250)"><b>Need Setup Help...</b></a>
287
  <div id='dup-step1-cpanel' style="display:none">
288
  <div style="padding:10px 0px 0px 10px;line-height:22px">
289
- &raquo; Check out the <a href="http://lifeinthegrid.com/duplicator-tutorials" target="_blank">video tutorials &amp; guides</a> <br/>
290
- &raquo; Get help from our <a href="http://lifeinthegrid.com/labs/duplicator/resources/" target="_blank">resources page</a>
291
  </div>
292
  </div><br/><br/>
293
 
@@ -428,7 +428,7 @@ Auto Posts to view.step2.php -->
428
  <div id="ajaxerr-data">An unknown issue has occurred with the file and database setup process. Please see the installer-log.txt file for more details.</div>
429
  <div style="text-align:center; margin:10px auto 0px auto">
430
  <input type="button" onclick='Duplicator.hideErrorResult()' value="&laquo; Try Again" /><br/><br/>
431
- <i style='font-size:11px'>See online help for more details at <a href='http://lifeinthegrid.com/support' target='_blank'>support.lifeinthegrid.com</a></i>
432
  </div>
433
  </div>
434
  </div>
@@ -546,7 +546,7 @@ PANEL: SERVER CHECKS -->
546
  <b>PHP ZIP Archive:</b> <?php echo class_exists('ZipArchive') ? 'Is Installed' : 'Not Installed'; ?> <br/>
547
  <b>CDN Accessible:</b> <?php echo ( DUPX_Util::is_url_active("ajax.aspnetcdn.com", 443) && DUPX_Util::is_url_active("ajax.googleapis.com", 443)) ? 'Yes' : 'No'; ?>
548
  <br/><br/>
549
- Need an <a href='http://lifeinthegrid.com/duplicator-hosts' target='_blank'>approved</a> Duplicator hosting provider?
550
 
551
  </div>
552
  </div>
203
 
204
  <div style="line-height:28px; font-size:14px; padding:0px 0px 0px 30px; font-weight:normal">
205
  <b>Helpful Resources:</b><br/>
206
+ &raquo; <a href="https://snapcreek.com/duplicator/docs/faqs-tech/" target="_blank">Common FAQs</a> <br/>
207
+ &raquo; <a href="https://snapcreek.com/duplicator/docs/guide/" target="_blank">User Guide</a> <br/>
208
+ &raquo; <a href="https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-040-q" target="_blank">Approved Hosts</a> <br/>
209
  </div><br/>
210
 
211
  <!-- CHECKS: PASS -->
282
 
283
  <!-- !!DO NOT CHANGE/EDIT OR REMOVE THIS SECTION!!
284
  If your interested in Private Label Rights please contact us at the URL below to discuss
285
+ customizations to product labeling: http://snapcreek.com -->
286
  <a href="javascript:void(0)" onclick="$('#dup-step1-cpanel').toggle(250)"><b>Need Setup Help...</b></a>
287
  <div id='dup-step1-cpanel' style="display:none">
288
  <div style="padding:10px 0px 0px 10px;line-height:22px">
289
+ &raquo; Check out the <a href="https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-070-q" target="_blank">video tutorials &amp; guides</a> <br/>
290
+ &raquo; Get help from our <a href="https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource" target="_blank">resources section</a>
291
  </div>
292
  </div><br/><br/>
293
 
428
  <div id="ajaxerr-data">An unknown issue has occurred with the file and database setup process. Please see the installer-log.txt file for more details.</div>
429
  <div style="text-align:center; margin:10px auto 0px auto">
430
  <input type="button" onclick='Duplicator.hideErrorResult()' value="&laquo; Try Again" /><br/><br/>
431
+ <i style='font-size:11px'>See online help for more details at <a href='https://snapcreek.com/ticket' target='_blank'>snapcreek.com</a></i>
432
  </div>
433
  </div>
434
  </div>
546
  <b>PHP ZIP Archive:</b> <?php echo class_exists('ZipArchive') ? 'Is Installed' : 'Not Installed'; ?> <br/>
547
  <b>CDN Accessible:</b> <?php echo ( DUPX_Util::is_url_active("ajax.aspnetcdn.com", 443) && DUPX_Util::is_url_active("ajax.googleapis.com", 443)) ? 'Yes' : 'No'; ?>
548
  <br/><br/>
549
+ Need an <a href='https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-040-q' target='_blank'>approved</a> Duplicator hosting provider?
550
 
551
  </div>
552
  </div>
installer/build/view.step2.php CHANGED
@@ -290,7 +290,7 @@ VIEW: STEP 2 - AJAX RESULT -->
290
  <div id="ajaxerr-data">An unknown issue has occurred with the data replacement setup process. Please see the installer-log.txt file for more details.</div>
291
  <div style="text-align:center; margin:10px auto 0px auto">
292
  <input type="button" onclick='Duplicator.hideErrorResult2()' value="&laquo; Try Again" /><br/><br/>
293
- <i style='font-size:11px'>See online help for more details at <a href='http://lifeinthegrid.com/support' target='_blank'>support.lifeinthegrid.com</a></i>
294
  </div>
295
  </div>
296
  </div>
290
  <div id="ajaxerr-data">An unknown issue has occurred with the data replacement setup process. Please see the installer-log.txt file for more details.</div>
291
  <div style="text-align:center; margin:10px auto 0px auto">
292
  <input type="button" onclick='Duplicator.hideErrorResult2()' value="&laquo; Try Again" /><br/><br/>
293
+ <i style='font-size:11px'>See online help for more details at <a href='https://snapcreek.com/ticket' target='_blank'>snapcreek.com</a></i>
294
  </div>
295
  </div>
296
  </div>
installer/build/view.step3.php CHANGED
@@ -129,7 +129,7 @@ VIEW: STEP 3- INPUT -->
129
  setting to handle larger payloads. <br/>
130
 
131
  <b>Unknown collation:</b> The MySQL Version is too old see:
132
- <a href="https://lifeinthegrid.com/duplicator-faq" target="_blank">What is Compatibility mode & 'Unknown collation' errors?</a>
133
  <br/>
134
  </div>
135
  </div>
@@ -224,8 +224,8 @@ VIEW: STEP 3- INPUT -->
224
 
225
  <div class='s3-connect'>
226
  <a href="installer.php?help=1#troubleshoot" target="_blank">Troubleshoot</a> |
227
- <a href='http://support.lifeinthegrid.com/knowledgebase.php' target='_blank'>FAQs</a> |
228
- <a href='http://lifeinthegrid.com/labs/duplicator/resources/' target='_blank'>Support</a>
229
  </div><br/>
230
  </form>
231
 
129
  setting to handle larger payloads. <br/>
130
 
131
  <b>Unknown collation:</b> The MySQL Version is too old see:
132
+ <a href="https://snapcreek.com/duplicator/docs/faqs-tech/#faq-installer-110-q" target="_blank">What is Compatibility mode & 'Unknown collation' errors?</a>
133
  <br/>
134
  </div>
135
  </div>
224
 
225
  <div class='s3-connect'>
226
  <a href="installer.php?help=1#troubleshoot" target="_blank">Troubleshoot</a> |
227
+ <a href='https://snapcreek.com/duplicator/docs/faqs-tech/' target='_blank'>FAQs</a> |
228
+ <a href='https://snapcreek.com/ticket' target='_blank'>Support</a>
229
  </div><br/>
230
  </form>
231
 
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Duplicator ===
2
  Contributors: corylamleorg, bobriley
3
  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.22
8
  License: GPLv2
9
 
10
  Duplicate, clone, backup, move and transfer an entire site from one location to another.
@@ -15,7 +15,7 @@ Duplicate, clone, backup, move and transfer an entire site from one location to
15
 
16
  Duplicator supports both serialized and base64 serialized string replacement. If you need to move WordPress or backup WordPress this plugin can help simplify the process.
17
 
18
- For complete details visit [lifeinthegrid.com](http://lifeinthegrid.com/).
19
 
20
  = Quick Video Demo =
21
  http://www.youtube.com/watch?v=yZ7pHmR9JC8
@@ -77,11 +77,11 @@ The Duplicator requires php 5.3 or higher.
77
 
78
  = I'm having issues getting the plugin to work what should I do? =
79
 
80
- See the [FAQs](http://lifeinthegrid.com/duplicator-faq) page for a detailed rundown of common issues
81
 
82
  = Are there any videos I can watch? =
83
 
84
- Yes. Please see the [tutorial section](http://lifeinthegrid.com/duplicator-tutorials] on the user guide for videos.
85
 
86
 
87
  = Where can I get more information and support for this plugin? =
1
  === Duplicator ===
2
  Contributors: corylamleorg, bobriley
3
  Donate link: www.lifeinthegrid.com/partner
4
+ Tags: backup, restore, move, migrate, localhost, synchronize, duplicate, clone, automate, niche site
5
  Requires at least: 4.0
6
  Tested up to: 4.6
7
+ Stable tag: 1.1.24
8
  License: GPLv2
9
 
10
  Duplicate, clone, backup, move and transfer an entire site from one location to another.
15
 
16
  Duplicator supports both serialized and base64 serialized string replacement. If you need to move WordPress or backup WordPress this plugin can help simplify the process.
17
 
18
+ For complete details visit [snapcreek.com](http://snapcreek.com/).
19
 
20
  = Quick Video Demo =
21
  http://www.youtube.com/watch?v=yZ7pHmR9JC8
77
 
78
  = I'm having issues getting the plugin to work what should I do? =
79
 
80
+ See the [FAQs](https://snapcreek.com/duplicator/docs/faqs-tech) page for a detailed rundown of common issues
81
 
82
  = Are there any videos I can watch? =
83
 
84
+ Yes. Please see the [tutorial section](https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-070-q) on the user guide for videos.
85
 
86
 
87
  = Where can I get more information and support for this plugin? =
views/help/about.php CHANGED
@@ -45,9 +45,7 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
45
  <table style="width:825px">
46
  <tr>
47
  <td style="width:90px">
48
- <a href="http://lifeinthegrid.com/labs/duplicator" target="_blank">
49
- <img src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/logo-box.png" style='text-align:top; margin:0' />
50
- </a>
51
  </td>
52
  <td valign="top" style="padding-top:10px; font-size:14px">
53
  <?php
@@ -97,7 +95,7 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
97
  <div class="dup-support-hlp-txt">
98
  <?php
99
  $title = __("Duplicate Your WordPress", 'duplicator');
100
- $summary = __("Rapid WordPress Duplication by LifeInTheGrid.com", 'duplicator');
101
  $share_this_data = "st_url='" . DUPLICATOR_HOMEPAGE . "' st_title='{$title}' st_summary='{$summary}'";
102
  ?>
103
  <div style="width:100%; padding:20px 10px 0px 10px" align="center">
45
  <table style="width:825px">
46
  <tr>
47
  <td style="width:90px">
48
+ <img src="<?php echo DUPLICATOR_PLUGIN_URL ?>assets/img/logo-box.png" style='text-align:top; margin:0' />
 
 
49
  </td>
50
  <td valign="top" style="padding-top:10px; font-size:14px">
51
  <?php
95
  <div class="dup-support-hlp-txt">
96
  <?php
97
  $title = __("Duplicate Your WordPress", 'duplicator');
98
+ $summary = __("Rapid WordPress Duplication by snapcreek.com", 'duplicator');
99
  $share_this_data = "st_url='" . DUPLICATOR_HOMEPAGE . "' st_title='{$title}' st_summary='{$summary}'";
100
  ?>
101
  <div style="width:100%; padding:20px 10px 0px 10px" align="center">
views/help/help.php CHANGED
@@ -52,11 +52,10 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
52
  <?php _e('Complete Online Documentation', 'duplicator'); ?><br/>
53
  <select id="dup-support-kb-lnks" style="margin-top:18px; font-size:16px; min-width: 170px">
54
  <option> <?php _e('Choose A Section', 'duplicator') ?> </option>
55
- <option value="http://lifeinthegrid.com/duplicator-quick"><?php _e('Quick Start', 'duplicator') ?></option>
56
- <option value="http://lifeinthegrid.com/duplicator-guide"><?php _e('User Guide', 'duplicator') ?></option>
57
- <option value="http://lifeinthegrid.com/duplicator-faq"><?php _e('FAQs', 'duplicator') ?></option>
58
- <option value="http://lifeinthegrid.com/duplicator-log"><?php _e('Change Log', 'duplicator') ?></option>
59
- <option value="http://lifeinthegrid.com/labs/duplicator"><?php _e('Product Page', 'duplicator') ?></option>
60
  </select>
61
  </div>
62
  </div>
@@ -92,7 +91,7 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
92
  <?php _e('Servers That Work With Duplicator', 'duplicator'); ?>
93
  <br/><br/>
94
  <div class="dup-support-txts-links">
95
- <button class="button button-primary button-large" onclick="window.open('http://lifeinthegrid.com/duplicator-hosts', 'litg');"><?php _e('Trusted Providers!', 'duplicator') ?></button> &nbsp;
96
  </div>
97
  </div>
98
  </div>
@@ -108,7 +107,7 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
108
  <?php _e('Other Commercial Resources', 'duplicator'); ?>
109
  <br/><br/>
110
  <div class="dup-support-txts-links">
111
- <button class="button button-primary button-large" onclick="window.open('http://lifeinthegrid.com/duplicator-getalts', 'litg');"><?php _e('Pro Solutions!', 'duplicator') ?></button> &nbsp;
112
  </div>
113
  </div>
114
  </div>
@@ -119,7 +118,7 @@ require_once(DUPLICATOR_PLUGIN_PATH . '/views/inc.header.php');
119
  jQuery(document).ready(function($) {
120
 
121
  Duplicator.OpenSupportWindow = function() {
122
- var url = 'http://lifeinthegrid.com/duplicator/resources/';
123
  window.open(url, 'litg');
124
  }
125
 
52
  <?php _e('Complete Online Documentation', 'duplicator'); ?><br/>
53
  <select id="dup-support-kb-lnks" style="margin-top:18px; font-size:16px; min-width: 170px">
54
  <option> <?php _e('Choose A Section', 'duplicator') ?> </option>
55
+ <option value="https://snapcreek.com/duplicator/docs/quick-start/"><?php _e('Quick Start', 'duplicator') ?></option>
56
+ <option value="https://snapcreek.com/duplicator/docs/guide/"><?php _e('User Guide', 'duplicator') ?></option>
57
+ <option value="https://snapcreek.com/duplicator/docs/faqs-tech/"><?php _e('FAQs', 'duplicator') ?></option>
58
+ <option value="https://snapcreek.com/duplicator/docs/changelog/?lite"><?php _e('Change Log', 'duplicator') ?></option>
 
59
  </select>
60
  </div>
61
  </div>
91
  <?php _e('Servers That Work With Duplicator', 'duplicator'); ?>
92
  <br/><br/>
93
  <div class="dup-support-txts-links">
94
+ <button class="button button-primary button-large" onclick="window.open('https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-040-q', 'litg');"><?php _e('Trusted Providers!', 'duplicator') ?></button> &nbsp;
95
  </div>
96
  </div>
97
  </div>
107
  <?php _e('Other Commercial Resources', 'duplicator'); ?>
108
  <br/><br/>
109
  <div class="dup-support-txts-links">
110
+ <button class="button button-primary button-large" onclick="window.open('https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource-050-q', 'litg');"><?php _e('Pro Solutions!', 'duplicator') ?></button> &nbsp;
111
  </div>
112
  </div>
113
  </div>
118
  jQuery(document).ready(function($) {
119
 
120
  Duplicator.OpenSupportWindow = function() {
121
+ var url = 'https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource';
122
  window.open(url, 'litg');
123
  }
124
 
views/help/perks.php CHANGED
@@ -163,12 +163,6 @@ $_GET['a'] = isset($_GET['a']) ? $_GET['a'] : -1;
163
  <script type="text/javascript">
164
  jQuery(document).ready(function($)
165
  {
166
-
167
- Duplicator.OpenSupportWindow = function() {
168
- var url = 'http://lifeinthegrid.com/duplicator/resources/';
169
- window.open(url, 'litg');
170
- }
171
-
172
  //ATTACHED EVENTS
173
  jQuery('#dup-perks-kb-lnks').change(function() {
174
  if (jQuery(this).val() != "null")
163
  <script type="text/javascript">
164
  jQuery(document).ready(function($)
165
  {
 
 
 
 
 
 
166
  //ATTACHED EVENTS
167
  jQuery('#dup-perks-kb-lnks').change(function() {
168
  if (jQuery(this).val() != "null")
views/inc.header.php CHANGED
@@ -1,6 +1,6 @@
1
  <?php function duplicator_header($title) { ?>
2
  <!-- !!DO NOT CHANGE OR EDIT PRODUCT NAME!!
3
  If your interested in Private Label Rights please contact us for
4
- customizations to product labeling: lifeinthegrid.com -->
5
  <h1><?php echo $title ?><br/></h1>
6
  <?php } ?>
1
  <?php function duplicator_header($title) { ?>
2
  <!-- !!DO NOT CHANGE OR EDIT PRODUCT NAME!!
3
  If your interested in Private Label Rights please contact us for
4
+ customizations to product labeling: snapcreek.com -->
5
  <h1><?php echo $title ?><br/></h1>
6
  <?php } ?>
views/packages/details/controller.php CHANGED
@@ -10,8 +10,8 @@ $package = DUP_Package::GetByID($package_id);
10
  $err_found = ($package == null || $package->Status < 100);
11
  $link_log = "{$package->StoreURL}{$package->NameHash}.log";
12
  $err_link_log = "<a target='_blank' href='{$link_log}' >" . __('package log', 'duplicator') . '</a>';
13
- $err_link_faq = '<a target="_blank" href="http://lifeinthegrid.com/duplicator-faq">' . __('FAQ', 'duplicator') . '</a>';
14
- $err_link_ticket = '<a target="_blank" href="http://lifeinthegrid.com/labs/duplicator/resources/">' . __('resources page', 'duplicator') . '</a>';
15
  ?>
16
 
17
  <style>
10
  $err_found = ($package == null || $package->Status < 100);
11
  $link_log = "{$package->StoreURL}{$package->NameHash}.log";
12
  $err_link_log = "<a target='_blank' href='{$link_log}' >" . __('package log', 'duplicator') . '</a>';
13
+ $err_link_faq = '<a target="_blank" href="https://snapcreek.com/duplicator/docs/faqs-tech/">' . __('FAQ', 'duplicator') . '</a>';
14
+ $err_link_ticket = '<a target="_blank" href="https://snapcreek.com/duplicator/docs/faqs-tech/#faq-resource">' . __('resources page', 'duplicator') . '</a>';
15
  ?>
16
 
17
  <style>
views/packages/main/new3.build.php CHANGED
@@ -106,7 +106,7 @@ TOOL BAR: STEPS -->
106
 
107
  <i><?php _e('Please try the process again.', 'duplicator'); ?></i><br/><br/>
108
 
109
- <input type="button" style="margin-right:10px;" class="button" value="<?php _e('Diagnose', 'duplicator'); ?>" onclick="window.open('http://lifeinthegrid.com/support/knowledgebase.php?article=12#faq-trouble-timeout', '_blank');return false;" />
110
  <input type="button" class="button" value="<?php _e('Try Again', 'duplicator'); ?>" onclick="window.location = 'admin.php?page=duplicator&tab=new1'" />
111
  <fieldset>
112
  <legend><b><i class="fa fa-exclamation"></i> <?php _e('Details', 'duplicator'); ?></b></legend>
106
 
107
  <i><?php _e('Please try the process again.', 'duplicator'); ?></i><br/><br/>
108
 
109
+ <input type="button" style="margin-right:10px;" class="button" value="<?php _e('Diagnose', 'duplicator'); ?>" onclick="window.open('https://snapcreek.com/duplicator/docs/faqs-tech/#faq-trouble-100-q', '_blank');return false;" />
110
  <input type="button" class="button" value="<?php _e('Try Again', 'duplicator'); ?>" onclick="window.location = 'admin.php?page=duplicator&tab=new1'" />
111
  <fieldset>
112
  <legend><b><i class="fa fa-exclamation"></i> <?php _e('Details', 'duplicator'); ?></b></legend>
views/tools/diagnostics.php CHANGED
@@ -5,6 +5,76 @@
5
  global $wp_version;
6
  global $wpdb;
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  ob_start();
9
  phpinfo();
10
  $serverinfo = ob_get_contents();
@@ -28,14 +98,15 @@
28
  $ui_css_srv_panel = (isset($view_state['dup-settings-diag-srv-panel']) && $view_state['dup-settings-diag-srv-panel']) ? 'display:block' : 'display:none';
29
  $ui_css_opts_panel = (isset($view_state['dup-settings-diag-opts-panel']) && $view_state['dup-settings-diag-opts-panel']) ? 'display:block' : 'display:none';
30
 
31
-
 
32
  $client_ip_address = DUP_Server::GetClientIP();
33
 
34
  //POST BACK
35
- $action_updated = null;
36
  if (isset($_POST['action'])) {
37
  $action_result = DUP_Settings::DeleteWPOption($_POST['action']);
38
- switch ($_POST['action']) {
 
39
  case 'duplicator_settings' : $action_response = __('Plugin settings reset.', 'duplicator'); break;
40
  case 'duplicator_ui_view_state' : $action_response = __('View state settings reset.', 'duplicator'); break;
41
  case 'duplicator_package_active' : $action_response = __('Active package settings reset.', 'duplicator'); break;
@@ -281,6 +352,38 @@
281
  </div> <!-- end .dup-box -->
282
  <br/>
283
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
284
  <!-- ==============================
285
  PHP INFORMATION -->
286
  <div class="dup-box">
@@ -290,20 +393,54 @@
290
  <div class="dup-box-arrow"></div>
291
  </div>
292
  <div class="dup-box-panel" style="display:none">
293
-
294
- <div id="dup-phpinfo" style="width:95%">
295
- <?php echo "<div id='dup-server-info-area'>{$serverinfo}</div>"; ?>
296
- </div><br/>
297
-
298
- </div> <!-- end .dup-box-panel -->
299
- </div> <!-- end .dup-box -->
300
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
301
  </form>
302
 
303
  <script>
304
  jQuery(document).ready(function($) {
305
 
306
- Duplicator.Settings.DeleteOption = function (anchor) {
 
307
  var key = $(anchor).text();
308
  var result = confirm('<?php _e("Delete this option value", "duplicator"); ?> [' + key + '] ?');
309
  if (! result) return;
@@ -312,6 +449,23 @@ jQuery(document).ready(function($) {
312
  jQuery('#dup-settings-form').submit();
313
  }
314
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
315
  });
316
  </script>
317
 
 
5
  global $wp_version;
6
  global $wpdb;
7
 
8
+ class DUP_ScanChecker
9
+ {
10
+ public $FileCount = 0;
11
+ public $DirCount = 0;
12
+ public $LimitReached = false;
13
+ public $MaxFiles = 1000000;
14
+ public $MaxDirs = 75000;
15
+
16
+ public function GetDirContents($dir, &$results = array())
17
+ {
18
+ if ($this->FileCount > $this->MaxFiles || $this->DirCount > $this->MaxDirs)
19
+ {
20
+ $this->LimitReached = true;
21
+ return $results;
22
+ }
23
+
24
+ $files = @scandir($dir);
25
+ if (is_array($files))
26
+ {
27
+ foreach($files as $key => $value)
28
+ {
29
+ $path = realpath($dir.DIRECTORY_SEPARATOR.$value);
30
+ if ($path) {
31
+ if(!is_dir($path)) {
32
+ if (!is_readable($path))
33
+ {
34
+ $results[] = $path;
35
+ }
36
+ else if ($this->_is_link($path))
37
+ {
38
+ $results[] = $path;
39
+ }
40
+ $this->FileCount++;
41
+ }
42
+ else if($value != "." && $value != "..")
43
+ {
44
+ if (! $this->_is_link($path))
45
+ {
46
+ $this->GetDirContents($path, $results);
47
+ }
48
+
49
+ if (!is_readable($path))
50
+ {
51
+ $results[] = $path;
52
+ }
53
+ else if ($this->_is_link($path)) {
54
+ $results[] = $path;
55
+ }
56
+ $this->DirCount++;
57
+ }
58
+ }
59
+ }
60
+ }
61
+ return $results;
62
+ }
63
+
64
+ //Supports windows and linux
65
+ private function _is_link($target)
66
+ {
67
+ if (defined('PHP_WINDOWS_VERSION_BUILD')) {
68
+ if(file_exists($target) && @readlink($target) != $target) {
69
+ return true;
70
+ }
71
+ } elseif (is_link($target)) {
72
+ return true;
73
+ }
74
+ return false;
75
+ }
76
+ }
77
+
78
  ob_start();
79
  phpinfo();
80
  $serverinfo = ob_get_contents();
98
  $ui_css_srv_panel = (isset($view_state['dup-settings-diag-srv-panel']) && $view_state['dup-settings-diag-srv-panel']) ? 'display:block' : 'display:none';
99
  $ui_css_opts_panel = (isset($view_state['dup-settings-diag-opts-panel']) && $view_state['dup-settings-diag-opts-panel']) ? 'display:block' : 'display:none';
100
 
101
+ $scan_run = (isset($_POST['action']) && $_POST['action'] == 'duplicator_recursion') ? true :false;
102
+
103
  $client_ip_address = DUP_Server::GetClientIP();
104
 
105
  //POST BACK
 
106
  if (isset($_POST['action'])) {
107
  $action_result = DUP_Settings::DeleteWPOption($_POST['action']);
108
+ switch ($_POST['action'])
109
+ {
110
  case 'duplicator_settings' : $action_response = __('Plugin settings reset.', 'duplicator'); break;
111
  case 'duplicator_ui_view_state' : $action_response = __('View state settings reset.', 'duplicator'); break;
112
  case 'duplicator_package_active' : $action_response = __('Active package settings reset.', 'duplicator'); break;
352
  </div> <!-- end .dup-box -->
353
  <br/>
354
 
355
+
356
+ <!-- ==============================
357
+ SCAN VALIDATOR -->
358
+ <div class="dup-box">
359
+ <div class="dup-box-title">
360
+ <i class="fa fa-check-square-o"></i>
361
+ <?php _e("Scan Validator", 'duplicator'); ?>
362
+ <div class="dup-box-arrow"></div>
363
+ </div>
364
+ <div class="dup-box-panel" style="display: <?php echo $scan_run ? 'block' : 'none'; ?>">
365
+ <?php
366
+ _e("This utility will help to find unreadable files and sys-links in your environment that can lead to issues during the scan process. ", "duplicator");
367
+ _e("The utility will also show how many files and directories you have in your system. This process may take several minutes to run. ", "duplicator");
368
+ _e("If there is a recursive loop on your system then the process has a built in check to stop after a large set of files and directories have been scanned. ", "duplicator");
369
+ _e("A message will show indicated that that a scan depth has been reached. ", "duplicator");
370
+ ?>
371
+ <br/><br/>
372
+
373
+ <?php if ($scan_run) : ?>
374
+ <div id="duplicator-scan-results-1">
375
+ <i class="fa fa-circle-o-notch fa-spin fa-lg fa-fw"></i>
376
+ <b style="font-size: 14px"><?php _e('Scan integrity validation detection is running please wait...', 'duplicator'); ?></b>
377
+ <br/><br/>
378
+ </div>
379
+ <?php else :?>
380
+ <button id="scan-run-btn" class="button button-large button-primary" onclick="Duplicator.Settings.Recursion()"><?php _e("Run Scan Integrity Validation", "duplicator"); ?></button>
381
+ <?php endif; ?>
382
+
383
+ </div>
384
+ </div>
385
+ <br/>
386
+
387
  <!-- ==============================
388
  PHP INFORMATION -->
389
  <div class="dup-box">
393
  <div class="dup-box-arrow"></div>
394
  </div>
395
  <div class="dup-box-panel" style="display:none">
396
+ <div id="dup-phpinfo" style="width:95%">
397
+ <?php echo "<div id='dup-server-info-area'>{$serverinfo}</div>"; ?>
398
+ </div><br/>
399
+ </div>
400
+ </div>
401
+ <br/>
402
+
403
+ <div id="duplicator-scan-results-2" style="display:none">
404
+ <?php
405
+ if ($scan_run)
406
+ {
407
+ $ScanChecker = new DUP_ScanChecker();
408
+ $Files = $ScanChecker->GetDirContents(DUPLICATOR_WPROOTPATH);
409
+ $MaxFiles = number_format($ScanChecker->MaxFiles);
410
+ $MaxDirs= number_format($ScanChecker->MaxDirs);
411
+
412
+ if ($ScanChecker->LimitReached) {
413
+ echo "<i style='color:red'>Recursion limit reached of {$MaxFiles} files &amp; {$MaxDirs} directories.</i> <br/>";
414
+ }
415
+
416
+ echo "Dirs Scanned: " . number_format($ScanChecker->DirCount) . " <br/>";
417
+ echo "Files Scanned: " . number_format($ScanChecker->FileCount) . " <br/>";
418
+ echo "Found Items: <br/>";
419
+
420
+ if (count($Files))
421
+ {
422
+ $count = 0;
423
+ foreach($Files as $file)
424
+ {
425
+ $count++;
426
+ echo "&nbsp; &nbsp; &nbsp; {$count}. {$file} <br/>";
427
+ }
428
+ } else {
429
+ echo "&nbsp; &nbsp; &nbsp; No items found in scan <br/>";
430
+ }
431
+
432
+ echo "<br/><a href='admin.php?page=duplicator-tools&tab=diagnostics'>" . __("Try Scan Again", "duplicator") . "</a>";
433
+
434
+ }
435
+ ?>
436
+ </div>
437
  </form>
438
 
439
  <script>
440
  jQuery(document).ready(function($) {
441
 
442
+ Duplicator.Settings.DeleteOption = function (anchor)
443
+ {
444
  var key = $(anchor).text();
445
  var result = confirm('<?php _e("Delete this option value", "duplicator"); ?> [' + key + '] ?');
446
  if (! result) return;
449
  jQuery('#dup-settings-form').submit();
450
  }
451
 
452
+ Duplicator.Settings.Recursion = function()
453
+ {
454
+ var result = confirm('<?php _e('This will run the scan validation check. This may take several minutes.\nDo you want to Continue?', 'duplicator'); ?>');
455
+ if (! result) return;
456
+
457
+ jQuery('#dup-settings-form-action').val('duplicator_recursion');
458
+ jQuery('#scan-run-btn').html('<i class="fa fa-circle-o-notch fa-spin fa-fw"></i> Running Please Wait...');
459
+ jQuery('#dup-settings-form').submit();
460
+
461
+ }
462
+
463
+ <?php
464
+ if ($scan_run) {
465
+ echo "$('#duplicator-scan-results-1').html($('#duplicator-scan-results-2').html())";
466
+ }
467
+ ?>
468
  });
469
  </script>
470
 
471
+