All-in-One WP Migration - Version 7.15

Version Description

Added

  • Exclude web.config and .htaccess direct access from each other

Fixed

  • Long backup names break download button layout
Download this release

Release Info

Developer bangelov
Plugin Icon 128x128 All-in-One WP Migration
Version 7.15
Comparing to
See all releases

Code changes from version 7.14 to 7.15

Files changed (150) hide show
  1. all-in-one-wp-migration.php +2 -2
  2. constants.php +29 -29
  3. deprecated.php +1 -1
  4. exceptions.php +1 -1
  5. functions.php +70 -26
  6. lib/controller/class-ai1wm-backups-controller.php +1 -1
  7. lib/controller/class-ai1wm-export-controller.php +1 -1
  8. lib/controller/class-ai1wm-feedback-controller.php +1 -1
  9. lib/controller/class-ai1wm-import-controller.php +1 -1
  10. lib/controller/class-ai1wm-main-controller.php +85 -26
  11. lib/controller/class-ai1wm-report-controller.php +1 -1
  12. lib/controller/class-ai1wm-status-controller.php +1 -1
  13. lib/controller/class-ai1wm-updater-controller.php +37 -1
  14. lib/model/class-ai1wm-backups.php +1 -1
  15. lib/model/class-ai1wm-compatibility.php +1 -1
  16. lib/model/class-ai1wm-deprecated.php +1 -1
  17. lib/model/class-ai1wm-extensions.php +2 -2
  18. lib/model/class-ai1wm-feedback.php +1 -1
  19. lib/model/class-ai1wm-handler.php +1 -1
  20. lib/model/class-ai1wm-log.php +1 -1
  21. lib/model/class-ai1wm-message.php +1 -1
  22. lib/model/class-ai1wm-notification.php +1 -1
  23. lib/model/class-ai1wm-report.php +1 -1
  24. lib/model/class-ai1wm-status.php +1 -1
  25. lib/model/class-ai1wm-template.php +1 -1
  26. lib/model/class-ai1wm-updater.php +4 -21
  27. lib/model/export/class-ai1wm-export-archive.php +1 -1
  28. lib/model/export/class-ai1wm-export-clean.php +1 -1
  29. lib/model/export/class-ai1wm-export-compatibility.php +1 -1
  30. lib/model/export/class-ai1wm-export-config-file.php +1 -1
  31. lib/model/export/class-ai1wm-export-config.php +1 -1
  32. lib/model/export/class-ai1wm-export-content.php +1 -1
  33. lib/model/export/class-ai1wm-export-database-file.php +1 -1
  34. lib/model/export/class-ai1wm-export-database.php +1 -1
  35. lib/model/export/class-ai1wm-export-download.php +1 -1
  36. lib/model/export/class-ai1wm-export-enumerate.php +1 -1
  37. lib/model/export/class-ai1wm-export-init.php +1 -1
  38. lib/model/import/class-ai1wm-import-blogs.php +1 -1
  39. lib/model/import/class-ai1wm-import-clean.php +1 -1
  40. lib/model/import/class-ai1wm-import-compatibility.php +1 -1
  41. lib/model/import/class-ai1wm-import-confirm.php +1 -1
  42. lib/model/import/class-ai1wm-import-content.php +21 -5
  43. lib/model/import/class-ai1wm-import-database.php +145 -113
  44. lib/model/import/class-ai1wm-import-done.php +10 -1
  45. lib/model/import/class-ai1wm-import-enumerate.php +1 -1
  46. lib/model/import/class-ai1wm-import-mu-plugins.php +1 -1
  47. lib/model/import/class-ai1wm-import-plugins.php +1 -1
  48. lib/model/import/class-ai1wm-import-upload.php +1 -1
  49. lib/model/import/class-ai1wm-import-validate.php +1 -1
  50. lib/vendor/servmask/archiver/class-ai1wm-archiver.php +1 -1
  51. lib/vendor/servmask/archiver/class-ai1wm-compressor.php +1 -1
  52. lib/vendor/servmask/archiver/class-ai1wm-extractor.php +1 -1
  53. lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php +1 -1
  54. lib/vendor/servmask/cron/class-ai1wm-cron.php +1 -1
  55. lib/vendor/servmask/database/class-ai1wm-database-mysql.php +1 -1
  56. lib/vendor/servmask/database/class-ai1wm-database-mysqli.php +1 -1
  57. lib/vendor/servmask/database/class-ai1wm-database-utility.php +1 -1
  58. lib/vendor/servmask/database/class-ai1wm-database.php +1 -1
  59. lib/vendor/servmask/filesystem/class-ai1wm-directory.php +1 -1
  60. lib/vendor/servmask/filesystem/class-ai1wm-file-htaccess.php +5 -1
  61. lib/vendor/servmask/filesystem/class-ai1wm-file-index.php +3 -3
  62. lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php +8 -1
  63. lib/vendor/servmask/filesystem/class-ai1wm-file.php +1 -1
  64. lib/vendor/servmask/filter/class-ai1wm-recursive-exclude-filter.php +1 -1
  65. lib/vendor/servmask/filter/class-ai1wm-recursive-extension-filter.php +1 -1
  66. lib/vendor/servmask/iterator/class-ai1wm-recursive-directory-iterator.php +1 -1
  67. lib/vendor/servmask/iterator/class-ai1wm-recursive-iterator-iterator.php +1 -1
  68. lib/view/assets/css/backups.min.css +1 -1
  69. lib/view/assets/css/backups.min.rtl.css +1 -1
  70. lib/view/assets/css/export.min.css +1 -1
  71. lib/view/assets/css/export.min.rtl.css +1 -1
  72. lib/view/assets/css/import.min.css +1 -1
  73. lib/view/assets/css/import.min.rtl.css +1 -1
  74. lib/view/assets/css/servmask.min.css +1 -1
  75. lib/view/assets/css/servmask.min.rtl.css +1 -1
  76. lib/view/assets/javascript/backups.min.js +37 -25
  77. lib/view/assets/javascript/export.min.js +8 -8
  78. lib/view/assets/javascript/import.min.js +41 -47
  79. lib/view/assets/javascript/settings.min.js +3 -3
  80. lib/view/assets/javascript/updater.min.js +1 -1
  81. lib/view/assets/javascript/util.min.js +2 -2
  82. lib/view/backups/backups-list.php +1 -1
  83. lib/view/backups/backups-permissions.php +1 -1
  84. lib/view/backups/index.php +1 -1
  85. lib/view/common/http-authentication.php +1 -1
  86. lib/view/common/leave-feedback.php +1 -1
  87. lib/view/common/maintenance-mode.php +1 -1
  88. lib/view/common/report-problem.php +1 -1
  89. lib/view/common/share-buttons.php +1 -1
  90. lib/view/export/advanced-settings.php +1 -1
  91. lib/view/export/button-azure-storage.php +1 -1
  92. lib/view/export/button-b2.php +1 -1
  93. lib/view/export/button-box.php +1 -1
  94. lib/view/export/button-digitalocean.php +1 -1
  95. lib/view/export/button-dropbox.php +1 -1
  96. lib/view/export/button-file.php +1 -1
  97. lib/view/export/button-ftp.php +1 -1
  98. lib/view/export/button-gcloud-storage.php +1 -1
  99. lib/view/export/button-gdrive.php +1 -1
  100. lib/view/export/button-glacier.php +1 -1
  101. lib/view/export/button-mega.php +1 -1
  102. lib/view/export/button-onedrive.php +1 -1
  103. lib/view/export/button-pcloud.php +1 -1
  104. lib/view/export/button-s3-client.php +1 -1
  105. lib/view/export/button-s3.php +1 -1
  106. lib/view/export/button-webdav.php +1 -1
  107. lib/view/export/export-buttons.php +1 -1
  108. lib/view/export/export-permissions.php +1 -1
  109. lib/view/export/find-replace.php +1 -1
  110. lib/view/export/help-section.php +1 -1
  111. lib/view/export/index.php +1 -1
  112. lib/view/import/button-azure-storage.php +1 -1
  113. lib/view/import/button-b2.php +1 -1
  114. lib/view/import/button-box.php +1 -1
  115. lib/view/import/button-digitalocean.php +1 -1
  116. lib/view/import/button-dropbox.php +1 -1
  117. lib/view/import/button-file.php +1 -1
  118. lib/view/import/button-ftp.php +1 -1
  119. lib/view/import/button-gcloud-storage.php +1 -1
  120. lib/view/import/button-gdrive.php +1 -1
  121. lib/view/import/button-glacier.php +1 -1
  122. lib/view/import/button-mega.php +1 -1
  123. lib/view/import/button-onedrive.php +1 -1
  124. lib/view/import/button-pcloud.php +1 -1
  125. lib/view/import/button-s3-client.php +1 -1
  126. lib/view/import/button-s3.php +1 -1
  127. lib/view/import/button-url.php +1 -1
  128. lib/view/import/button-webdav.php +1 -1
  129. lib/view/import/import-buttons.php +1 -1
  130. lib/view/import/import-permissions.php +1 -1
  131. lib/view/import/index.php +1 -1
  132. lib/view/import/pro.php +1 -1
  133. lib/view/main/admin-head.php +1 -1
  134. lib/view/main/backups-htaccess-notice.php +1 -1
  135. lib/view/main/backups-index-html-notice.php +45 -0
  136. lib/view/main/{backups-index-notice.php → backups-index-php-notice.php} +2 -2
  137. lib/view/main/backups-path-notice.php +1 -1
  138. lib/view/main/backups-webconfig-notice.php +1 -1
  139. lib/view/main/get-support.php +1 -1
  140. lib/view/main/missing-role-capability-notice.php +1 -1
  141. lib/view/main/multisite-notice.php +1 -1
  142. lib/view/main/storage-index-html-notice.php +45 -0
  143. lib/view/main/{storage-index-notice.php → storage-index-php-notice.php} +2 -2
  144. lib/view/main/storage-path-notice.php +1 -1
  145. lib/view/main/wordpress-htaccess-notice.php +1 -1
  146. lib/view/updater/check.php +1 -1
  147. lib/view/updater/modal.php +1 -1
  148. loader.php +1 -1
  149. readme.txt +11 -2
  150. uninstall.php +1 -1
all-in-one-wp-migration.php CHANGED
@@ -5,12 +5,12 @@
5
* Description: Migration tool for all your blog data. Import or Export your blog content with a single click.
6
* Author: ServMask
7
* Author URI: https://servmask.com/
8
- * Version: 7.14
9
* Text Domain: all-in-one-wp-migration
10
* Domain Path: /languages
11
* Network: True
12
*
13
- * Copyright (C) 2014-2019 ServMask Inc.
14
*
15
* This program is free software: you can redistribute it and/or modify
16
* it under the terms of the GNU General Public License as published by
5
* Description: Migration tool for all your blog data. Import or Export your blog content with a single click.
6
* Author: ServMask
7
* Author URI: https://servmask.com/
8
+ * Version: 7.15
9
* Text Domain: all-in-one-wp-migration
10
* Domain Path: /languages
11
* Network: True
12
*
13
+ * Copyright (C) 2014-2020 ServMask Inc.
14
*
15
* This program is free software: you can redistribute it and/or modify
16
* it under the terms of the GNU General Public License as published by
constants.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -35,18 +35,13 @@ define( 'AI1WM_DEBUG', false );
35
// ==================
36
// = Plugin Version =
37
// ==================
38
- define( 'AI1WM_VERSION', '7.14' );
39
40
// ===============
41
// = Plugin Name =
42
// ===============
43
define( 'AI1WM_PLUGIN_NAME', 'all-in-one-wp-migration' );
44
45
- // ============================
46
- // = Directory index.php File =
47
- // ============================
48
- define( 'AI1WM_DIRECTORY_INDEX', 'index.php' );
49
-
50
// ================
51
// = Storage Path =
52
// ================
@@ -292,6 +287,21 @@ define( 'AI1WM_ACTIVE_TEMPLATE', 'template' );
292
// =====================
293
define( 'AI1WM_ACTIVE_STYLESHEET', 'stylesheet' );
294
295
// ===================
296
// = Backups Labels =
297
// ===================
@@ -302,11 +312,6 @@ define( 'AI1WM_BACKUPS_LABELS', 'ai1wm_backups_labels' );
302
// ===============
303
define( 'AI1WM_SITES_LINKS', 'ai1wm_sites_links' );
304
305
- // ============
306
- // = Cron Key =
307
- // ============
308
- define( 'AI1WM_CRON', 'cron' );
309
-
310
// ===============
311
// = Updater Key =
312
// ===============
@@ -374,21 +379,6 @@ if ( ! defined( 'WP_CONTENT_DIR' ) ) {
374
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
375
}
376
377
- // ================
378
- // = Uploads Path =
379
- // ================
380
- define( 'AI1WM_UPLOADS_PATH', 'uploads' );
381
-
382
- // ==============
383
- // = Blogs Path =
384
- // ==============
385
- define( 'AI1WM_BLOGSDIR_PATH', 'blogs.dir' );
386
-
387
- // ==============
388
- // = Sites Path =
389
- // ==============
390
- define( 'AI1WM_SITES_PATH', AI1WM_UPLOADS_PATH . DIRECTORY_SEPARATOR . 'sites' );
391
-
392
// ================
393
// = Backups Path =
394
// ================
@@ -397,12 +387,22 @@ define( 'AI1WM_BACKUPS_PATH', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'ai1wm-back
397
// ==========================
398
// = Storage index.php File =
399
// ==========================
400
- define( 'AI1WM_STORAGE_INDEX', AI1WM_STORAGE_PATH . DIRECTORY_SEPARATOR . 'index.php' );
401
402
// ==========================
403
// = Backups index.php File =
404
// ==========================
405
- define( 'AI1WM_BACKUPS_INDEX', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'index.php' );
406
407
// ==========================
408
// = Backups .htaccess File =
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
35
// ==================
36
// = Plugin Version =
37
// ==================
38
+ define( 'AI1WM_VERSION', '7.15' );
39
40
// ===============
41
// = Plugin Name =
42
// ===============
43
define( 'AI1WM_PLUGIN_NAME', 'all-in-one-wp-migration' );
44
45
// ================
46
// = Storage Path =
47
// ================
287
// =====================
288
define( 'AI1WM_ACTIVE_STYLESHEET', 'stylesheet' );
289
290
+ // ==============
291
+ // = DB Version =
292
+ // ==============
293
+ define( 'AI1WM_DB_VERSION', 'db_version' );
294
+
295
+ // ======================
296
+ // = Initial DB Version =
297
+ // ======================
298
+ define( 'AI1WM_INITIAL_DB_VERSION', 'initial_db_version' );
299
+
300
+ // ============
301
+ // = Cron Key =
302
+ // ============
303
+ define( 'AI1WM_CRON', 'cron' );
304
+
305
// ===================
306
// = Backups Labels =
307
// ===================
312
// ===============
313
define( 'AI1WM_SITES_LINKS', 'ai1wm_sites_links' );
314
315
// ===============
316
// = Updater Key =
317
// ===============
379
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
380
}
381
382
// ================
383
// = Backups Path =
384
// ================
387
// ==========================
388
// = Storage index.php File =
389
// ==========================
390
+ define( 'AI1WM_STORAGE_INDEX_PHP', AI1WM_STORAGE_PATH . DIRECTORY_SEPARATOR . 'index.php' );
391
+
392
+ // ===========================
393
+ // = Storage index.html File =
394
+ // ===========================
395
+ define( 'AI1WM_STORAGE_INDEX_HTML', AI1WM_STORAGE_PATH . DIRECTORY_SEPARATOR . 'index.html' );
396
397
// ==========================
398
// = Backups index.php File =
399
// ==========================
400
+ define( 'AI1WM_BACKUPS_INDEX_PHP', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'index.php' );
401
+
402
+ // ===========================
403
+ // = Backups index.html File =
404
+ // ===========================
405
+ define( 'AI1WM_BACKUPS_INDEX_HTML', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'index.html' );
406
407
// ==========================
408
// = Backups .htaccess File =
deprecated.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
exceptions.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
functions.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -371,7 +371,7 @@ function ai1wm_archive_file( $blog_id = null ) {
371
$name[] = date( 'His' );
372
373
// Add unique identifier
374
- $name[] = rand( 100, 999 );
375
376
return sprintf( '%s.wpress', strtolower( implode( '-', $name ) ) );
377
}
@@ -520,6 +520,37 @@ function ai1wm_archive_share( $blog_id = null ) {
520
return strtolower( implode( '-', $name ) );
521
}
522
523
/**
524
* Get storage folder name
525
*
@@ -540,87 +571,87 @@ function ai1wm_main_site( $blog_id = null ) {
540
}
541
542
/**
543
- * Get sites absolute path by blog ID
544
*
545
* @param integer $blog_id Blog ID
546
* @return string
547
*/
548
- function ai1wm_sites_path( $blog_id = null ) {
549
if ( ai1wm_main_site( $blog_id ) ) {
550
- return AI1WM_UPLOADS_PATH;
551
}
552
553
- return AI1WM_SITES_PATH . DIRECTORY_SEPARATOR . $blog_id;
554
}
555
556
/**
557
- * Get files absolute path by blog ID
558
*
559
* @param integer $blog_id Blog ID
560
* @return string
561
*/
562
- function ai1wm_files_path( $blog_id = null ) {
563
if ( ai1wm_main_site( $blog_id ) ) {
564
- return AI1WM_UPLOADS_PATH;
565
}
566
567
- return AI1WM_BLOGSDIR_PATH . DIRECTORY_SEPARATOR . $blog_id . DIRECTORY_SEPARATOR . 'files';
568
}
569
570
/**
571
- * Get blogs.dir absolute path by blog ID
572
*
573
* @param integer $blog_id Blog ID
574
* @return string
575
*/
576
- function ai1wm_blogsdir_path( $blog_id = null ) {
577
if ( ai1wm_main_site( $blog_id ) ) {
578
- return '/wp-content/uploads/';
579
}
580
581
- return "/wp-content/blogs.dir/{$blog_id}/files/";
582
}
583
584
/**
585
- * Get blogs.dir URL by blog ID
586
*
587
* @param integer $blog_id Blog ID
588
* @return string
589
*/
590
- function ai1wm_blogsdir_url( $blog_id = null ) {
591
if ( ai1wm_main_site( $blog_id ) ) {
592
- return get_site_url( $blog_id, '/wp-content/uploads/' );
593
}
594
595
- return get_site_url( $blog_id, "/wp-content/blogs.dir/{$blog_id}/files/" );
596
}
597
598
/**
599
- * Get uploads absolute path by blog ID
600
*
601
* @param integer $blog_id Blog ID
602
* @return string
603
*/
604
- function ai1wm_uploads_path( $blog_id = null ) {
605
if ( ai1wm_main_site( $blog_id ) ) {
606
return '/wp-content/uploads/';
607
}
608
609
- return "/wp-content/uploads/sites/{$blog_id}/";
610
}
611
612
/**
613
- * Get uploads URL by blog ID
614
*
615
* @param integer $blog_id Blog ID
616
* @return string
617
*/
618
- function ai1wm_uploads_url( $blog_id = null ) {
619
if ( ai1wm_main_site( $blog_id ) ) {
620
- return get_site_url( $blog_id, '/wp-content/uploads/' );
621
}
622
623
- return get_site_url( $blog_id, "/wp-content/uploads/sites/{$blog_id}/" );
624
}
625
626
/**
@@ -630,7 +661,6 @@ function ai1wm_uploads_url( $blog_id = null ) {
630
* @return string
631
*/
632
function ai1wm_servmask_prefix( $blog_id = null ) {
633
- // Set base table prefix
634
if ( ai1wm_main_site( $blog_id ) ) {
635
return AI1WM_TABLE_PREFIX;
636
}
@@ -1172,6 +1202,19 @@ function ai1wm_deactivate_revolution_slider( $basename ) {
1172
return false;
1173
}
1174
1175
/**
1176
* Discover plugin basename
1177
*
@@ -1258,6 +1301,7 @@ function ai1wm_cache_flush() {
1258
// Remove WP options filter
1259
remove_all_filters( 'sanitize_option_home' );
1260
remove_all_filters( 'sanitize_option_siteurl' );
1261
}
1262
1263
/**
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
371
$name[] = date( 'His' );
372
373
// Add unique identifier
374
+ $name[] = ai1wm_generate_random_string( 6, false );
375
376
return sprintf( '%s.wpress', strtolower( implode( '-', $name ) ) );
377
}
520
return strtolower( implode( '-', $name ) );
521
}
522
523
+ /**
524
+ * Generate random string
525
+ *
526
+ * @param integer $length String length
527
+ * @param boolean $mixed_chars Whether to include mixed characters
528
+ * @param boolean $special_chars Whether to include special characters
529
+ * @param boolean $extra_special_chars Whether to include extra special characters
530
+ * @return string
531
+ */
532
+ function ai1wm_generate_random_string( $length = 12, $mixed_chars = true, $special_chars = false, $extra_special_chars = false ) {
533
+ $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
534
+ if ( $mixed_chars ) {
535
+ $chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
536
+ }
537
+
538
+ if ( $special_chars ) {
539
+ $chars .= '!@#$%^&*()';
540
+ }
541
+
542
+ if ( $extra_special_chars ) {
543
+ $chars .= '-_ []{}<>~`+=,.;:/?|';
544
+ }
545
+
546
+ $str = '';
547
+ for ( $i = 0; $i < $length; $i++ ) {
548
+ $str .= substr( $chars, wp_rand( 0, strlen( $chars ) - 1 ), 1 );
549
+ }
550
+
551
+ return $str;
552
+ }
553
+
554
/**
555
* Get storage folder name
556
*
571
}
572
573
/**
574
+ * Get files absolute path by blog ID
575
*
576
* @param integer $blog_id Blog ID
577
* @return string
578
*/
579
+ function ai1wm_files_path( $blog_id = null ) {
580
if ( ai1wm_main_site( $blog_id ) ) {
581
+ return 'uploads';
582
}
583
584
+ return 'blogs.dir' . DIRECTORY_SEPARATOR . $blog_id . DIRECTORY_SEPARATOR . 'files';
585
}
586
587
/**
588
+ * Get blogs.dir absolute path by blog ID
589
*
590
* @param integer $blog_id Blog ID
591
* @return string
592
*/
593
+ function ai1wm_blogsdir_path( $blog_id = null ) {
594
if ( ai1wm_main_site( $blog_id ) ) {
595
+ return 'uploads';
596
}
597
598
+ return 'blogs.dir' . DIRECTORY_SEPARATOR . $blog_id;
599
}
600
601
/**
602
+ * Get sites absolute path by blog ID
603
*
604
* @param integer $blog_id Blog ID
605
* @return string
606
*/
607
+ function ai1wm_sites_path( $blog_id = null ) {
608
if ( ai1wm_main_site( $blog_id ) ) {
609
+ return 'uploads';
610
}
611
612
+ return 'uploads' . DIRECTORY_SEPARATOR . 'sites' . DIRECTORY_SEPARATOR . $blog_id;
613
}
614
615
/**
616
+ * Get files URL by blog ID
617
*
618
* @param integer $blog_id Blog ID
619
* @return string
620
*/
621
+ function ai1wm_files_url( $blog_id = null ) {
622
if ( ai1wm_main_site( $blog_id ) ) {
623
+ return '/wp-content/uploads/';
624
}
625
626
+ return "/wp-content/blogs.dir/{$blog_id}/files/";
627
}
628
629
/**
630
+ * Get blogs.dir URL by blog ID
631
*
632
* @param integer $blog_id Blog ID
633
* @return string
634
*/
635
+ function ai1wm_blogsdir_url( $blog_id = null ) {
636
if ( ai1wm_main_site( $blog_id ) ) {
637
return '/wp-content/uploads/';
638
}
639
640
+ return "/wp-content/blogs.dir/{$blog_id}/";
641
}
642
643
/**
644
+ * Get sites URL by blog ID
645
*
646
* @param integer $blog_id Blog ID
647
* @return string
648
*/
649
+ function ai1wm_sites_url( $blog_id = null ) {
650
if ( ai1wm_main_site( $blog_id ) ) {
651
+ return '/wp-content/uploads/';
652
}
653
654
+ return "/wp-content/uploads/sites/{$blog_id}/";
655
}
656
657
/**
661
* @return string
662
*/
663
function ai1wm_servmask_prefix( $blog_id = null ) {
664
if ( ai1wm_main_site( $blog_id ) ) {
665
return AI1WM_TABLE_PREFIX;
666
}
1202
return false;
1203
}
1204
1205
+ /**
1206
+ * Initial DB version
1207
+ *
1208
+ * @return boolean
1209
+ */
1210
+ function ai1wm_initial_db_version() {
1211
+ if ( ! get_option( AI1WM_DB_VERSION ) ) {
1212
+ return update_option( AI1WM_DB_VERSION, get_option( AI1WM_INITIAL_DB_VERSION ) );
1213
+ }
1214
+
1215
+ return false;
1216
+ }
1217
+
1218
/**
1219
* Discover plugin basename
1220
*
1301
// Remove WP options filter
1302
remove_all_filters( 'sanitize_option_home' );
1303
remove_all_filters( 'sanitize_option_siteurl' );
1304
+ remove_all_filters( 'default_site_option_ms_files_rewriting' );
1305
}
1306
1307
/**
lib/controller/class-ai1wm-backups-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/controller/class-ai1wm-export-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/controller/class-ai1wm-feedback-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/controller/class-ai1wm-import-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/controller/class-ai1wm-main-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -51,7 +51,8 @@ class Ai1wm_Main_Controller {
51
if ( is_dir( AI1WM_BACKUPS_PATH ) ) {
52
$this->create_backups_htaccess( AI1WM_BACKUPS_HTACCESS );
53
$this->create_backups_webconfig( AI1WM_BACKUPS_WEBCONFIG );
54
- $this->create_backups_index( AI1WM_BACKUPS_INDEX );
55
}
56
57
if ( extension_loaded( 'litespeed' ) ) {
@@ -182,12 +183,8 @@ class Ai1wm_Main_Controller {
182
* @return void
183
*/
184
public function ai1wm_buttons() {
185
- // Add export buttons
186
add_filter( 'ai1wm_export_buttons', 'Ai1wm_Export_Controller::buttons' );
187
-
188
- // Add import buttons
189
add_filter( 'ai1wm_import_buttons', 'Ai1wm_Import_Controller::buttons' );
190
-
191
add_filter( 'ai1wm_pro', 'Ai1wm_Import_Controller::pro', 10 );
192
}
193
@@ -214,6 +211,9 @@ class Ai1wm_Main_Controller {
214
// Add automatic plugins update
215
add_action( 'wp_maybe_auto_update', 'Ai1wm_Updater_Controller::check_for_updates' );
216
217
// Add HTTP export headers
218
add_filter( 'ai1wm_http_export_headers', 'Ai1wm_Export_Controller::http_export_headers' );
219
@@ -267,13 +267,23 @@ class Ai1wm_Main_Controller {
267
}
268
269
// Check if index.php is created in storage folder
270
- if ( ! is_file( AI1WM_STORAGE_INDEX ) ) {
271
- $this->create_storage_index( AI1WM_STORAGE_INDEX );
272
}
273
274
// Check if index.php is created in backups folder
275
- if ( ! is_file( AI1WM_BACKUPS_INDEX ) ) {
276
- $this->create_backups_index( AI1WM_BACKUPS_INDEX );
277
}
278
279
// Check if .htaccess is created in backups folder
@@ -294,7 +304,7 @@ class Ai1wm_Main_Controller {
294
*/
295
public function create_secret_key() {
296
if ( ! get_option( AI1WM_SECRET_KEY ) ) {
297
- update_option( AI1WM_SECRET_KEY, wp_generate_password( 12, false ) );
298
}
299
}
300
@@ -370,12 +380,28 @@ class Ai1wm_Main_Controller {
370
* @param string Path to file
371
* @return void
372
*/
373
- public function create_storage_index( $path ) {
374
if ( ! Ai1wm_File_Index::create( $path ) ) {
375
if ( is_multisite() ) {
376
- return add_action( 'network_admin_notices', array( $this, 'storage_index_notice' ) );
377
} else {
378
- return add_action( 'admin_notices', array( $this, 'storage_index_notice' ) );
379
}
380
}
381
}
@@ -418,12 +444,28 @@ class Ai1wm_Main_Controller {
418
* @param string Path to file
419
* @return void
420
*/
421
- public function create_backups_index( $path ) {
422
if ( ! Ai1wm_File_Index::create( $path ) ) {
423
if ( is_multisite() ) {
424
- return add_action( 'network_admin_notices', array( $this, 'backups_index_notice' ) );
425
} else {
426
- return add_action( 'admin_notices', array( $this, 'backups_index_notice' ) );
427
}
428
}
429
}
@@ -463,12 +505,21 @@ class Ai1wm_Main_Controller {
463
}
464
465
/**
466
- * Display notice for index file in storage directory
467
*
468
* @return void
469
*/
470
- public function storage_index_notice() {
471
- Ai1wm_Template::render( 'main/storage-index-notice' );
472
}
473
474
/**
@@ -499,12 +550,21 @@ class Ai1wm_Main_Controller {
499
}
500
501
/**
502
- * Display notice for index file in backups directory
503
*
504
* @return void
505
*/
506
- public function backups_index_notice() {
507
- Ai1wm_Template::render( 'main/backups-index-notice' );
508
}
509
510
/**
@@ -816,7 +876,7 @@ class Ai1wm_Main_Controller {
816
'ai1wm_import',
817
'ai1wm_disk_space',
818
array(
819
- 'free' => disk_free_space( AI1WM_STORAGE_PATH ),
820
'factor' => AI1WM_DISK_SPACE_FACTOR,
821
'extra' => AI1WM_DISK_SPACE_EXTRA,
822
)
@@ -990,7 +1050,7 @@ class Ai1wm_Main_Controller {
990
'ai1wm_backups',
991
'ai1wm_disk_space',
992
array(
993
- 'free' => disk_free_space( AI1WM_STORAGE_PATH ),
994
'factor' => AI1WM_DISK_SPACE_FACTOR,
995
'extra' => AI1WM_DISK_SPACE_EXTRA,
996
)
@@ -1107,7 +1167,6 @@ class Ai1wm_Main_Controller {
1107
* @return void
1108
*/
1109
public function init() {
1110
-
1111
// Set username
1112
if ( isset( $_SERVER['PHP_AUTH_USER'] ) ) {
1113
update_option( AI1WM_AUTH_USER, $_SERVER['PHP_AUTH_USER'] );
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
51
if ( is_dir( AI1WM_BACKUPS_PATH ) ) {
52
$this->create_backups_htaccess( AI1WM_BACKUPS_HTACCESS );
53
$this->create_backups_webconfig( AI1WM_BACKUPS_WEBCONFIG );
54
+ $this->create_backups_index_php( AI1WM_BACKUPS_INDEX_PHP );
55
+ $this->create_backups_index_html( AI1WM_BACKUPS_INDEX_HTML );
56
}
57
58
if ( extension_loaded( 'litespeed' ) ) {
183
* @return void
184
*/
185
public function ai1wm_buttons() {
186
add_filter( 'ai1wm_export_buttons', 'Ai1wm_Export_Controller::buttons' );
187
add_filter( 'ai1wm_import_buttons', 'Ai1wm_Import_Controller::buttons' );
188
add_filter( 'ai1wm_pro', 'Ai1wm_Import_Controller::pro', 10 );
189
}
190
211
// Add automatic plugins update
212
add_action( 'wp_maybe_auto_update', 'Ai1wm_Updater_Controller::check_for_updates' );
213
214
+ // Add updater process complete
215
+ add_action( 'upgrader_process_complete', 'Ai1wm_Updater_Controller::upgrader_process_complete', 10, 2 );
216
+
217
// Add HTTP export headers
218
add_filter( 'ai1wm_http_export_headers', 'Ai1wm_Export_Controller::http_export_headers' );
219
267
}
268
269
// Check if index.php is created in storage folder
270
+ if ( ! is_file( AI1WM_STORAGE_INDEX_PHP ) ) {
271
+ $this->create_storage_index_php( AI1WM_STORAGE_INDEX_PHP );
272
+ }
273
+
274
+ // Check if index.html is created in storage folder
275
+ if ( ! is_file( AI1WM_STORAGE_INDEX_HTML ) ) {
276
+ $this->create_storage_index_html( AI1WM_STORAGE_INDEX_HTML );
277
}
278
279
// Check if index.php is created in backups folder
280
+ if ( ! is_file( AI1WM_BACKUPS_INDEX_PHP ) ) {
281
+ $this->create_backups_index_php( AI1WM_BACKUPS_INDEX_PHP );
282
+ }
283
+
284
+ // Check if index.html is created in backups folder
285
+ if ( ! is_file( AI1WM_BACKUPS_INDEX_HTML ) ) {
286
+ $this->create_backups_index_html( AI1WM_BACKUPS_INDEX_HTML );
287
}
288
289
// Check if .htaccess is created in backups folder
304
*/
305
public function create_secret_key() {
306
if ( ! get_option( AI1WM_SECRET_KEY ) ) {
307
+ update_option( AI1WM_SECRET_KEY, ai1wm_generate_random_string( 12 ) );
308
}
309
}
310
380
* @param string Path to file
381
* @return void
382
*/
383
+ public function create_storage_index_php( $path ) {
384
+ if ( ! Ai1wm_File_Index::create( $path ) ) {
385
+ if ( is_multisite() ) {
386
+ return add_action( 'network_admin_notices', array( $this, 'storage_index_php_notice' ) );
387
+ } else {
388
+ return add_action( 'admin_notices', array( $this, 'storage_index_php_notice' ) );
389
+ }
390
+ }
391
+ }
392
+
393
+ /**
394
+ * Create storage index.html file
395
+ *
396
+ * @param string Path to file
397
+ * @return void
398
+ */
399
+ public function create_storage_index_html( $path ) {
400
if ( ! Ai1wm_File_Index::create( $path ) ) {
401
if ( is_multisite() ) {
402
+ return add_action( 'network_admin_notices', array( $this, 'storage_index_html_notice' ) );
403
} else {
404
+ return add_action( 'admin_notices', array( $this, 'storage_index_html_notice' ) );
405
}
406
}
407
}
444
* @param string Path to file
445
* @return void
446
*/
447
+ public function create_backups_index_php( $path ) {
448
+ if ( ! Ai1wm_File_Index::create( $path ) ) {
449
+ if ( is_multisite() ) {
450
+ return add_action( 'network_admin_notices', array( $this, 'backups_index_php_notice' ) );
451
+ } else {
452
+ return add_action( 'admin_notices', array( $this, 'backups_index_php_notice' ) );
453
+ }
454
+ }
455
+ }
456
+
457
+ /**
458
+ * Create backups index.html file
459
+ *
460
+ * @param string Path to file
461
+ * @return void
462
+ */
463
+ public function create_backups_index_html( $path ) {
464
if ( ! Ai1wm_File_Index::create( $path ) ) {
465
if ( is_multisite() ) {
466
+ return add_action( 'network_admin_notices', array( $this, 'backups_index_html_notice' ) );
467
} else {
468
+ return add_action( 'admin_notices', array( $this, 'backups_index_html_notice' ) );
469
}
470
}
471
}
505
}
506
507
/**
508
+ * Display notice for index.php file in storage directory
509
+ *
510
+ * @return void
511
+ */
512
+ public function storage_index_php_notice() {
513
+ Ai1wm_Template::render( 'main/storage-index-php-notice' );
514
+ }
515
+
516
+ /**
517
+ * Display notice for index.html file in storage directory
518
*
519
* @return void
520
*/
521
+ public function storage_index_html_notice() {
522
+ Ai1wm_Template::render( 'main/storage-index-html-notice' );
523
}
524
525
/**
550
}
551
552
/**
553
+ * Display notice for index.php file in backups directory
554
*
555
* @return void
556
*/
557
+ public function backups_index_php_notice() {
558
+ Ai1wm_Template::render( 'main/backups-index-php-notice' );
559
+ }
560
+
561
+ /**
562
+ * Display notice for index.html file in backups directory
563
+ *
564
+ * @return void
565
+ */
566
+ public function backups_index_html_notice() {
567
+ Ai1wm_Template::render( 'main/backups-index-html-notice' );
568
}
569
570
/**
876
'ai1wm_import',
877
'ai1wm_disk_space',
878
array(
879
+ 'free' => @disk_free_space( AI1WM_STORAGE_PATH ),
880
'factor' => AI1WM_DISK_SPACE_FACTOR,
881
'extra' => AI1WM_DISK_SPACE_EXTRA,
882
)
1050
'ai1wm_backups',
1051
'ai1wm_disk_space',
1052
array(
1053
+ 'free' => @disk_free_space( AI1WM_STORAGE_PATH ),
1054
'factor' => AI1WM_DISK_SPACE_FACTOR,
1055
'extra' => AI1WM_DISK_SPACE_EXTRA,
1056
)
1167
* @return void
1168
*/
1169
public function init() {
1170
// Set username
1171
if ( isset( $_SERVER['PHP_AUTH_USER'] ) ) {
1172
update_option( AI1WM_AUTH_USER, $_SERVER['PHP_AUTH_USER'] );
lib/controller/class-ai1wm-report-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/controller/class-ai1wm-status-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/controller/class-ai1wm-updater-controller.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -85,4 +85,40 @@ class Ai1wm_Updater_Controller {
85
}
86
}
87
}
88
}
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
85
}
86
}
87
}
88
+
89
+ public static function upgrader_process_complete( $upgrader_object, $options ) {
90
+ if ( ! isset( $options['action'], $options['type'], $options['plugins'] ) ) {
91
+ return;
92
+ }
93
+
94
+ if ( $options['action'] !== 'update' ) {
95
+ return;
96
+ }
97
+
98
+ if ( $options['type'] !== 'plugin' ) {
99
+ return;
100
+ }
101
+
102
+ // Check if base plugin is updated
103
+ if ( ! in_array( AI1WM_PLUGIN_BASENAME, $options['plugins'] ) ) {
104
+ return;
105
+ }
106
+
107
+ // Check if storage folder is created
108
+ if ( ! is_dir( AI1WM_STORAGE_PATH ) ) {
109
+ Ai1wm_Directory::create( AI1WM_STORAGE_PATH );
110
+ }
111
+
112
+ // Check if backups folder is created
113
+ if ( ! is_dir( AI1WM_BACKUPS_PATH ) ) {
114
+ Ai1wm_Directory::create( AI1WM_BACKUPS_PATH );
115
+ }
116
+
117
+ Ai1wm_File_Index::create( AI1WM_STORAGE_INDEX_PHP );
118
+ Ai1wm_File_Index::create( AI1WM_STORAGE_INDEX_HTML );
119
+ Ai1wm_File_Index::create( AI1WM_BACKUPS_INDEX_PHP );
120
+ Ai1wm_File_Index::create( AI1WM_BACKUPS_INDEX_HTML );
121
+ Ai1wm_File_Htaccess::create( AI1WM_BACKUPS_HTACCESS );
122
+ Ai1wm_File_Webconfig::create( AI1WM_BACKUPS_WEBCONFIG );
123
+ }
124
}
lib/model/class-ai1wm-backups.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-compatibility.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-deprecated.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-extensions.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -201,7 +201,7 @@ class Ai1wm_Extensions {
201
'about' => AI1WMME_PLUGIN_ABOUT,
202
'basename' => AI1WMME_PLUGIN_BASENAME,
203
'version' => AI1WMME_VERSION,
204
- 'requires' => '3.82',
205
'short' => AI1WMME_PLUGIN_SHORT,
206
);
207
}
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
201
'about' => AI1WMME_PLUGIN_ABOUT,
202
'basename' => AI1WMME_PLUGIN_BASENAME,
203
'version' => AI1WMME_VERSION,
204
+ 'requires' => '3.88',
205
'short' => AI1WMME_PLUGIN_SHORT,
206
);
207
}
lib/model/class-ai1wm-feedback.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-handler.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-log.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-message.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-notification.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-report.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-status.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-template.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/class-ai1wm-updater.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -176,28 +176,11 @@ class Ai1wm_Updater {
176
// Get updater URL
177
$updater_url = add_query_arg( array( 'ai1wm_check_for_updates' => 1, 'ai1wm_nonce' => wp_create_nonce( 'ai1wm_check_for_updates' ) ), network_admin_url( 'plugins.php' ) );
178
179
- // Check Purchase ID
180
if ( get_option( $extension['key'] ) ) {
181
-
182
- // Add "Check for updates" link
183
- $links[] = Ai1wm_Template::get_content(
184
- 'updater/check',
185
- array(
186
- 'url' => $updater_url,
187
- )
188
- );
189
-
190
} else {
191
-
192
- // Add modal
193
- $links[] = Ai1wm_Template::get_content(
194
- 'updater/modal',
195
- array(
196
- 'url' => $updater_url,
197
- 'modal' => $modal_index,
198
- )
199
- );
200
-
201
}
202
}
203
}
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
176
// Get updater URL
177
$updater_url = add_query_arg( array( 'ai1wm_check_for_updates' => 1, 'ai1wm_nonce' => wp_create_nonce( 'ai1wm_check_for_updates' ) ), network_admin_url( 'plugins.php' ) );
178
179
+ // Check purchase ID
180
if ( get_option( $extension['key'] ) ) {
181
+ $links[] = Ai1wm_Template::get_content( 'updater/check', array( 'url' => $updater_url ) );
182
} else {
183
+ $links[] = Ai1wm_Template::get_content( 'updater/modal', array( 'url' => $updater_url, 'modal' => $modal_index ) );
184
}
185
}
186
}
lib/model/export/class-ai1wm-export-archive.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-clean.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-compatibility.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-config-file.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-config.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-content.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-database-file.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-database.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-download.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-enumerate.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/export/class-ai1wm-export-init.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-blogs.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-clean.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-compatibility.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-confirm.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-content.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -101,18 +101,26 @@ class Ai1wm_Import_Content {
101
foreach ( $blogs as $blog ) {
102
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === false ) {
103
if ( defined( 'UPLOADBLOGSDIR' ) ) {
104
- // Old sites dir style
105
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
106
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
107
108
// New sites dir style
109
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
110
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
111
} else {
112
- // Old sites dir style
113
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
114
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
115
116
// New sites dir style
117
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
118
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
@@ -124,18 +132,26 @@ class Ai1wm_Import_Content {
124
foreach ( $blogs as $blog ) {
125
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === true ) {
126
if ( defined( 'UPLOADBLOGSDIR' ) ) {
127
- // Old sites dir style
128
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
129
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
130
131
// New sites dir style
132
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
133
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
134
} else {
135
- // Old sites dir style
136
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
137
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
138
139
// New sites dir style
140
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
141
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
101
foreach ( $blogs as $blog ) {
102
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === false ) {
103
if ( defined( 'UPLOADBLOGSDIR' ) ) {
104
+ // Old files dir style
105
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
106
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
107
108
+ // Old blogs.dir style
109
+ $old_paths[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
110
+ $new_paths[] = ai1wm_blogsdir_path( $blog['New']['BlogID'] );
111
+
112
// New sites dir style
113
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
114
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
115
} else {
116
+ // Old files dir style
117
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
118
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
119
120
+ // Old blogs.dir style
121
+ $old_paths[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
122
+ $new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
123
+
124
// New sites dir style
125
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
126
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
132
foreach ( $blogs as $blog ) {
133
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === true ) {
134
if ( defined( 'UPLOADBLOGSDIR' ) ) {
135
+ // Old files dir style
136
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
137
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
138
139
+ // Old blogs.dir style
140
+ $old_paths[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
141
+ $new_paths[] = ai1wm_blogsdir_path( $blog['New']['BlogID'] );
142
+
143
// New sites dir style
144
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
145
$new_paths[] = ai1wm_files_path( $blog['New']['BlogID'] );
146
} else {
147
+ // Old files dir style
148
$old_paths[] = ai1wm_files_path( $blog['Old']['BlogID'] );
149
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
150
151
+ // Old blogs.dir style
152
+ $old_paths[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
153
+ $new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
154
+
155
// New sites dir style
156
$old_paths[] = ai1wm_sites_path( $blog['Old']['BlogID'] );
157
$new_paths[] = ai1wm_sites_path( $blog['New']['BlogID'] );
lib/model/import/class-ai1wm-import-database.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -83,140 +83,116 @@ class Ai1wm_Import_Database {
83
// Get Blog URLs
84
foreach ( $blogs as $blog ) {
85
86
- $home_urls = array();
87
-
88
- // Add Home URL
89
- if ( ! empty( $blog['Old']['HomeURL'] ) ) {
90
- $home_urls[] = $blog['Old']['HomeURL'];
91
}
92
93
- // Add Internal Home URL
94
- if ( ! empty( $blog['Old']['InternalHomeURL'] ) ) {
95
- if ( parse_url( $blog['Old']['InternalHomeURL'], PHP_URL_SCHEME ) && parse_url( $blog['Old']['InternalHomeURL'], PHP_URL_HOST ) ) {
96
- $home_urls[] = $blog['Old']['InternalHomeURL'];
97
- }
98
}
99
100
- // Get Home URL
101
- foreach ( $home_urls as $home_url ) {
102
103
- // Get blogs dir Upload Path
104
- if ( ! in_array( sprintf( "'%s'", trim( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ) ), $old_replace_raw_values ) ) {
105
- $old_replace_raw_values[] = sprintf( "'%s'", trim( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ) );
106
- $new_replace_raw_values[] = sprintf( "'%s'", get_option( 'upload_path' ) );
107
}
108
109
- // Get sites dir Upload Path
110
- if ( ! in_array( sprintf( "'%s'", trim( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ) ), $old_replace_raw_values ) ) {
111
- $old_replace_raw_values[] = sprintf( "'%s'", trim( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ) );
112
- $new_replace_raw_values[] = sprintf( "'%s'", get_option( 'upload_path' ) );
113
}
114
115
- // Handle old and new sites dir style
116
- if ( defined( 'UPLOADBLOGSDIR' ) ) {
117
-
118
- // Get plain Upload Path
119
- if ( ! in_array( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
120
- $old_replace_values[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
121
- $new_replace_values[] = ai1wm_blogsdir_path( $blog['New']['BlogID'] );
122
- }
123
-
124
- // Get URL encoded Upload Path
125
- if ( ! in_array( urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
126
- $old_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) );
127
- $new_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['New']['BlogID'] ) );
128
- }
129
-
130
- // Get URL raw encoded Upload Path
131
- if ( ! in_array( rawurlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
132
- $old_replace_values[] = rawurlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) );
133
- $new_replace_values[] = rawurlencode( ai1wm_blogsdir_path( $blog['New']['BlogID'] ) );
134
- }
135
-
136
- // Get JSON escaped Upload Path
137
- if ( ! in_array( addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
138
- $old_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' );
139
- $new_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['New']['BlogID'] ), '/' );
140
- }
141
142
- // Get plain Upload Path
143
- if ( ! in_array( ai1wm_uploads_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
144
- $old_replace_values[] = ai1wm_uploads_path( $blog['Old']['BlogID'] );
145
- $new_replace_values[] = ai1wm_blogsdir_path( $blog['New']['BlogID'] );
146
- }
147
148
- // Get URL encoded Upload Path
149
- if ( ! in_array( urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
150
- $old_replace_values[] = urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) );
151
- $new_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['New']['BlogID'] ) );
152
- }
153
154
- // Get URL raw encoded Upload Path
155
- if ( ! in_array( rawurlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
156
- $old_replace_values[] = rawurlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) );
157
- $new_replace_values[] = rawurlencode( ai1wm_blogsdir_path( $blog['New']['BlogID'] ) );
158
- }
159
160
- // Get JSON escaped Upload Path
161
- if ( ! in_array( addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
162
- $old_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' );
163
- $new_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['New']['BlogID'] ), '/' );
164
- }
165
- } else {
166
167
- // Get files dir Upload URL
168
- if ( ! in_array( sprintf( '%s/%s/', untrailingslashit( $home_url ), 'files' ), $old_replace_values ) ) {
169
- $old_replace_values[] = sprintf( '%s/%s/', untrailingslashit( $home_url ), 'files' );
170
- $new_replace_values[] = ai1wm_uploads_url( $blog['New']['BlogID'] );
171
- }
172
173
- // Get plain Upload Path
174
- if ( ! in_array( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
175
- $old_replace_values[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
176
- $new_replace_values[] = ai1wm_uploads_path( $blog['New']['BlogID'] );
177
- }
178
179
- // Get URL encoded Upload Path
180
- if ( ! in_array( urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
181
- $old_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) );
182
- $new_replace_values[] = urlencode( ai1wm_uploads_path( $blog['New']['BlogID'] ) );
183
- }
184
185
- // Get URL raw encoded Upload Path
186
- if ( ! in_array( rawurlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
187
- $old_replace_values[] = rawurlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) );
188
- $new_replace_values[] = rawurlencode( ai1wm_uploads_path( $blog['New']['BlogID'] ) );
189
- }
190
191
- // Get JSON escaped Upload Path
192
- if ( ! in_array( addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
193
- $old_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' );
194
- $new_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['New']['BlogID'] ), '/' );
195
- }
196
197
- // Get plain Upload Path
198
- if ( ! in_array( ai1wm_uploads_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
199
- $old_replace_values[] = ai1wm_uploads_path( $blog['Old']['BlogID'] );
200
- $new_replace_values[] = ai1wm_uploads_path( $blog['New']['BlogID'] );
201
- }
202
203
- // Get URL encoded Upload Path
204
- if ( ! in_array( urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
205
- $old_replace_values[] = urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) );
206
- $new_replace_values[] = urlencode( ai1wm_uploads_path( $blog['New']['BlogID'] ) );
207
- }
208
209
- // Get URL raw encoded Upload Path
210
- if ( ! in_array( rawurlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
211
- $old_replace_values[] = rawurlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) );
212
- $new_replace_values[] = rawurlencode( ai1wm_uploads_path( $blog['New']['BlogID'] ) );
213
- }
214
215
- // Get JSON escaped Upload Path
216
- if ( ! in_array( addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
217
- $old_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' );
218
- $new_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['New']['BlogID'] ), '/' );
219
- }
220
}
221
}
222
@@ -283,6 +259,34 @@ class Ai1wm_Import_Database {
283
// Replace Site URL scheme
284
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
285
286
// Add plain Site URL
287
if ( ! in_array( ai1wm_url_scheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
288
$old_replace_values[] = ai1wm_url_scheme( $url, $old_schemes[ $i ] );
@@ -381,6 +385,34 @@ class Ai1wm_Import_Database {
381
// Replace Home URL scheme
382
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
383
384
// Add plain Home URL
385
if ( ! in_array( ai1wm_url_scheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
386
$old_replace_values[] = ai1wm_url_scheme( $url, $old_schemes[ $i ] );
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
83
// Get Blog URLs
84
foreach ( $blogs as $blog ) {
85
86
+ // Get files dir Upload Path
87
+ if ( ! in_array( sprintf( "'%s'", trim( ai1wm_files_url( $blog['Old']['BlogID'] ), '/' ) ), $old_replace_raw_values ) ) {
88
+ $old_replace_raw_values[] = sprintf( "'%s'", trim( ai1wm_files_url( $blog['Old']['BlogID'] ), '/' ) );
89
+ $new_replace_raw_values[] = sprintf( "'%s'", get_option( 'upload_path' ) );
90
}
91
92
+ // Get sites dir Upload Path
93
+ if ( ! in_array( sprintf( "'%s'", trim( ai1wm_sites_url( $blog['Old']['BlogID'] ), '/' ) ), $old_replace_raw_values ) ) {
94
+ $old_replace_raw_values[] = sprintf( "'%s'", trim( ai1wm_sites_url( $blog['Old']['BlogID'] ), '/' ) );
95
+ $new_replace_raw_values[] = sprintf( "'%s'", get_option( 'upload_path' ) );
96
}
97
98
+ // Handle old and new sites dir style
99
+ if ( defined( 'UPLOADBLOGSDIR' ) ) {
100
101
+ // Get plain Upload Path
102
+ if ( ! in_array( ai1wm_files_url( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
103
+ $old_replace_values[] = ai1wm_files_url( $blog['Old']['BlogID'] );
104
+ $new_replace_values[] = ai1wm_files_url( $blog['New']['BlogID'] );
105
}
106
107
+ // Get URL encoded Upload Path
108
+ if ( ! in_array( urlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
109
+ $old_replace_values[] = urlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) );
110
+ $new_replace_values[] = urlencode( ai1wm_files_url( $blog['New']['BlogID'] ) );
111
}
112
113
+ // Get URL raw encoded Upload Path
114
+ if ( ! in_array( rawurlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
115
+ $old_replace_values[] = rawurlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) );
116
+ $new_replace_values[] = rawurlencode( ai1wm_files_url( $blog['New']['BlogID'] ) );
117
+ }
118
119
+ // Get JSON escaped Upload Path
120
+ if ( ! in_array( addcslashes( ai1wm_files_url( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
121
+ $old_replace_values[] = addcslashes( ai1wm_files_url( $blog['Old']['BlogID'] ), '/' );
122
+ $new_replace_values[] = addcslashes( ai1wm_files_url( $blog['New']['BlogID'] ), '/' );
123
+ }
124
125
+ // Get plain Upload Path
126
+ if ( ! in_array( ai1wm_sites_url( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
127
+ $old_replace_values[] = ai1wm_sites_url( $blog['Old']['BlogID'] );
128
+ $new_replace_values[] = ai1wm_files_url( $blog['New']['BlogID'] );
129
+ }
130
131
+ // Get URL encoded Upload Path
132
+ if ( ! in_array( urlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
133
+ $old_replace_values[] = urlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) );
134
+ $new_replace_values[] = urlencode( ai1wm_files_url( $blog['New']['BlogID'] ) );
135
+ }
136
137
+ // Get URL raw encoded Upload Path
138
+ if ( ! in_array( rawurlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
139
+ $old_replace_values[] = rawurlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) );
140
+ $new_replace_values[] = rawurlencode( ai1wm_files_url( $blog['New']['BlogID'] ) );
141
+ }
142
143
+ // Get JSON escaped Upload Path
144
+ if ( ! in_array( addcslashes( ai1wm_sites_url( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
145
+ $old_replace_values[] = addcslashes( ai1wm_sites_url( $blog['Old']['BlogID'] ), '/' );
146
+ $new_replace_values[] = addcslashes( ai1wm_files_url( $blog['New']['BlogID'] ), '/' );
147
+ }
148
+ } else {
149
150
+ // Get plain Upload Path
151
+ if ( ! in_array( ai1wm_files_url( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
152
+ $old_replace_values[] = ai1wm_files_url( $blog['Old']['BlogID'] );
153
+ $new_replace_values[] = ai1wm_sites_url( $blog['New']['BlogID'] );
154
+ }
155
156
+ // Get URL encoded Upload Path
157
+ if ( ! in_array( urlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
158
+ $old_replace_values[] = urlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) );
159
+ $new_replace_values[] = urlencode( ai1wm_sites_url( $blog['New']['BlogID'] ) );
160
+ }
161
162
+ // Get URL raw encoded Upload Path
163
+ if ( ! in_array( rawurlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
164
+ $old_replace_values[] = rawurlencode( ai1wm_files_url( $blog['Old']['BlogID'] ) );
165
+ $new_replace_values[] = rawurlencode( ai1wm_sites_url( $blog['New']['BlogID'] ) );
166
+ }
167
168
+ // Get JSON escaped Upload Path
169
+ if ( ! in_array( addcslashes( ai1wm_files_url( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
170
+ $old_replace_values[] = addcslashes( ai1wm_files_url( $blog['Old']['BlogID'] ), '/' );
171
+ $new_replace_values[] = addcslashes( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' );
172
+ }
173
174
+ // Get plain Upload Path
175
+ if ( ! in_array( ai1wm_sites_url( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
176
+ $old_replace_values[] = ai1wm_sites_url( $blog['Old']['BlogID'] );
177
+ $new_replace_values[] = ai1wm_sites_url( $blog['New']['BlogID'] );
178
+ }
179
180
+ // Get URL encoded Upload Path
181
+ if ( ! in_array( urlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
182
+ $old_replace_values[] = urlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) );
183
+ $new_replace_values[] = urlencode( ai1wm_sites_url( $blog['New']['BlogID'] ) );
184
+ }
185
186
+ // Get URL raw encoded Upload Path
187
+ if ( ! in_array( rawurlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
188
+ $old_replace_values[] = rawurlencode( ai1wm_sites_url( $blog['Old']['BlogID'] ) );
189
+ $new_replace_values[] = rawurlencode( ai1wm_sites_url( $blog['New']['BlogID'] ) );
190
+ }
191
192
+ // Get JSON escaped Upload Path
193
+ if ( ! in_array( addcslashes( ai1wm_sites_url( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
194
+ $old_replace_values[] = addcslashes( ai1wm_sites_url( $blog['Old']['BlogID'] ), '/' );
195
+ $new_replace_values[] = addcslashes( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' );
196
}
197
}
198
259
// Replace Site URL scheme
260
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
261
262
+ // Handle old and new sites dir style
263
+ if ( ! defined( 'UPLOADBLOGSDIR' ) ) {
264
+
265
+ // Add plain Upload URL
266
+ if ( ! in_array( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ), $old_replace_values ) ) {
267
+ $old_replace_values[] = ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] );
268
+ $new_replace_values[] = ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['SiteURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] );
269
+ }
270
+
271
+ // Add URL encoded Upload URL
272
+ if ( ! in_array( urlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) ), $old_replace_values ) ) {
273
+ $old_replace_values[] = urlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) );
274
+ $new_replace_values[] = urlencode( ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['SiteURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] ) );
275
+ }
276
+
277
+ // Add URL raw encoded Upload URL
278
+ if ( ! in_array( rawurlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) ), $old_replace_values ) ) {
279
+ $old_replace_values[] = rawurlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) );
280
+ $new_replace_values[] = rawurlencode( ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['SiteURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] ) );
281
+ }
282
+
283
+ // Add JSON escaped Upload URL
284
+ if ( ! in_array( addcslashes( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ), '/' ), $old_replace_values ) ) {
285
+ $old_replace_values[] = addcslashes( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ), '/' );
286
+ $new_replace_values[] = addcslashes( ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['SiteURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] ), '/' );
287
+ }
288
+ }
289
+
290
// Add plain Site URL
291
if ( ! in_array( ai1wm_url_scheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
292
$old_replace_values[] = ai1wm_url_scheme( $url, $old_schemes[ $i ] );
385
// Replace Home URL scheme
386
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
387
388
+ // Handle old and new sites dir style
389
+ if ( ! defined( 'UPLOADBLOGSDIR' ) ) {
390
+
391
+ // Add plain Upload URL
392
+ if ( ! in_array( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ), $old_replace_values ) ) {
393
+ $old_replace_values[] = ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] );
394
+ $new_replace_values[] = ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['HomeURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] );
395
+ }
396
+
397
+ // Add URL encoded Upload URL
398
+ if ( ! in_array( urlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) ), $old_replace_values ) ) {
399
+ $old_replace_values[] = urlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) );
400
+ $new_replace_values[] = urlencode( ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['HomeURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] ) );
401
+ }
402
+
403
+ // Add URL raw encoded Upload URL
404
+ if ( ! in_array( rawurlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) ), $old_replace_values ) ) {
405
+ $old_replace_values[] = rawurlencode( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ) );
406
+ $new_replace_values[] = rawurlencode( ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['HomeURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] ) );
407
+ }
408
+
409
+ // Add JSON escaped Upload URL
410
+ if ( ! in_array( addcslashes( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ), '/' ), $old_replace_values ) ) {
411
+ $old_replace_values[] = addcslashes( ai1wm_url_scheme( sprintf( '%s/files/', untrailingslashit( $url ) ), $old_schemes[ $i ] ), '/' );
412
+ $new_replace_values[] = addcslashes( ai1wm_url_scheme( sprintf( '%s/%s/', untrailingslashit( $blog['New']['HomeURL'] ), trim( ai1wm_sites_url( $blog['New']['BlogID'] ), '/' ) ), $new_schemes[ $i ] ), '/' );
413
+ }
414
+ }
415
+
416
// Add plain Home URL
417
if ( ! in_array( ai1wm_url_scheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
418
$old_replace_values[] = ai1wm_url_scheme( $url, $old_schemes[ $i ] );
lib/model/import/class-ai1wm-import-done.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -88,6 +88,9 @@ class Ai1wm_Import_Done {
88
// Flush Elementor cache
89
ai1wm_elementor_cache_flush();
90
91
} else {
92
93
// Check package.json file
@@ -156,6 +159,9 @@ class Ai1wm_Import_Done {
156
157
// Flush Elementor cache
158
ai1wm_elementor_cache_flush();
159
}
160
}
161
@@ -228,6 +234,9 @@ class Ai1wm_Import_Done {
228
229
// Flush Elementor cache
230
ai1wm_elementor_cache_flush();
231
}
232
}
233
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
88
// Flush Elementor cache
89
ai1wm_elementor_cache_flush();
90
91
+ // Initial DB version
92
+ ai1wm_initial_db_version();
93
+
94
} else {
95
96
// Check package.json file
159
160
// Flush Elementor cache
161
ai1wm_elementor_cache_flush();
162
+
163
+ // Initial DB version
164
+ ai1wm_initial_db_version();
165
}
166
}
167
234
235
// Flush Elementor cache
236
ai1wm_elementor_cache_flush();
237
+
238
+ // Initial DB version
239
+ ai1wm_initial_db_version();
240
}
241
}
242
lib/model/import/class-ai1wm-import-enumerate.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-mu-plugins.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-plugins.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-upload.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/model/import/class-ai1wm-import-validate.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/archiver/class-ai1wm-archiver.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/archiver/class-ai1wm-compressor.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/archiver/class-ai1wm-extractor.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/cron/class-ai1wm-cron.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/database/class-ai1wm-database-mysql.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/database/class-ai1wm-database-mysqli.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/database/class-ai1wm-database-utility.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/database/class-ai1wm-database.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/filesystem/class-ai1wm-directory.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/filesystem/class-ai1wm-file-htaccess.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -50,6 +50,10 @@ class Ai1wm_File_Htaccess {
50
'<IfModule mod_autoindex.c>',
51
'Options -Indexes',
52
'</IfModule>',
53
)
54
)
55
);
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
50
'<IfModule mod_autoindex.c>',
51
'Options -Indexes',
52
'</IfModule>',
53
+ '<Files web.config>',
54
+ 'Order allow,deny',
55
+ 'Deny from all',
56
+ '</Files>',
57
)
58
)
59
);
lib/vendor/servmask/filesystem/class-ai1wm-file-index.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -30,12 +30,12 @@ if ( ! defined( 'ABSPATH' ) ) {
30
class Ai1wm_File_Index {
31
32
/**
33
- * Create index.php file
34
*
35
* @param string $path Path to file
36
* @return boolean
37
*/
38
public static function create( $path ) {
39
- return Ai1wm_File::create( $path, '<?php // silence is golden' );
40
}
41
}
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
30
class Ai1wm_File_Index {
31
32
/**
33
+ * Create index file
34
*
35
* @param string $path Path to file
36
* @return boolean
37
*/
38
public static function create( $path ) {
39
+ return Ai1wm_File::create( $path, 'Kangaroos cannot jump here' );
40
}
41
}
lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
@@ -53,6 +53,13 @@ class Ai1wm_File_Webconfig {
53
'</defaultDocument>',
54
'<directoryBrowse enabled="false" />',
55
'</system.webServer>',
56
'</configuration>',
57
)
58
)
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
53
'</defaultDocument>',
54
'<directoryBrowse enabled="false" />',
55
'</system.webServer>',
56
+ '<location path=".htaccess">',
57
+ '<system.web>',
58
+ '<authorization>',
59
+ '<deny users="*" />',
60
+ '</authorization>',
61
+ '</system.web>',
62
+ '</location>',
63
'</configuration>',
64
)
65
)
lib/vendor/servmask/filesystem/class-ai1wm-file.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/filter/class-ai1wm-recursive-exclude-filter.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/filter/class-ai1wm-recursive-extension-filter.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/iterator/class-ai1wm-recursive-directory-iterator.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/vendor/servmask/iterator/class-ai1wm-recursive-iterator-iterator.php CHANGED
@@ -1,6 +1,6 @@
1
<?php
2
/**
3
- * Copyright (C) 2014-2019 ServMask Inc.
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 as published by
1
<?php
2
/**
3
+ * Copyright (C) 2014-2020 ServMask Inc.
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 as published by
lib/view/assets/css/backups.min.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";@-webkit-keyframes ai1wm-rotate{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}25%{-webkit-transform:rotateZ(-90deg);transform:rotateZ(-90deg)}50%{-webkit-transform:rotateZ(-180deg);transform:rotateZ(-180deg)}75%{-webkit-transform:rotateZ(-270deg);transform:rotateZ(-270deg)}to{-webkit-transform:rotateZ(-360deg);transform:rotateZ(-360deg)}}@keyframes ai1wm-rotate{0%{-webkit-transform:rotateZ(0);transform:rotateZ(0)}25%{-webkit-transform:rotateZ(-90deg);transform:rotateZ(-90deg)}50%{-webkit-transform:rotateZ(-180deg);transform:rotateZ(-180deg)}75%{-webkit-transform:rotateZ(-270deg);transform:rotateZ(-270deg)}to{-webkit-transform:rotateZ(-360deg);transform:rotateZ(-360deg)}}@-webkit-keyframes ai1wm-emphasize{0%,to{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@keyframes ai1wm-emphasize{0%,to{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.2);transform:scale(1.2)}}@-webkit-keyframes ai1wm-fadein{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.5);transform:scale(1.5)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes ai1wm-fadein{0%{-webkit-transform:scale(0);transform:scale(0)}50%{-webkit-transform:scale(1.5);transform:scale(1.5)}to{-webkit-transform:scale(1);transform:scale(1)}}.ai1wm-button-group{border:2px solid #27ae60;background-color:transparent;color:#27ae60;border-radius:5px;cursor:pointer;text-transform:uppercase;font-weight:600;transition:background-color .2s ease-out;display:inline-block;text-align:left}.ai1wm-button-group.ai1wm-button-export,.ai1wm-button-group.ai1wm-button-import{box-sizing:content-box}.ai1wm-button-group.ai1wm-button-export.ai1wm-open>.ai1wm-dropdown-menu{height:448px;border-top:1px solid #27ae60}.ai1wm-button-group.ai1wm-button-import.ai1wm-open>.ai1wm-dropdown-menu{height:476px;border-top:1px solid #27ae60}.ai1wm-button-group .ai1wm-button-main{position:relative;padding:6px 50px 6px 25px;box-sizing:content-box}.ai1wm-button-group .ai1wm-dropdown-menu{height:0;overflow:hidden;transition:height .2s cubic-bezier(.19,1,.22,1);border-top:none}.ai1wm-dropdown-menu{list-style:none}.ai1wm-dropdown-menu,.ai1wm-dropdown-menu li{margin:0!important;padding:0}.ai1wm-dropdown-menu li a,.ai1wm-dropdown-menu li a:visited{display:block;padding:5px 26px;text-decoration:none;color:#27ae60;text-align:left;box-sizing:content-box}.ai1wm-dropdown-menu li a:hover,.ai1wm-dropdown-menu li a:visited:hover{text-decoration:none;color:#111}.ai1mw-lines{position:absolute;width:12px;height:10px;top:9px;right:20px}.ai1wm-line{position:absolute;width:100%;height:2px;margin:auto;background:#27ae60;transition:all .2s ease-in-out}.ai1wm-line-first{top:0;left:0}div.ai1wm-open .ai1wm-line-first,div.ai1wm-open .ai1wm-line-third{top:50%}.ai1wm-line-second{top:50%;left:0}.ai1wm-line-third{top:100%;left:0}.ai1wm-button-blue,.ai1wm-button-gray,.ai1wm-button-green,.ai1wm-button-green-small,.ai1wm-button-red{display:inline-block;border:2px solid #95a5a6;background-color:transparent;color:#95a5a6;border-radius:5px;cursor:pointer;padding:5px 25px 5px 26px;text-transform:uppercase;font-weight:600;outline:0;transition:background-color .2s ease-out;text-decoration:none}.ai1wm-button-gray:hover{background-color:#95a5a6;color:#fff}.ai1wm-button-blue,.ai1wm-button-green,.ai1wm-button-green-small,.ai1wm-button-red{border:2px solid #27ae60;color:#27ae60}.ai1wm-button-green:hover{background-color:#27ae60;color:#fff}.ai1wm-button-blue,.ai1wm-button-green-small,.ai1wm-button-red{border:2px solid #6eb649;color:#6eb649}.ai1wm-button-green-small:hover{background-color:#6eb649;color:#fff}.ai1wm-button-blue,.ai1wm-button-red{border:2px solid #00aff0;color:#00aff0}.ai1wm-button-blue:hover{background-color:#00aff0;color:#fff}.ai1wm-button-red{border:2px solid #e74c3c;color:#e74c3c}.ai1wm-button-red:hover{background-color:#e74c3c;color:#fff}.ai1wm-button-blue[disabled=disabled],.ai1wm-button-green-small[disabled=disabled],.ai1wm-button-green[disabled=disabled],.ai1wm-button-red[disabled=disabled]{opacity:.6;cursor:default}.ai1wm-button-blue[disabled=disabled]:hover{color:#00aff0}.ai1wm-button-red[disabled=disabled]:hover{color:#e74c3c}.ai1wm-button-green[disabled=disabled]:hover{color:#27ae60}.ai1wm-button-blue[disabled=disabled]:hover,.ai1wm-button-green-small[disabled=disabled]:hover,.ai1wm-button-green[disabled=disabled]:hover,.ai1wm-button-red[disabled=disabled]:hover{background:0 0}.ai1wm-message-close-button{position:absolute;right:10px;top:6px;text-decoration:none;font-size:10px}input[type=radio].ai1wm-flat-radio-button{display:none}input[type=radio].ai1wm-flat-radio-button+a i,input[type=radio].ai1wm-flat-radio-button+label i{vertical-align:middle;float:left;width:25px;height:25px;border-radius:50%;background:0 0;border:2px solid #ccc;content:" ";cursor:pointer;position:relative;box-sizing:content-box}input[type=radio].ai1wm-flat-radio-button:checked+a i,input[type=radio].ai1wm-flat-radio-button:checked+label i{background-color:#d9d9d9;border-color:#6f6f6f}.ai1wm-clear{*zoom:1;clear:both}.ai1wm-clear:after,.ai1wm-clear:before{content:" ";display:table}.ai1wm-clear:after{clear:both}.ai1wm-container .ai1wm-row label{position:relative;top:-1px}.ai1wm-container .ai1wm-row label:after{content:"\200E"}.ai1wm-share-button-container{text-align:center}.ai1wm-share-button-container .ai1wm-share-button{text-decoration:none;margin:10px;font-size:30px}.ai1wm-report-problem{position:relative;float:right}.ai1wm-report-problem-dialog{position:absolute;z-index:999;width:280px;right:0;background-color:#fff;margin:6px 0 0;padding:15px 15px 10px;border:1px solid #d6d6d6;border-radius:3px;box-shadow:0 1px 0 0 #fff inset;display:none}.ai1wm-report-email{width:100%;font-weight:400;font-size:.8rem;height:2.3rem;line-height:2.3rem;border-radius:5px;margin-bottom:4px;padding:0 10px}.ai1wm-report-message{width:100%;border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none}.ai1wm-feedback-cancel:active,.ai1wm-feedback-cancel:link,.ai1wm-feedback-cancel:visited,.ai1wm-report-cancel:active,.ai1wm-report-cancel:link,.ai1wm-report-cancel:visited{float:left;line-height:34px;outline:0;text-decoration:none;color:#e74c3c}.ai1wm-form-submit{float:right}.ai1wm-report-active{display:block}.ai1wm-report-terms-segment{font-size:.7rem;line-height:1rem;margin:4px 0 8px}.ai1wm-report-terms-segment>.ai1wm-report-terms{border-radius:3px}.ai1wm-import-info a,.ai1wm-no-underline{text-decoration:none}.ai1wm-top-negative-four{top:-4px}.ai1wm-feedback-form{display:none}.ai1wm-feedback-types{margin:0;padding:0;list-style:none}.ai1wm-feedback-types li{margin:14px 0;padding:0}.ai1wm-feedback-types>li>a>span,.ai1wm-feedback-types>li>label>span{display:inline-block;padding:5px 0 6px 8px}.ai1wm-feedback-types>li>a{height:29px;outline:0;color:#333;text-deciration:none}.ai1wm-loader{display:inline-block;width:128px;height:128px;position:relative;-webkit-animation:ai1wm-rotate 1.5s infinite linear;animation:ai1wm-rotate 1.5s infinite linear;background:url(../img/logo-128x128.png);background-repeat:no-repeat;background-position:center center}.ai1wm-hide{display:none}.ai1wm-label{border:1px solid #5cb85c;background-color:transparent;color:#5cb85c;cursor:pointer;text-transform:uppercase;font-weight:600;outline:0;transition:background-color .2s ease-out;padding:.2em .6em;font-size:.8em;border-radius:5px}.ai1wm-label:hover{background-color:#5cb85c;color:#fff}.ai1wm-dialog-message{text-align:left;line-height:1.5em}.ai1wm-import-info{margin-top:16px}.ai1wm-import-info,.ai1wm-import-title{display:inline-block;font-size:12px;font-weight:700}[class*=" ai1wm-icon-"],[class^=ai1wm-icon-]{font-family:'servmask';speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai1wm-icon-file-zip:before{content:"\e60f"}.ai1wm-icon-folder:before{content:"\e60e"}.ai1wm-icon-file:before{content:"\e60b"}.ai1wm-icon-file-content:before{content:"\e60c"}.ai1wm-icon-cloud-upload:before{content:"\e600"}.ai1wm-icon-history:before{content:"\e603"}.ai1wm-icon-notification:before{content:"\e619"}.ai1wm-icon-arrow-down:before{content:"\e604"}.ai1wm-icon-close:before{content:"\e61a"}.ai1wm-icon-wordpress2:before{content:"\e620"}.ai1wm-icon-arrow-right:before{content:"\e605"}.ai1wm-icon-plus2:before{content:"\e607"}.ai1wm-icon-edit-pencil:before{content:"\e900"}.ai1wm-icon-export:before{content:"\e601"}.ai1wm-icon-publish:before{content:"\e602"}.ai1wm-icon-paperplane:before{content:"\e608"}.ai1wm-icon-help:before{content:"\e609"}.ai1wm-icon-chevron-right:before{content:"\e60d"}.ai1wm-icon-dropbox:before{content:"\e606"}.ai1wm-icon-gear:before{content:"\e60a"}.ai1wm-icon-database:before{content:"\e964"}.ai1wm-icon-upload2:before{content:"\e9c6"}.ai1wm-icon-checkmark:before{content:"\ea10"}.ai1wm-icon-checkmark2:before{content:"\ea11"}.ai1wm-icon-enter:before{content:"\ea13"}.ai1wm-icon-exit:before{content:"\ea14"}.ai1wm-icon-amazon:before{content:"\ea87"}.ai1wm-icon-onedrive:before{content:"\eaaf"}.ai1wm-icon-folder-secondary:before{content:"\e92f"}.ai1wm-icon-folder-secondary-open:before{content:"\e930"}@media (min-width:855px){.ai1wm-row{margin-right:399px}.ai1wm-row:after,.ai1wm-row:before{content:" ";display:table}.ai1wm-row:after{clear:both}.ai1wm-left{float:left;width:100%}.ai1wm-right{float:right;width:377px;margin-right:-399px}.ai1wm-right .ai1wm-sidebar{width:100%}.ai1wm-right .ai1wm-segment{width:333px;border:1px solid #d6d6d6;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;color:#333;background-color:#f9f9f9;padding:20px;text-decoration:none;text-shadow:0 1px 0 #fff;background-clip:padding-box}.ai1wm-right .ai1wm-segment h2{margin:22px 0 0;padding:0;font-weight:700;font-size:14px;text-transform:uppercase;text-align:center}.ai1wm-right .ai1wm-feedback-email{width:100%;font-weight:400;font-size:.8rem;height:2.3rem;line-height:2.3rem;border-radius:5px;margin-bottom:4px;padding:0 10px}.ai1wm-right .ai1wm-feedback-message{width:100%;border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none}.ai1wm-right .ai1wm-feedback-terms-segment{font-size:.7rem;line-height:1rem;margin:4px 0 8px}.ai1wm-right .ai1wm-feedback-terms-segment>.ai1wm-feedback-terms{border-radius:3px}}.ai1wm-holder{position:relative;border:1px solid #d6d6d6;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;padding:20px;background:#f9f9f9}.ai1wm-holder h1{float:left;font-weight:300;font-size:22px;text-transform:uppercase}.ai1wm-holder h1 i{position:relative;top:2px}@media (max-width:854px){.ai1wm-container{margin-left:10px!important}.ai1wm-right,.ai1wm-row{margin-right:0!important}.ai1wm-right{float:left!important;width:100%!important;margin-top:18px}.ai1wm-right .ai1wm-sidebar{width:auto!important;border:1px solid #d6d6d6;border-radius:3px;box-shadow:inset 0 1px 0 0 #fff;padding:20px;background:#f9f9f9}.ai1wm-right .ai1wm-feedback-email{width:100%;font-weight:400;font-size:.8rem;height:2.3rem;line-height:2.3rem;border-radius:5px;margin-bottom:4px;padding:0 10px}.ai1wm-right .ai1wm-feedback-message{width:100%;border-radius:3px;font-size:.8rem;padding:6px 10px;resize:none}.ai1wm-right .ai1wm-feedback-terms-segment{font-size:.7rem;line-height:1rem;margin:4px 0 8px;border-radius:3px}.ai1wm-right .ai1wm-feedback-terms-segment>.ai1wm-feedback-terms{border-radius:3px}}.ai1wm-container{margin:20px 20px 0 2px}.ai1wm-container:after,.ai1wm-container:before{content:" ";display:table}.ai1wm-container:after{clear:both}.ai1wm-replace-row{width:100%;box-shadow:outset 0 1px 0 0 white;border-radius:3px;color:#333;font-size:11px;font-weight:700;background-color:#f9f9f9;text-decoration:none;text-shadow:0 1px 0 #fff;background-clip:padding-box;margin-bottom:10px}.ai1wm-field{margin-bottom:4px}.ai1wm-field input[type=text],.ai1wm-field textarea{width:100%;font-weight:400}.ai1wm-field-set{margin-top:18px}.ai1wm-message{-moz-box-sizing:border-box;background-color:#efefef;border-radius:4px;color:rgba(0,0,0,.6);height:auto;margin:10px 0;min-height:18px;padding:6px 10px;position:relative;border:1px solid;transition:opacity .1s ease 0s,color .1s ease 0s,background .1s ease 0s,box-shadow .1s ease 0s}.ai1wm-message.ai1wm-success-message{background-color:#f2f8f0;color:#119000;font-size:12px}.ai1wm-message.ai1wm-info-message{background-color:#d9edf7;color:#31708f;font-size:11px}.ai1wm-message.ai1wm-error-message{background-color:#f1d7d7;color:#a95252;font-size:12px}.ai1wm-message.ai1wm-red-message{color:#d95c5c;border:2px solid #d95c5c;background-color:transparent}.ai1wm-message.ai1wm-red-message h3{margin:.4em 0;color:#d95c5c}.ai1wm-message p{margin:4px 0;font-size:12px}.ai1wm-message-warning{display:block;font-size:14px;line-height:18px;padding:12px 20px;margin:0 0 22px;background-color:#f9f9f9;border:1px solid #d6d6d6;border-radius:3px;box-shadow:0 1px 0 0 #fff inset;border-left:4px solid #ffba00}.ai1wm-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);z-index:100001}.ai1wm-modal-container{position:fixed;display:none;top:50%;left:50%;z-index:100002;width:480px;height:auto;padding:16px;-webkit-transform:translate(-240px,-94px);transform:translate(-240px,-94px);border:1px solid #fff;box-shadow:0 2px 6px #292929;border-radius:6px;background:#f6f6f6;box-sizing:border-box;text-align:center}.ai1wm-modal-container section{display:block;min-height:102px}.ai1wm-holder h1,.ai1wm-modal-container section h1{margin:0;padding:0}.ai1wm-modal-container section h1 .ai1wm-title-green{color:#27ae60;font-size:.7em}.ai1wm-modal-container section h1 .ai1wm-title-red{color:#e74c3c;font-size:20px}.ai1wm-modal-container section h1 .ai1wm-title-grey{color:gray;font-size:20px}.ai1wm-modal-container section h1 .ai1wm-loader{width:32px;height:32px;background:url(../img/logo-32x32.png)}.ai1wm-modal-container section h1 .ai1wm-icon-notification{font-size:1.2em;color:#e74c3c}.ai1wm-modal-container section p{margin:0;padding:12px 0}.ai1wm-modal-container section p .ai1wm-modal-sites p{padding:4px 10px;text-align:left}.ai1wm-modal-container section p .ai1wm-modal-sites input,.ai1wm-modal-container section p .ai1wm-modal-sites select{padding:0 6px;width:100%;border-radius:3px;height:30px;line-height:30px}.ai1wm-modal-container section p .ai1wm-modal-subtitle-green{color:#27ae60}.ai1wm-modal-container section p .ai1wm-modal-subtitle-red