Version Description
Added
- Support for LiteSpeed web server
- Fully localized the export, import, and restore processes
Fixed
- Table prefix replacement on import in limited corner cases
- URL replacement in Bitnami
Download this release
Release Info
Developer | bangelov |
Plugin | All-in-One WP Migration |
Version | 6.74 |
Comparing to | |
See all releases |
Code changes from version 6.73 to 6.74
- all-in-one-wp-migration.php +1 -1
- constants.php +32 -32
- functions.php +14 -12
- lib/controller/class-ai1wm-export-controller.php +18 -1
- lib/controller/class-ai1wm-import-controller.php +18 -1
- lib/controller/class-ai1wm-main-controller.php +258 -116
- lib/controller/class-ai1wm-resolve-controller.php +0 -62
- lib/model/class-ai1wm-backups.php +4 -4
- lib/model/class-ai1wm-extensions.php +13 -13
- lib/model/class-ai1wm-http.php +0 -154
- lib/model/export/class-ai1wm-export-database.php +20 -12
- lib/model/export/class-ai1wm-export-enumerate.php +15 -22
- lib/model/export/class-ai1wm-export-resolve.php +0 -41
- lib/model/http/class-ai1wm-http-abstract.php +0 -54
- lib/model/http/class-ai1wm-http-curl.php +0 -77
- lib/model/http/class-ai1wm-http-stream.php +0 -110
- lib/model/import/class-ai1wm-import-database.php +190 -183
- lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php +1 -3
- lib/vendor/servmask/database/class-ai1wm-database.php +87 -3
- lib/vendor/servmask/filesystem/class-ai1wm-directory.php +12 -6
- lib/vendor/servmask/filesystem/class-ai1wm-file-htaccess.php +27 -12
- lib/vendor/servmask/filesystem/class-ai1wm-file-index.php +3 -8
- lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php +15 -18
- lib/vendor/servmask/filesystem/class-ai1wm-file.php +29 -6
- lib/vendor/servmask/filter/{class-ai1wm-extension-filter.php → class-ai1wm-recursive-extension-filter.php} +11 -5
- lib/vendor/servmask/iterator/class-ai1wm-recursive-directory-iterator.php +0 -2
- lib/{model/http/class-ai1wm-http-factory.php → vendor/servmask/iterator/class-ai1wm-recursive-iterator-iterator.php} +1 -9
- lib/view/assets/css/backups.min.css +1 -1
- lib/view/assets/css/backups.min.rtl.css +1 -1
- lib/view/assets/javascript/backups.min.js +65 -41
- lib/view/assets/javascript/export.min.js +35 -23
- lib/view/assets/javascript/feedback.min.js +4 -4
- lib/view/assets/javascript/import.min.js +69 -45
- lib/view/assets/javascript/report.min.js +2 -2
- lib/view/assets/javascript/updater.min.js +2 -2
- lib/view/backups/index.php +1 -1
- lib/{model/import/class-ai1wm-import-resolve.php → view/main/wordpress-htaccess-notice.php} +16 -16
- loader.php +9 -34
- readme.txt +12 -1
- uninstall.php +1 -3
all-in-one-wp-migration.php
CHANGED
@@ -5,7 +5,7 @@
|
|
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: 6.
|
9 |
* Text Domain: all-in-one-wp-migration
|
10 |
* Domain Path: /languages
|
11 |
* Network: True
|
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: 6.74
|
9 |
* Text Domain: all-in-one-wp-migration
|
10 |
* Domain Path: /languages
|
11 |
* Network: True
|
constants.php
CHANGED
@@ -31,16 +31,16 @@ define( 'AI1WM_DEBUG', false );
|
|
31 |
// ==================
|
32 |
// = Plugin Version =
|
33 |
// ==================
|
34 |
-
define( 'AI1WM_VERSION', '6.
|
35 |
|
36 |
// ===============
|
37 |
// = Plugin Name =
|
38 |
// ===============
|
39 |
define( 'AI1WM_PLUGIN_NAME', 'all-in-one-wp-migration' );
|
40 |
|
41 |
-
//
|
42 |
-
// = Directory
|
43 |
-
//
|
44 |
define( 'AI1WM_DIRECTORY_INDEX', 'index.php' );
|
45 |
|
46 |
// ================
|
@@ -83,11 +83,6 @@ define( 'AI1WM_EXPORT_PATH', AI1WM_MODEL_PATH . DIRECTORY_SEPARATOR . 'export' )
|
|
83 |
// ===============
|
84 |
define( 'AI1WM_IMPORT_PATH', AI1WM_MODEL_PATH . DIRECTORY_SEPARATOR . 'import' );
|
85 |
|
86 |
-
// =============
|
87 |
-
// = Http Path =
|
88 |
-
// =============
|
89 |
-
define( 'AI1WM_HTTP_PATH', AI1WM_MODEL_PATH . DIRECTORY_SEPARATOR . 'http' );
|
90 |
-
|
91 |
// =============
|
92 |
// = View Path =
|
93 |
// =============
|
@@ -159,7 +154,7 @@ define( 'AI1WM_SETTINGS_NAME', 'settings.json' );
|
|
159 |
define( 'AI1WM_MULTIPART_NAME', 'multipart.list' );
|
160 |
|
161 |
// ========================
|
162 |
-
// = Archive
|
163 |
// ========================
|
164 |
define( 'AI1WM_FILEMAP_NAME', 'filemap.list' );
|
165 |
|
@@ -203,16 +198,6 @@ define( 'AI1WM_IMPORT_NAME', 'import.log' );
|
|
203 |
// ==================
|
204 |
define( 'AI1WM_ERROR_NAME', 'error.log' );
|
205 |
|
206 |
-
// ==========
|
207 |
-
// = URL IP =
|
208 |
-
// ==========
|
209 |
-
define( 'AI1WM_URL_IP', 'ai1wm_url_ip' );
|
210 |
-
|
211 |
-
// ===============
|
212 |
-
// = URL Adapter =
|
213 |
-
// ===============
|
214 |
-
define( 'AI1WM_URL_ADAPTER', 'ai1wm_url_adapter' );
|
215 |
-
|
216 |
// ==============
|
217 |
// = Secret Key =
|
218 |
// ==============
|
@@ -228,6 +213,16 @@ define( 'AI1WM_AUTH_USER', 'ai1wm_auth_user' );
|
|
228 |
// =================
|
229 |
define( 'AI1WM_AUTH_PASSWORD', 'ai1wm_auth_password' );
|
230 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
231 |
// ==================
|
232 |
// = Active Plugins =
|
233 |
// ==================
|
@@ -325,26 +320,31 @@ define( 'AI1WM_SITES_PATH', AI1WM_UPLOADS_PATH . DIRECTORY_SEPARATOR . 'sites' )
|
|
325 |
// ================
|
326 |
define( 'AI1WM_BACKUPS_PATH', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'ai1wm-backups' );
|
327 |
|
328 |
-
//
|
329 |
-
// = Storage
|
330 |
-
//
|
331 |
define( 'AI1WM_STORAGE_INDEX', AI1WM_STORAGE_PATH . DIRECTORY_SEPARATOR . 'index.php' );
|
332 |
|
333 |
-
//
|
334 |
-
// = Backups
|
335 |
-
//
|
336 |
define( 'AI1WM_BACKUPS_INDEX', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'index.php' );
|
337 |
|
338 |
-
// =========================
|
339 |
-
// = Backups Htaccess File =
|
340 |
-
// =========================
|
341 |
-
define( 'AI1WM_BACKUPS_HTACCESS', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . '.htaccess' );
|
342 |
-
|
343 |
// ==========================
|
344 |
-
// = Backups
|
345 |
// ==========================
|
|
|
|
|
|
|
|
|
|
|
346 |
define( 'AI1WM_BACKUPS_WEBCONFIG', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'web.config' );
|
347 |
|
|
|
|
|
|
|
|
|
|
|
348 |
// ================================
|
349 |
// = WP Migration Plugin Base Dir =
|
350 |
// ================================
|
31 |
// ==================
|
32 |
// = Plugin Version =
|
33 |
// ==================
|
34 |
+
define( 'AI1WM_VERSION', '6.74' );
|
35 |
|
36 |
// ===============
|
37 |
// = Plugin Name =
|
38 |
// ===============
|
39 |
define( 'AI1WM_PLUGIN_NAME', 'all-in-one-wp-migration' );
|
40 |
|
41 |
+
// ============================
|
42 |
+
// = Directory index.php File =
|
43 |
+
// ============================
|
44 |
define( 'AI1WM_DIRECTORY_INDEX', 'index.php' );
|
45 |
|
46 |
// ================
|
83 |
// ===============
|
84 |
define( 'AI1WM_IMPORT_PATH', AI1WM_MODEL_PATH . DIRECTORY_SEPARATOR . 'import' );
|
85 |
|
|
|
|
|
|
|
|
|
|
|
86 |
// =============
|
87 |
// = View Path =
|
88 |
// =============
|
154 |
define( 'AI1WM_MULTIPART_NAME', 'multipart.list' );
|
155 |
|
156 |
// ========================
|
157 |
+
// = Archive Filemap Name =
|
158 |
// ========================
|
159 |
define( 'AI1WM_FILEMAP_NAME', 'filemap.list' );
|
160 |
|
198 |
// ==================
|
199 |
define( 'AI1WM_ERROR_NAME', 'error.log' );
|
200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
// ==============
|
202 |
// = Secret Key =
|
203 |
// ==============
|
213 |
// =================
|
214 |
define( 'AI1WM_AUTH_PASSWORD', 'ai1wm_auth_password' );
|
215 |
|
216 |
+
// ============
|
217 |
+
// = Site URL =
|
218 |
+
// ============
|
219 |
+
define( 'AI1WM_SITE_URL', 'siteurl' );
|
220 |
+
|
221 |
+
// ============
|
222 |
+
// = Home URL =
|
223 |
+
// ============
|
224 |
+
define( 'AI1WM_HOME_URL', 'home' );
|
225 |
+
|
226 |
// ==================
|
227 |
// = Active Plugins =
|
228 |
// ==================
|
320 |
// ================
|
321 |
define( 'AI1WM_BACKUPS_PATH', WP_CONTENT_DIR . DIRECTORY_SEPARATOR . 'ai1wm-backups' );
|
322 |
|
323 |
+
// ==========================
|
324 |
+
// = Storage index.php File =
|
325 |
+
// ==========================
|
326 |
define( 'AI1WM_STORAGE_INDEX', AI1WM_STORAGE_PATH . DIRECTORY_SEPARATOR . 'index.php' );
|
327 |
|
328 |
+
// ==========================
|
329 |
+
// = Backups index.php File =
|
330 |
+
// ==========================
|
331 |
define( 'AI1WM_BACKUPS_INDEX', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'index.php' );
|
332 |
|
|
|
|
|
|
|
|
|
|
|
333 |
// ==========================
|
334 |
+
// = Backups .htaccess File =
|
335 |
// ==========================
|
336 |
+
define( 'AI1WM_BACKUPS_HTACCESS', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . '.htaccess' );
|
337 |
+
|
338 |
+
// ===========================
|
339 |
+
// = Backups web.config File =
|
340 |
+
// ===========================
|
341 |
define( 'AI1WM_BACKUPS_WEBCONFIG', AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . 'web.config' );
|
342 |
|
343 |
+
// ============================
|
344 |
+
// = WordPress .htaccess File =
|
345 |
+
// ============================
|
346 |
+
define( 'AI1WM_WORDPRESS_HTACCESS', ABSPATH . DIRECTORY_SEPARATOR . '.htaccess' );
|
347 |
+
|
348 |
// ================================
|
349 |
// = WP Migration Plugin Base Dir =
|
350 |
// ================================
|
functions.php
CHANGED
@@ -31,7 +31,7 @@
|
|
31 |
*/
|
32 |
function ai1wm_storage_path( $params ) {
|
33 |
if ( empty( $params['storage'] ) ) {
|
34 |
-
throw new Ai1wm_Storage_Exception( __( 'Unable to locate storage path', AI1WM_PLUGIN_NAME ) );
|
35 |
}
|
36 |
|
37 |
// Get storage path
|
@@ -51,12 +51,12 @@ function ai1wm_storage_path( $params ) {
|
|
51 |
*/
|
52 |
function ai1wm_backup_path( $params ) {
|
53 |
if ( empty( $params['archive'] ) ) {
|
54 |
-
throw new Ai1wm_Archive_Exception( __( 'Unable to locate archive path', AI1WM_PLUGIN_NAME ) );
|
55 |
}
|
56 |
|
57 |
// Validate archive path
|
58 |
if ( validate_file( $params['archive'] ) !== 0 ) {
|
59 |
-
throw new Ai1wm_Archive_Exception( __( 'Invalid archive path', AI1WM_PLUGIN_NAME ) );
|
60 |
}
|
61 |
|
62 |
return AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . $params['archive'];
|
@@ -70,12 +70,12 @@ function ai1wm_backup_path( $params ) {
|
|
70 |
*/
|
71 |
function ai1wm_archive_path( $params ) {
|
72 |
if ( empty( $params['archive'] ) ) {
|
73 |
-
throw new Ai1wm_Archive_Exception( __( 'Unable to locate archive path', AI1WM_PLUGIN_NAME ) );
|
74 |
}
|
75 |
|
76 |
// Validate archive path
|
77 |
if ( validate_file( $params['archive'] ) !== 0 ) {
|
78 |
-
throw new Ai1wm_Archive_Exception( __( 'Invalid archive path', AI1WM_PLUGIN_NAME ) );
|
79 |
}
|
80 |
|
81 |
// Get archive path
|
@@ -1061,7 +1061,7 @@ function ai1wm_urlscheme( $url, $scheme = '' ) {
|
|
1061 |
function ai1wm_open( $file, $mode ) {
|
1062 |
$file_handle = @fopen( $file, $mode );
|
1063 |
if ( false === $file_handle ) {
|
1064 |
-
throw new Ai1wm_Not_Accessible_Exception( sprintf( __( 'Unable to open %s with mode %s', AI1WM_PLUGIN_NAME ), $file, $mode ) );
|
1065 |
}
|
1066 |
|
1067 |
return $file_handle;
|
@@ -1080,10 +1080,12 @@ function ai1wm_write( $handle, $content ) {
|
|
1080 |
$write_result = @fwrite( $handle, $content );
|
1081 |
if ( false === $write_result ) {
|
1082 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1083 |
-
throw new Ai1wm_Not_Writable_Exception( sprintf( __( 'Unable to write to: %s', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1084 |
}
|
1085 |
} elseif ( strlen( $content ) !== $write_result ) {
|
1086 |
-
|
|
|
|
|
1087 |
}
|
1088 |
|
1089 |
return $write_result;
|
@@ -1101,7 +1103,7 @@ function ai1wm_read( $handle, $filesize ) {
|
|
1101 |
$read_result = @fread( $handle, $filesize );
|
1102 |
if ( false === $read_result ) {
|
1103 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1104 |
-
throw new Ai1wm_Not_Readable_Exception( sprintf( __( 'Unable to read file: %s', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1105 |
}
|
1106 |
}
|
1107 |
|
@@ -1118,7 +1120,7 @@ function ai1wm_seek( $handle, $offset, $mode = SEEK_SET ) {
|
|
1118 |
$seek_result = @fseek( $handle, $offset, $mode );
|
1119 |
if ( -1 === $seek_result ) {
|
1120 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1121 |
-
throw new Ai1wm_Not_Seekable_Exception( sprintf( __( 'Unable to seek to offset %d on %s', AI1WM_PLUGIN_NAME ), $offset, $meta['uri'] ) );
|
1122 |
}
|
1123 |
}
|
1124 |
|
@@ -1135,7 +1137,7 @@ function ai1wm_tell( $handle ) {
|
|
1135 |
$tell_result = @ftell( $handle );
|
1136 |
if ( false === $tell_result ) {
|
1137 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1138 |
-
throw new Ai1wm_Not_Tellable_Exception( sprintf( __( 'Unable to get current pointer position of %s', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1139 |
}
|
1140 |
}
|
1141 |
|
@@ -1298,7 +1300,7 @@ function ai1wm_fseek( $file_handle, Math_BigInteger $offset ) {
|
|
1298 |
*/
|
1299 |
function ai1wm_verify_secret_key( $secret_key ) {
|
1300 |
if ( $secret_key !== get_option( AI1WM_SECRET_KEY ) ) {
|
1301 |
-
throw new Ai1wm_Not_Valid_Secret_Key_Exception( __( 'Unable to authenticate the secret key.', AI1WM_PLUGIN_NAME ) );
|
1302 |
}
|
1303 |
|
1304 |
return true;
|
31 |
*/
|
32 |
function ai1wm_storage_path( $params ) {
|
33 |
if ( empty( $params['storage'] ) ) {
|
34 |
+
throw new Ai1wm_Storage_Exception( __( 'Unable to locate storage path. <a href="https://help.servmask.com/knowledgebase/invalid-storage-path/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ) );
|
35 |
}
|
36 |
|
37 |
// Get storage path
|
51 |
*/
|
52 |
function ai1wm_backup_path( $params ) {
|
53 |
if ( empty( $params['archive'] ) ) {
|
54 |
+
throw new Ai1wm_Archive_Exception( __( 'Unable to locate archive path. <a href="https://help.servmask.com/knowledgebase/invalid-archive-path/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ) );
|
55 |
}
|
56 |
|
57 |
// Validate archive path
|
58 |
if ( validate_file( $params['archive'] ) !== 0 ) {
|
59 |
+
throw new Ai1wm_Archive_Exception( __( 'Invalid archive path. <a href="https://help.servmask.com/knowledgebase/invalid-archive-path/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ) );
|
60 |
}
|
61 |
|
62 |
return AI1WM_BACKUPS_PATH . DIRECTORY_SEPARATOR . $params['archive'];
|
70 |
*/
|
71 |
function ai1wm_archive_path( $params ) {
|
72 |
if ( empty( $params['archive'] ) ) {
|
73 |
+
throw new Ai1wm_Archive_Exception( __( 'Unable to locate archive path. <a href="https://help.servmask.com/knowledgebase/invalid-archive-path/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ) );
|
74 |
}
|
75 |
|
76 |
// Validate archive path
|
77 |
if ( validate_file( $params['archive'] ) !== 0 ) {
|
78 |
+
throw new Ai1wm_Archive_Exception( __( 'Invalid archive path. <a href="https://help.servmask.com/knowledgebase/invalid-archive-path/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ) );
|
79 |
}
|
80 |
|
81 |
// Get archive path
|
1061 |
function ai1wm_open( $file, $mode ) {
|
1062 |
$file_handle = @fopen( $file, $mode );
|
1063 |
if ( false === $file_handle ) {
|
1064 |
+
throw new Ai1wm_Not_Accessible_Exception( sprintf( __( 'Unable to open %s with mode %s. <a href="https://help.servmask.com/knowledgebase/invalid-file-permissions/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), $file, $mode ) );
|
1065 |
}
|
1066 |
|
1067 |
return $file_handle;
|
1080 |
$write_result = @fwrite( $handle, $content );
|
1081 |
if ( false === $write_result ) {
|
1082 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1083 |
+
throw new Ai1wm_Not_Writable_Exception( sprintf( __( 'Unable to write to: %s. <a href="https://help.servmask.com/knowledgebase/invalid-file-permissions/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1084 |
}
|
1085 |
} elseif ( strlen( $content ) !== $write_result ) {
|
1086 |
+
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1087 |
+
throw new Ai1wm_Quota_Exceeded_Exception( sprintf( __( 'Out of disk space. Unable to write to: %s. <a href="https://help.servmask.com/knowledgebase/out-of-disk-space/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1088 |
+
}
|
1089 |
}
|
1090 |
|
1091 |
return $write_result;
|
1103 |
$read_result = @fread( $handle, $filesize );
|
1104 |
if ( false === $read_result ) {
|
1105 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1106 |
+
throw new Ai1wm_Not_Readable_Exception( sprintf( __( 'Unable to read file: %s. <a href="https://help.servmask.com/knowledgebase/invalid-file-permissions/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1107 |
}
|
1108 |
}
|
1109 |
|
1120 |
$seek_result = @fseek( $handle, $offset, $mode );
|
1121 |
if ( -1 === $seek_result ) {
|
1122 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1123 |
+
throw new Ai1wm_Not_Seekable_Exception( sprintf( __( 'Unable to seek to offset %d on %s. <a href="https://help.servmask.com/knowledgebase/php-32bit/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), $offset, $meta['uri'] ) );
|
1124 |
}
|
1125 |
}
|
1126 |
|
1137 |
$tell_result = @ftell( $handle );
|
1138 |
if ( false === $tell_result ) {
|
1139 |
if ( ( $meta = stream_get_meta_data( $handle ) ) ) {
|
1140 |
+
throw new Ai1wm_Not_Tellable_Exception( sprintf( __( 'Unable to get current pointer position of %s. <a href="https://help.servmask.com/knowledgebase/php-32bit/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ), $meta['uri'] ) );
|
1141 |
}
|
1142 |
}
|
1143 |
|
1300 |
*/
|
1301 |
function ai1wm_verify_secret_key( $secret_key ) {
|
1302 |
if ( $secret_key !== get_option( AI1WM_SECRET_KEY ) ) {
|
1303 |
+
throw new Ai1wm_Not_Valid_Secret_Key_Exception( __( 'Unable to authenticate the secret key. <a href="https://help.servmask.com/knowledgebase/invalid-secret-key/" target="_blank">Technical details</a>', AI1WM_PLUGIN_NAME ) );
|
1304 |
}
|
1305 |
|
1306 |
return true;
|
lib/controller/class-ai1wm-export-controller.php
CHANGED
@@ -101,7 +101,14 @@ class Ai1wm_Export_Controller {
|
|
101 |
exit;
|
102 |
}
|
103 |
|
104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
}
|
107 |
|
@@ -126,4 +133,14 @@ class Ai1wm_Export_Controller {
|
|
126 |
apply_filters( 'ai1wm_export_azure_storage', Ai1wm_Template::get_content( 'export/button-azure-storage' ) ),
|
127 |
);
|
128 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
}
|
101 |
exit;
|
102 |
}
|
103 |
|
104 |
+
wp_remote_post( apply_filters( 'ai1wm_http_export_url', admin_url( 'admin-ajax.php?action=ai1wm_export' ) ), array(
|
105 |
+
'timeout' => apply_filters( 'ai1wm_http_export_timeout', 5 ),
|
106 |
+
'blocking' => apply_filters( 'ai1wm_http_export_blocking', false ),
|
107 |
+
'sslverify' => apply_filters( 'ai1wm_http_export_sslverify', false ),
|
108 |
+
'headers' => apply_filters( 'ai1wm_http_export_headers', array() ),
|
109 |
+
'body' => apply_filters( 'ai1wm_http_export_body', $params ),
|
110 |
+
) );
|
111 |
+
exit;
|
112 |
}
|
113 |
}
|
114 |
|
133 |
apply_filters( 'ai1wm_export_azure_storage', Ai1wm_Template::get_content( 'export/button-azure-storage' ) ),
|
134 |
);
|
135 |
}
|
136 |
+
|
137 |
+
public static function http_export_headers( $headers = array() ) {
|
138 |
+
if ( ( $user = get_option( AI1WM_AUTH_USER ) ) && ( $password = get_option( AI1WM_AUTH_PASSWORD ) ) ) {
|
139 |
+
if ( ( $hash = base64_encode( sprintf( '%s:%s', $user, $password ) ) ) ) {
|
140 |
+
$headers['Authorization'] = sprintf( 'Basic %s', $hash );
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
return $headers;
|
145 |
+
}
|
146 |
}
|
lib/controller/class-ai1wm-import-controller.php
CHANGED
@@ -105,7 +105,14 @@ class Ai1wm_Import_Controller {
|
|
105 |
exit;
|
106 |
}
|
107 |
|
108 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
109 |
}
|
110 |
}
|
111 |
|
@@ -132,6 +139,16 @@ class Ai1wm_Import_Controller {
|
|
132 |
);
|
133 |
}
|
134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
135 |
public static function max_chunk_size() {
|
136 |
return min(
|
137 |
ai1wm_parse_size( ini_get( 'post_max_size' ), AI1WM_MAX_CHUNK_SIZE ),
|
105 |
exit;
|
106 |
}
|
107 |
|
108 |
+
wp_remote_post( apply_filters( 'ai1wm_http_import_url', admin_url( 'admin-ajax.php?action=ai1wm_import' ) ), array(
|
109 |
+
'timeout' => apply_filters( 'ai1wm_http_import_timeout', 5 ),
|
110 |
+
'blocking' => apply_filters( 'ai1wm_http_import_blocking', false ),
|
111 |
+
'sslverify' => apply_filters( 'ai1wm_http_import_sslverify', false ),
|
112 |
+
'headers' => apply_filters( 'ai1wm_http_import_headers', array() ),
|
113 |
+
'body' => apply_filters( 'ai1wm_http_import_body', $params ),
|
114 |
+
) );
|
115 |
+
exit;
|
116 |
}
|
117 |
}
|
118 |
|
139 |
);
|
140 |
}
|
141 |
|
142 |
+
public static function http_import_headers( $headers = array() ) {
|
143 |
+
if ( ( $user = get_option( AI1WM_AUTH_USER ) ) && ( $password = get_option( AI1WM_AUTH_PASSWORD ) ) ) {
|
144 |
+
if ( ( $hash = base64_encode( sprintf( '%s:%s', $user, $password ) ) ) ) {
|
145 |
+
$headers['Authorization'] = sprintf( 'Basic %s', $hash );
|
146 |
+
}
|
147 |
+
}
|
148 |
+
|
149 |
+
return $headers;
|
150 |
+
}
|
151 |
+
|
152 |
public static function max_chunk_size() {
|
153 |
return min(
|
154 |
ai1wm_parse_size( ini_get( 'post_max_size' ), AI1WM_MAX_CHUNK_SIZE ),
|
lib/controller/class-ai1wm-main-controller.php
CHANGED
@@ -34,35 +34,41 @@ class Ai1wm_Main_Controller {
|
|
34 |
register_activation_hook( AI1WM_PLUGIN_BASENAME, array( $this, 'activation_hook' ) );
|
35 |
|
36 |
// Activate hooks
|
37 |
-
$this->activate_actions()
|
38 |
-
|
39 |
-
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
* Activation hook callback
|
44 |
*
|
45 |
-
* @return
|
46 |
*/
|
47 |
public function activation_hook() {
|
|
|
|
|
|
|
|
|
|
|
48 |
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
/**
|
52 |
* Initializes language domain for the plugin
|
53 |
*
|
54 |
-
* @return
|
55 |
*/
|
56 |
private function activate_textdomain() {
|
57 |
load_plugin_textdomain( AI1WM_PLUGIN_NAME, false, false );
|
58 |
-
|
59 |
-
return $this;
|
60 |
}
|
61 |
|
62 |
/**
|
63 |
* Register listeners for actions
|
64 |
*
|
65 |
-
* @return
|
66 |
*/
|
67 |
private function activate_actions() {
|
68 |
// Init
|
@@ -71,12 +77,12 @@ class Ai1wm_Main_Controller {
|
|
71 |
// Router
|
72 |
add_action( 'admin_init', array( $this, 'router' ) );
|
73 |
|
|
|
|
|
|
|
74 |
// Admin header
|
75 |
add_action( 'admin_head', array( $this, 'admin_head' ) );
|
76 |
|
77 |
-
// Create initial folders
|
78 |
-
add_action( 'admin_init', array( $this, 'create_folders' ) );
|
79 |
-
|
80 |
// All in One WP Migration
|
81 |
add_action( 'plugins_loaded', array( $this, 'ai1wm_loaded' ), 10 );
|
82 |
|
@@ -100,23 +106,19 @@ class Ai1wm_Main_Controller {
|
|
100 |
|
101 |
// Enqueue updater scripts and styles
|
102 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_updater_scripts_and_styles' ), 5 );
|
103 |
-
|
104 |
-
return $this;
|
105 |
}
|
106 |
|
107 |
/**
|
108 |
* Register listeners for filters
|
109 |
*
|
110 |
-
* @return
|
111 |
*/
|
112 |
private function activate_filters() {
|
113 |
-
// Add
|
114 |
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
|
115 |
|
116 |
// Add custom schedules
|
117 |
add_filter( 'cron_schedules', array( $this, 'add_cron_schedules' ), 9999 );
|
118 |
-
|
119 |
-
return $this;
|
120 |
}
|
121 |
|
122 |
/**
|
@@ -128,12 +130,6 @@ class Ai1wm_Main_Controller {
|
|
128 |
// Add export commands
|
129 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Init::execute', 5 );
|
130 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Compatibility::execute', 5 );
|
131 |
-
|
132 |
-
// Resolve URL address
|
133 |
-
if ( ai1wm_is_scheduled_backup() ) {
|
134 |
-
add_filter( 'ai1wm_export', 'Ai1wm_Export_Resolve::execute', 5 );
|
135 |
-
}
|
136 |
-
|
137 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Archive::execute', 10 );
|
138 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Config::execute', 50 );
|
139 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Config_File::execute', 60 );
|
@@ -147,12 +143,6 @@ class Ai1wm_Main_Controller {
|
|
147 |
// Add import commands
|
148 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 );
|
149 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Compatibility::execute', 10 );
|
150 |
-
|
151 |
-
// Resolve URL address
|
152 |
-
if ( ai1wm_is_scheduled_backup() ) {
|
153 |
-
add_filter( 'ai1wm_import', 'Ai1wm_Import_Resolve::execute', 10 );
|
154 |
-
}
|
155 |
-
|
156 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Validate::execute', 50 );
|
157 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 );
|
158 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Blogs::execute', 150 );
|
@@ -200,6 +190,12 @@ class Ai1wm_Main_Controller {
|
|
200 |
// Add automatic plugins update
|
201 |
add_action( 'wp_maybe_auto_update', 'Ai1wm_Updater_Controller::check_for_updates' );
|
202 |
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
// Add chunk size limit
|
204 |
add_filter( 'ai1wm_max_chunk_size', 'Ai1wm_Import_Controller::max_chunk_size' );
|
205 |
|
@@ -216,6 +212,155 @@ class Ai1wm_Main_Controller {
|
|
216 |
add_filter( 'plugin_row_meta', 'Ai1wm_Updater_Controller::plugin_row_meta', 10, 2 );
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
219 |
/**
|
220 |
* Display multisite notice
|
221 |
*
|
@@ -280,89 +425,25 @@ class Ai1wm_Main_Controller {
|
|
280 |
}
|
281 |
|
282 |
/**
|
283 |
-
*
|
284 |
*
|
285 |
-
* @return
|
286 |
*/
|
287 |
-
public function
|
288 |
-
|
289 |
-
$links[] = Ai1wm_Template::get_content( 'main/get-support' );
|
290 |
-
}
|
291 |
-
|
292 |
-
return $links;
|
293 |
}
|
294 |
|
295 |
/**
|
296 |
-
*
|
297 |
*
|
298 |
-
* @return
|
299 |
*/
|
300 |
-
public function
|
301 |
-
|
302 |
-
|
303 |
-
if ( ! mkdir( AI1WM_STORAGE_PATH ) ) {
|
304 |
-
if ( is_multisite() ) {
|
305 |
-
return add_action( 'network_admin_notices', array( $this, 'storage_path_notice' ) );
|
306 |
-
} else {
|
307 |
-
return add_action( 'admin_notices', array( $this, 'storage_path_notice' ) );
|
308 |
-
}
|
309 |
-
}
|
310 |
-
}
|
311 |
-
|
312 |
-
// Check if index.php is created in storage folder
|
313 |
-
if ( ! is_file( AI1WM_STORAGE_INDEX ) ) {
|
314 |
-
if ( ! Ai1wm_File_Index::create( AI1WM_STORAGE_INDEX ) ) {
|
315 |
-
if ( is_multisite() ) {
|
316 |
-
return add_action( 'network_admin_notices', array( $this, 'storage_index_notice' ) );
|
317 |
-
} else {
|
318 |
-
return add_action( 'admin_notices', array( $this, 'storage_index_notice' ) );
|
319 |
-
}
|
320 |
-
}
|
321 |
-
}
|
322 |
-
|
323 |
-
// Check if ai1wm-backups folder is created
|
324 |
-
if ( ! is_dir( AI1WM_BACKUPS_PATH ) ) {
|
325 |
-
if ( ! mkdir( AI1WM_BACKUPS_PATH ) ) {
|
326 |
-
if ( is_multisite() ) {
|
327 |
-
return add_action( 'network_admin_notices', array( $this, 'backups_path_notice' ) );
|
328 |
-
} else {
|
329 |
-
return add_action( 'admin_notices', array( $this, 'backups_path_notice' ) );
|
330 |
-
}
|
331 |
-
}
|
332 |
-
}
|
333 |
-
|
334 |
-
// Check if .htaccess is created in backups folder
|
335 |
-
if ( ! is_file( AI1WM_BACKUPS_HTACCESS ) ) {
|
336 |
-
if ( ! Ai1wm_File_Htaccess::create( AI1WM_BACKUPS_HTACCESS ) ) {
|
337 |
-
if ( is_multisite() ) {
|
338 |
-
return add_action( 'network_admin_notices', array( $this, 'backups_htaccess_notice' ) );
|
339 |
-
} else {
|
340 |
-
return add_action( 'admin_notices', array( $this, 'backups_htaccess_notice' ) );
|
341 |
-
}
|
342 |
-
}
|
343 |
-
}
|
344 |
-
|
345 |
-
// Check if web.config is created in backups folder
|
346 |
-
if ( ! is_file( AI1WM_BACKUPS_WEBCONFIG ) ) {
|
347 |
-
if ( ! Ai1wm_File_Webconfig::create( AI1WM_BACKUPS_WEBCONFIG ) ) {
|
348 |
-
if ( is_multisite() ) {
|
349 |
-
return add_action( 'network_admin_notices', array( $this, 'backups_webconfig_notice' ) );
|
350 |
-
} else {
|
351 |
-
return add_action( 'admin_notices', array( $this, 'backups_webconfig_notice' ) );
|
352 |
-
}
|
353 |
-
}
|
354 |
}
|
355 |
|
356 |
-
|
357 |
-
if ( ! is_file( AI1WM_BACKUPS_INDEX ) ) {
|
358 |
-
if ( ! Ai1wm_File_Index::create( AI1WM_BACKUPS_INDEX ) ) {
|
359 |
-
if ( is_multisite() ) {
|
360 |
-
return add_action( 'network_admin_notices', array( $this, 'backups_index_notice' ) );
|
361 |
-
} else {
|
362 |
-
return add_action( 'admin_notices', array( $this, 'backups_index_notice' ) );
|
363 |
-
}
|
364 |
-
}
|
365 |
-
}
|
366 |
}
|
367 |
|
368 |
/**
|
@@ -508,6 +589,22 @@ class Ai1wm_Main_Controller {
|
|
508 |
),
|
509 |
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
510 |
) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
511 |
}
|
512 |
|
513 |
/**
|
@@ -568,20 +665,47 @@ class Ai1wm_Main_Controller {
|
|
568 |
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
569 |
),
|
570 |
'filters' => array(
|
571 |
-
'ai1wm_archive_extension' => array( 'wpress'
|
572 |
'ai1wm_archive_size' => apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ),
|
573 |
),
|
574 |
) );
|
575 |
|
576 |
wp_localize_script( 'ai1wm_import', 'ai1wm_import', array(
|
577 |
-
'ajax'
|
578 |
'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_import' ) ),
|
579 |
),
|
580 |
-
'status'
|
581 |
'url' => wp_make_link_relative( add_query_arg( array( 'secret_key' => get_option( AI1WM_SECRET_KEY ) ), admin_url( 'admin-ajax.php?action=ai1wm_status' ) ) ),
|
582 |
),
|
583 |
-
'secret_key'
|
584 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
585 |
__(
|
586 |
'The file that you are trying to import is over the maximum upload file size limit of <strong>%s</strong>.<br />' .
|
587 |
'You can remove this restriction by purchasing our ' .
|
@@ -590,12 +714,6 @@ class Ai1wm_Main_Controller {
|
|
590 |
),
|
591 |
size_format( apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ) )
|
592 |
),
|
593 |
-
'invalid_extension' => __(
|
594 |
-
'The file type that you have tried to upload is not compatible with this plugin. ' .
|
595 |
-
'Please ensure that your file is a <strong>.wpress</strong> file that was created with the All-in-One WP migration plugin. ' .
|
596 |
-
'<a href="https://help.servmask.com/knowledgebase/invalid-backup-file/" target="_blank">Technical details</a>',
|
597 |
-
AI1WM_PLUGIN_NAME
|
598 |
-
),
|
599 |
) );
|
600 |
}
|
601 |
|
@@ -664,6 +782,27 @@ class Ai1wm_Main_Controller {
|
|
664 |
),
|
665 |
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
666 |
) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
667 |
}
|
668 |
|
669 |
/**
|
@@ -700,6 +839,11 @@ class Ai1wm_Main_Controller {
|
|
700 |
'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_updater' ) ),
|
701 |
),
|
702 |
) );
|
|
|
|
|
|
|
|
|
|
|
703 |
}
|
704 |
|
705 |
/**
|
@@ -755,7 +899,6 @@ class Ai1wm_Main_Controller {
|
|
755 |
add_action( 'wp_ajax_nopriv_ai1wm_export', 'Ai1wm_Export_Controller::export' );
|
756 |
add_action( 'wp_ajax_nopriv_ai1wm_import', 'Ai1wm_Import_Controller::import' );
|
757 |
add_action( 'wp_ajax_nopriv_ai1wm_status', 'Ai1wm_Status_Controller::status' );
|
758 |
-
add_action( 'wp_ajax_nopriv_ai1wm_resolve', 'Ai1wm_Resolve_Controller::resolve' );
|
759 |
add_action( 'wp_ajax_nopriv_ai1wm_backups', 'Ai1wm_Backups_Controller::delete' );
|
760 |
add_action( 'wp_ajax_nopriv_ai1wm_feedback', 'Ai1wm_Feedback_Controller::feedback' );
|
761 |
add_action( 'wp_ajax_nopriv_ai1wm_report', 'Ai1wm_Report_Controller::report' );
|
@@ -764,7 +907,6 @@ class Ai1wm_Main_Controller {
|
|
764 |
add_action( 'wp_ajax_ai1wm_export', 'Ai1wm_Export_Controller::export' );
|
765 |
add_action( 'wp_ajax_ai1wm_import', 'Ai1wm_Import_Controller::import' );
|
766 |
add_action( 'wp_ajax_ai1wm_status', 'Ai1wm_Status_Controller::status' );
|
767 |
-
add_action( 'wp_ajax_ai1wm_resolve', 'Ai1wm_Resolve_Controller::resolve' );
|
768 |
add_action( 'wp_ajax_ai1wm_backups', 'Ai1wm_Backups_Controller::delete' );
|
769 |
add_action( 'wp_ajax_ai1wm_feedback', 'Ai1wm_Feedback_Controller::feedback' );
|
770 |
add_action( 'wp_ajax_ai1wm_report', 'Ai1wm_Report_Controller::report' );
|
34 |
register_activation_hook( AI1WM_PLUGIN_BASENAME, array( $this, 'activation_hook' ) );
|
35 |
|
36 |
// Activate hooks
|
37 |
+
$this->activate_actions();
|
38 |
+
$this->activate_filters();
|
39 |
+
$this->activate_textdomain();
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
* Activation hook callback
|
44 |
*
|
45 |
+
* @return void
|
46 |
*/
|
47 |
public function activation_hook() {
|
48 |
+
if ( is_dir( AI1WM_BACKUPS_PATH ) ) {
|
49 |
+
$this->create_backups_htaccess( AI1WM_BACKUPS_HTACCESS );
|
50 |
+
$this->create_backups_webconfig( AI1WM_BACKUPS_WEBCONFIG );
|
51 |
+
$this->create_backups_index( AI1WM_BACKUPS_INDEX );
|
52 |
+
}
|
53 |
|
54 |
+
if ( extension_loaded( 'litespeed' ) ) {
|
55 |
+
$this->create_litespeed_htaccess( AI1WM_WORDPRESS_HTACCESS );
|
56 |
+
}
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
* Initializes language domain for the plugin
|
61 |
*
|
62 |
+
* @return void
|
63 |
*/
|
64 |
private function activate_textdomain() {
|
65 |
load_plugin_textdomain( AI1WM_PLUGIN_NAME, false, false );
|
|
|
|
|
66 |
}
|
67 |
|
68 |
/**
|
69 |
* Register listeners for actions
|
70 |
*
|
71 |
+
* @return void
|
72 |
*/
|
73 |
private function activate_actions() {
|
74 |
// Init
|
77 |
// Router
|
78 |
add_action( 'admin_init', array( $this, 'router' ) );
|
79 |
|
80 |
+
// Setup folders
|
81 |
+
add_action( 'admin_init', array( $this, 'setup_folders' ) );
|
82 |
+
|
83 |
// Admin header
|
84 |
add_action( 'admin_head', array( $this, 'admin_head' ) );
|
85 |
|
|
|
|
|
|
|
86 |
// All in One WP Migration
|
87 |
add_action( 'plugins_loaded', array( $this, 'ai1wm_loaded' ), 10 );
|
88 |
|
106 |
|
107 |
// Enqueue updater scripts and styles
|
108 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_updater_scripts_and_styles' ), 5 );
|
|
|
|
|
109 |
}
|
110 |
|
111 |
/**
|
112 |
* Register listeners for filters
|
113 |
*
|
114 |
+
* @return void
|
115 |
*/
|
116 |
private function activate_filters() {
|
117 |
+
// Add links to plugin list page
|
118 |
add_filter( 'plugin_row_meta', array( $this, 'plugin_row_meta' ), 10, 2 );
|
119 |
|
120 |
// Add custom schedules
|
121 |
add_filter( 'cron_schedules', array( $this, 'add_cron_schedules' ), 9999 );
|
|
|
|
|
122 |
}
|
123 |
|
124 |
/**
|
130 |
// Add export commands
|
131 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Init::execute', 5 );
|
132 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Compatibility::execute', 5 );
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Archive::execute', 10 );
|
134 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Config::execute', 50 );
|
135 |
add_filter( 'ai1wm_export', 'Ai1wm_Export_Config_File::execute', 60 );
|
143 |
// Add import commands
|
144 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 );
|
145 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Compatibility::execute', 10 );
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Validate::execute', 50 );
|
147 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 );
|
148 |
add_filter( 'ai1wm_import', 'Ai1wm_Import_Blogs::execute', 150 );
|
190 |
// Add automatic plugins update
|
191 |
add_action( 'wp_maybe_auto_update', 'Ai1wm_Updater_Controller::check_for_updates' );
|
192 |
|
193 |
+
// Add HTTP export headers
|
194 |
+
add_filter( 'ai1wm_http_export_headers', 'Ai1wm_Export_Controller::http_export_headers' );
|
195 |
+
|
196 |
+
// Add HTTP import headers
|
197 |
+
add_filter( 'ai1wm_http_import_headers', 'Ai1wm_Import_Controller::http_import_headers' );
|
198 |
+
|
199 |
// Add chunk size limit
|
200 |
add_filter( 'ai1wm_max_chunk_size', 'Ai1wm_Import_Controller::max_chunk_size' );
|
201 |
|
212 |
add_filter( 'plugin_row_meta', 'Ai1wm_Updater_Controller::plugin_row_meta', 10, 2 );
|
213 |
}
|
214 |
|
215 |
+
/**
|
216 |
+
* Create folders and files needed for plugin operation, if they don't exist
|
217 |
+
*
|
218 |
+
* @return void
|
219 |
+
*/
|
220 |
+
public function setup_folders() {
|
221 |
+
// Check if storage folder is created
|
222 |
+
if ( ! is_dir( AI1WM_STORAGE_PATH ) ) {
|
223 |
+
$this->create_storage_folder( AI1WM_STORAGE_PATH );
|
224 |
+
}
|
225 |
+
|
226 |
+
// Check if backups folder is created
|
227 |
+
if ( ! is_dir( AI1WM_BACKUPS_PATH ) ) {
|
228 |
+
$this->create_backups_folder( AI1WM_BACKUPS_PATH );
|
229 |
+
}
|
230 |
+
|
231 |
+
// Check if index.php is created in storage folder
|
232 |
+
if ( ! is_file( AI1WM_STORAGE_INDEX ) ) {
|
233 |
+
$this->create_storage_index( AI1WM_STORAGE_INDEX );
|
234 |
+
}
|
235 |
+
|
236 |
+
// Check if index.php is created in backups folder
|
237 |
+
if ( ! is_file( AI1WM_BACKUPS_INDEX ) ) {
|
238 |
+
$this->create_backups_index( AI1WM_BACKUPS_INDEX );
|
239 |
+
}
|
240 |
+
|
241 |
+
// Check if .htaccess is created in backups folder
|
242 |
+
if ( ! is_file( AI1WM_BACKUPS_HTACCESS ) ) {
|
243 |
+
$this->create_backups_htaccess( AI1WM_BACKUPS_HTACCESS );
|
244 |
+
}
|
245 |
+
|
246 |
+
// Check if web.config is created in backups folder
|
247 |
+
if ( ! is_file( AI1WM_BACKUPS_WEBCONFIG ) ) {
|
248 |
+
$this->create_backups_webconfig( AI1WM_BACKUPS_WEBCONFIG );
|
249 |
+
}
|
250 |
+
}
|
251 |
+
|
252 |
+
/**
|
253 |
+
* Create storage folder
|
254 |
+
*
|
255 |
+
* @param string Path to folder
|
256 |
+
* @return void
|
257 |
+
*/
|
258 |
+
public function create_storage_folder( $path ) {
|
259 |
+
if ( ! Ai1wm_Directory::create( $path ) ) {
|
260 |
+
if ( is_multisite() ) {
|
261 |
+
return add_action( 'network_admin_notices', array( $this, 'storage_path_notice' ) );
|
262 |
+
} else {
|
263 |
+
return add_action( 'admin_notices', array( $this, 'storage_path_notice' ) );
|
264 |
+
}
|
265 |
+
}
|
266 |
+
}
|
267 |
+
|
268 |
+
/**
|
269 |
+
* Create backups folder
|
270 |
+
*
|
271 |
+
* @param string Path to folder
|
272 |
+
* @return void
|
273 |
+
*/
|
274 |
+
public function create_backups_folder( $path ) {
|
275 |
+
if ( ! Ai1wm_Directory::create( $path ) ) {
|
276 |
+
if ( is_multisite() ) {
|
277 |
+
return add_action( 'network_admin_notices', array( $this, 'backups_path_notice' ) );
|
278 |
+
} else {
|
279 |
+
return add_action( 'admin_notices', array( $this, 'backups_path_notice' ) );
|
280 |
+
}
|
281 |
+
}
|
282 |
+
}
|
283 |
+
|
284 |
+
/**
|
285 |
+
* Create storage index.php file
|
286 |
+
*
|
287 |
+
* @param string Path to file
|
288 |
+
* @return void
|
289 |
+
*/
|
290 |
+
public function create_storage_index( $path ) {
|
291 |
+
if ( ! Ai1wm_File_Index::create( $path ) ) {
|
292 |
+
if ( is_multisite() ) {
|
293 |
+
return add_action( 'network_admin_notices', array( $this, 'storage_index_notice' ) );
|
294 |
+
} else {
|
295 |
+
return add_action( 'admin_notices', array( $this, 'storage_index_notice' ) );
|
296 |
+
}
|
297 |
+
}
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Create backups .htaccess file
|
302 |
+
*
|
303 |
+
* @param string Path to file
|
304 |
+
* @return void
|
305 |
+
*/
|
306 |
+
public function create_backups_htaccess( $path ) {
|
307 |
+
if ( ! Ai1wm_File_Htaccess::create( $path ) ) {
|
308 |
+
if ( is_multisite() ) {
|
309 |
+
return add_action( 'network_admin_notices', array( $this, 'backups_htaccess_notice' ) );
|
310 |
+
} else {
|
311 |
+
return add_action( 'admin_notices', array( $this, 'backups_htaccess_notice' ) );
|
312 |
+
}
|
313 |
+
}
|
314 |
+
}
|
315 |
+
|
316 |
+
/**
|
317 |
+
* Create backups web.config file
|
318 |
+
*
|
319 |
+
* @param string Path to file
|
320 |
+
* @return void
|
321 |
+
*/
|
322 |
+
public function create_backups_webconfig( $path ) {
|
323 |
+
if ( ! Ai1wm_File_Webconfig::create( $path ) ) {
|
324 |
+
if ( is_multisite() ) {
|
325 |
+
return add_action( 'network_admin_notices', array( $this, 'backups_webconfig_notice' ) );
|
326 |
+
} else {
|
327 |
+
return add_action( 'admin_notices', array( $this, 'backups_webconfig_notice' ) );
|
328 |
+
}
|
329 |
+
}
|
330 |
+
}
|
331 |
+
|
332 |
+
/**
|
333 |
+
* Create backups index.php file
|
334 |
+
*
|
335 |
+
* @param string Path to file
|
336 |
+
* @return void
|
337 |
+
*/
|
338 |
+
public function create_backups_index( $path ) {
|
339 |
+
if ( ! Ai1wm_File_Index::create( $path ) ) {
|
340 |
+
if ( is_multisite() ) {
|
341 |
+
return add_action( 'network_admin_notices', array( $this, 'backups_index_notice' ) );
|
342 |
+
} else {
|
343 |
+
return add_action( 'admin_notices', array( $this, 'backups_index_notice' ) );
|
344 |
+
}
|
345 |
+
}
|
346 |
+
}
|
347 |
+
|
348 |
+
/**
|
349 |
+
* If the "noabort" environment variable has been set,
|
350 |
+
* the script will continue to run even though the connection has been broken
|
351 |
+
*
|
352 |
+
* @return void
|
353 |
+
*/
|
354 |
+
public function create_litespeed_htaccess( $path ) {
|
355 |
+
if ( ! Ai1wm_File_Htaccess::litespeed( $path ) ) {
|
356 |
+
if ( is_multisite() ) {
|
357 |
+
return add_action( 'network_admin_notices', array( $this, 'wordpress_htaccess_notice' ) );
|
358 |
+
} else {
|
359 |
+
return add_action( 'admin_notices', array( $this, 'wordpress_htaccess_notice' ) );
|
360 |
+
}
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
/**
|
365 |
* Display multisite notice
|
366 |
*
|
425 |
}
|
426 |
|
427 |
/**
|
428 |
+
* Display notice for .htaccess file in WordPress directory
|
429 |
*
|
430 |
+
* @return void
|
431 |
*/
|
432 |
+
public function wordpress_htaccess_notice() {
|
433 |
+
Ai1wm_Template::render( 'main/wordpress-htaccess-notice' );
|
|
|
|
|
|
|
|
|
434 |
}
|
435 |
|
436 |
/**
|
437 |
+
* Add links to plugin list page
|
438 |
*
|
439 |
+
* @return array
|
440 |
*/
|
441 |
+
public function plugin_row_meta( $links, $file ) {
|
442 |
+
if ( $file == AI1WM_PLUGIN_BASENAME ) {
|
443 |
+
$links[] = Ai1wm_Template::get_content( 'main/get-support' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
}
|
445 |
|
446 |
+
return $links;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
447 |
}
|
448 |
|
449 |
/**
|
589 |
),
|
590 |
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
591 |
) );
|
592 |
+
|
593 |
+
wp_localize_script( 'ai1wm_export', 'ai1wm_locale', array(
|
594 |
+
'stop_exporting_your_website' => __( 'You are about to stop exporting your website, are you sure?', AI1WM_PLUGIN_NAME ),
|
595 |
+
'preparing_to_export' => __( 'Preparing to export...', AI1WM_PLUGIN_NAME ),
|
596 |
+
'unable_to_export' => __( 'Unable to export', AI1WM_PLUGIN_NAME ),
|
597 |
+
'unable_to_start_the_export' => __( 'Unable to start the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
598 |
+
'unable_to_run_the_export' => __( 'Unable to run the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
599 |
+
'unable_to_stop_the_export' => __( 'Unable to stop the export. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
600 |
+
'please_wait_stopping_the_export' => __( 'Please wait, stopping the export...', AI1WM_PLUGIN_NAME ),
|
601 |
+
'close_export' => __( 'Close', AI1WM_PLUGIN_NAME ),
|
602 |
+
'stop_export' => __( 'Stop export', AI1WM_PLUGIN_NAME ),
|
603 |
+
'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ),
|
604 |
+
'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ),
|
605 |
+
'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ),
|
606 |
+
'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ),
|
607 |
+
) );
|
608 |
}
|
609 |
|
610 |
/**
|
665 |
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
666 |
),
|
667 |
'filters' => array(
|
668 |
+
'ai1wm_archive_extension' => array( 'wpress' ),
|
669 |
'ai1wm_archive_size' => apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ),
|
670 |
),
|
671 |
) );
|
672 |
|
673 |
wp_localize_script( 'ai1wm_import', 'ai1wm_import', array(
|
674 |
+
'ajax' => array(
|
675 |
'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_import' ) ),
|
676 |
),
|
677 |
+
'status' => array(
|
678 |
'url' => wp_make_link_relative( add_query_arg( array( 'secret_key' => get_option( AI1WM_SECRET_KEY ) ), admin_url( 'admin-ajax.php?action=ai1wm_status' ) ) ),
|
679 |
),
|
680 |
+
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
681 |
+
) );
|
682 |
+
|
683 |
+
wp_localize_script( 'ai1wm_import', 'ai1wm_locale', array(
|
684 |
+
'stop_importing_your_website' => __( 'You are about to stop importing your website, are you sure?', AI1WM_PLUGIN_NAME ),
|
685 |
+
'preparing_to_import' => __( 'Preparing to import...', AI1WM_PLUGIN_NAME ),
|
686 |
+
'unable_to_import' => __( 'Unable to import', AI1WM_PLUGIN_NAME ),
|
687 |
+
'unable_to_start_the_import' => __( 'Unable to start the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
688 |
+
'unable_to_confirm_the_import' => __( 'Unable to confirm the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
689 |
+
'unable_to_prepare_blogs_on_import' => __( 'Unable to prepare blogs on import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
690 |
+
'unable_to_stop_the_import' => __( 'Unable to stop the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
691 |
+
'please_wait_stopping_the_export' => __( 'Please wait, stopping the import...', AI1WM_PLUGIN_NAME ),
|
692 |
+
'close_import' => __( 'Close', AI1WM_PLUGIN_NAME ),
|
693 |
+
'stop_import' => __( 'Stop import', AI1WM_PLUGIN_NAME ),
|
694 |
+
'confirm_import' => __( 'Proceed', AI1WM_PLUGIN_NAME ),
|
695 |
+
'continue_import' => __( 'Continue', AI1WM_PLUGIN_NAME ),
|
696 |
+
'please_do_not_close_this_browser' => __( 'Please do not close this browser window or your import will fail', AI1WM_PLUGIN_NAME ),
|
697 |
+
'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ),
|
698 |
+
'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ),
|
699 |
+
'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ),
|
700 |
+
'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ),
|
701 |
+
'problem_while_uploading_your_file' => __( 'We are sorry, there seems to be a problem while uploading your file. Follow <a href="https://www.youtube.com/watch?v=mRp7qTFYKgs" target="_blank">this guide</a> to resolve it.', AI1WM_PLUGIN_NAME ),
|
702 |
+
'invalid_archive_extension' => __(
|
703 |
+
'The file type that you have tried to upload is not compatible with this plugin. ' .
|
704 |
+
'Please ensure that your file is a <strong>.wpress</strong> file that was created with the All-in-One WP migration plugin. ' .
|
705 |
+
'<a href="https://help.servmask.com/knowledgebase/invalid-backup-file/" target="_blank">Technical details</a>',
|
706 |
+
AI1WM_PLUGIN_NAME
|
707 |
+
),
|
708 |
+
'invalid_archive_size' => sprintf(
|
709 |
__(
|
710 |
'The file that you are trying to import is over the maximum upload file size limit of <strong>%s</strong>.<br />' .
|
711 |
'You can remove this restriction by purchasing our ' .
|
714 |
),
|
715 |
size_format( apply_filters( 'ai1wm_max_file_size', AI1WM_MAX_FILE_SIZE ) )
|
716 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
717 |
) );
|
718 |
}
|
719 |
|
782 |
),
|
783 |
'secret_key' => get_option( AI1WM_SECRET_KEY ),
|
784 |
) );
|
785 |
+
|
786 |
+
wp_localize_script( 'ai1wm_backups', 'ai1wm_locale', array(
|
787 |
+
'stop_importing_your_website' => __( 'You are about to stop importing your website, are you sure?', AI1WM_PLUGIN_NAME ),
|
788 |
+
'preparing_to_import' => __( 'Preparing to import...', AI1WM_PLUGIN_NAME ),
|
789 |
+
'unable_to_import' => __( 'Unable to import', AI1WM_PLUGIN_NAME ),
|
790 |
+
'unable_to_start_the_import' => __( 'Unable to start the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
791 |
+
'unable_to_confirm_the_import' => __( 'Unable to confirm the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
792 |
+
'unable_to_prepare_blogs_on_import' => __( 'Unable to prepare blogs on import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
793 |
+
'unable_to_stop_the_import' => __( 'Unable to stop the import. Refresh the page and try again', AI1WM_PLUGIN_NAME ),
|
794 |
+
'please_wait_stopping_the_export' => __( 'Please wait, stopping the import...', AI1WM_PLUGIN_NAME ),
|
795 |
+
'close_import' => __( 'Close', AI1WM_PLUGIN_NAME ),
|
796 |
+
'stop_import' => __( 'Stop import', AI1WM_PLUGIN_NAME ),
|
797 |
+
'confirm_import' => __( 'Proceed', AI1WM_PLUGIN_NAME ),
|
798 |
+
'continue_import' => __( 'Continue', AI1WM_PLUGIN_NAME ),
|
799 |
+
'please_do_not_close_this_browser' => __( 'Please do not close this browser window or your import will fail', AI1WM_PLUGIN_NAME ),
|
800 |
+
'leave_feedback' => __( 'Leave plugin developers any feedback here', AI1WM_PLUGIN_NAME ),
|
801 |
+
'how_may_we_help_you' => __( 'How may we help you?', AI1WM_PLUGIN_NAME ),
|
802 |
+
'thanks_for_submitting_your_feedback' => __( 'Thanks for submitting your feedback!', AI1WM_PLUGIN_NAME ),
|
803 |
+
'thanks_for_submitting_your_request' => __( 'Thanks for submitting your request!', AI1WM_PLUGIN_NAME ),
|
804 |
+
'want_to_delete_this_file' => __( 'Are you sure you want to delete this file?', AI1WM_PLUGIN_NAME ),
|
805 |
+
) );
|
806 |
}
|
807 |
|
808 |
/**
|
839 |
'url' => wp_make_link_relative( admin_url( 'admin-ajax.php?action=ai1wm_updater' ) ),
|
840 |
),
|
841 |
) );
|
842 |
+
|
843 |
+
wp_localize_script( 'ai1wm_backups', 'ai1wm_locale', array(
|
844 |
+
'check_for_updates' => __( 'Check for updates', AI1WM_PLUGIN_NAME ),
|
845 |
+
'invalid_purchase_id' => __( 'Your purchase ID is invalid, please <a href="mailto:support@servmask.com">contact us</a>', AI1WM_PLUGIN_NAME ),
|
846 |
+
) );
|
847 |
}
|
848 |
|
849 |
/**
|
899 |
add_action( 'wp_ajax_nopriv_ai1wm_export', 'Ai1wm_Export_Controller::export' );
|
900 |
add_action( 'wp_ajax_nopriv_ai1wm_import', 'Ai1wm_Import_Controller::import' );
|
901 |
add_action( 'wp_ajax_nopriv_ai1wm_status', 'Ai1wm_Status_Controller::status' );
|
|
|
902 |
add_action( 'wp_ajax_nopriv_ai1wm_backups', 'Ai1wm_Backups_Controller::delete' );
|
903 |
add_action( 'wp_ajax_nopriv_ai1wm_feedback', 'Ai1wm_Feedback_Controller::feedback' );
|
904 |
add_action( 'wp_ajax_nopriv_ai1wm_report', 'Ai1wm_Report_Controller::report' );
|
907 |
add_action( 'wp_ajax_ai1wm_export', 'Ai1wm_Export_Controller::export' );
|
908 |
add_action( 'wp_ajax_ai1wm_import', 'Ai1wm_Import_Controller::import' );
|
909 |
add_action( 'wp_ajax_ai1wm_status', 'Ai1wm_Status_Controller::status' );
|
|
|
910 |
add_action( 'wp_ajax_ai1wm_backups', 'Ai1wm_Backups_Controller::delete' );
|
911 |
add_action( 'wp_ajax_ai1wm_feedback', 'Ai1wm_Feedback_Controller::feedback' );
|
912 |
add_action( 'wp_ajax_ai1wm_report', 'Ai1wm_Report_Controller::report' );
|
lib/controller/class-ai1wm-resolve-controller.php
DELETED
@@ -1,62 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (C) 2014-2018 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
|
7 |
-
* the Free Software Foundation, either version 3 of the License, or
|
8 |
-
* (at your option) any later version.
|
9 |
-
*
|
10 |
-
* This program is distributed in the hope that it will be useful,
|
11 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
* GNU General Public License for more details.
|
14 |
-
*
|
15 |
-
* You should have received a copy of the GNU General Public License
|
16 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
-
*
|
18 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
19 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
20 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
21 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
22 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
-
*/
|
25 |
-
|
26 |
-
class Ai1wm_Resolve_Controller {
|
27 |
-
|
28 |
-
public static function resolve( $params = array() ) {
|
29 |
-
|
30 |
-
// Set params
|
31 |
-
if ( empty( $params ) ) {
|
32 |
-
$params = stripslashes_deep( $_GET );
|
33 |
-
}
|
34 |
-
|
35 |
-
// Set secret key
|
36 |
-
$secret_key = null;
|
37 |
-
if ( isset( $params['secret_key'] ) ) {
|
38 |
-
$secret_key = trim( $params['secret_key'] );
|
39 |
-
}
|
40 |
-
|
41 |
-
try {
|
42 |
-
// Ensure that unauthorized people cannot access resolve action
|
43 |
-
ai1wm_verify_secret_key( $secret_key );
|
44 |
-
} catch ( Ai1wm_Not_Valid_Secret_Key_Exception $e ) {
|
45 |
-
exit;
|
46 |
-
}
|
47 |
-
|
48 |
-
// Set IP address
|
49 |
-
if ( isset( $params['url_ip'] ) && ( $ip = $params['url_ip'] ) ) {
|
50 |
-
update_option( AI1WM_URL_IP, $ip );
|
51 |
-
}
|
52 |
-
|
53 |
-
// Set adapter
|
54 |
-
if ( isset( $params['url_adapter'] ) && ( $adapter = $params['url_adapter'] ) ) {
|
55 |
-
if ( $adapter === 'curl' ) {
|
56 |
-
update_option( AI1WM_URL_ADAPTER, 'curl' );
|
57 |
-
} else {
|
58 |
-
update_option( AI1WM_URL_ADAPTER, 'stream' );
|
59 |
-
}
|
60 |
-
}
|
61 |
-
}
|
62 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/model/class-ai1wm-backups.php
CHANGED
@@ -36,13 +36,13 @@ class Ai1wm_Backups {
|
|
36 |
// Iterate over directory
|
37 |
$iterator = new Ai1wm_Recursive_Directory_Iterator( AI1WM_BACKUPS_PATH );
|
38 |
|
|
|
|
|
|
|
39 |
// Recursively iterate over directory
|
40 |
-
$iterator = new
|
41 |
-
$iterator->setMaxDepth( 3 );
|
42 |
|
43 |
// Get backup files
|
44 |
-
$iterator = new Ai1wm_Extension_Filter( $iterator, array( 'wpress', 'bin' ) );
|
45 |
-
|
46 |
foreach ( $iterator as $item ) {
|
47 |
try {
|
48 |
if ( ai1wm_is_filesize_supported( $item->getPathname() ) ) {
|
36 |
// Iterate over directory
|
37 |
$iterator = new Ai1wm_Recursive_Directory_Iterator( AI1WM_BACKUPS_PATH );
|
38 |
|
39 |
+
// Filter by extensions
|
40 |
+
$iterator = new Ai1wm_Recursive_Extension_Filter( $iterator, array( 'wpress' ) );
|
41 |
+
|
42 |
// Recursively iterate over directory
|
43 |
+
$iterator = new Ai1wm_Recursive_Iterator_Iterator( $iterator, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD );
|
|
|
44 |
|
45 |
// Get backup files
|
|
|
|
|
46 |
foreach ( $iterator as $item ) {
|
47 |
try {
|
48 |
if ( ai1wm_is_filesize_supported( $item->getPathname() ) ) {
|
lib/model/class-ai1wm-extensions.php
CHANGED
@@ -40,7 +40,7 @@ class Ai1wm_Extensions {
|
|
40 |
'about' => AI1WMZE_PLUGIN_ABOUT,
|
41 |
'basename' => AI1WMZE_PLUGIN_BASENAME,
|
42 |
'version' => AI1WMZE_VERSION,
|
43 |
-
'requires' => '1.
|
44 |
'short' => AI1WMZE_PLUGIN_SHORT,
|
45 |
);
|
46 |
}
|
@@ -52,7 +52,7 @@ class Ai1wm_Extensions {
|
|
52 |
'about' => AI1WMAE_PLUGIN_ABOUT,
|
53 |
'basename' => AI1WMAE_PLUGIN_BASENAME,
|
54 |
'version' => AI1WMAE_VERSION,
|
55 |
-
'requires' => '1.
|
56 |
'short' => AI1WMAE_PLUGIN_SHORT,
|
57 |
);
|
58 |
}
|
@@ -64,7 +64,7 @@ class Ai1wm_Extensions {
|
|
64 |
'about' => AI1WMBE_PLUGIN_ABOUT,
|
65 |
'basename' => AI1WMBE_PLUGIN_BASENAME,
|
66 |
'version' => AI1WMBE_VERSION,
|
67 |
-
'requires' => '1.
|
68 |
'short' => AI1WMBE_PLUGIN_SHORT,
|
69 |
);
|
70 |
}
|
@@ -76,7 +76,7 @@ class Ai1wm_Extensions {
|
|
76 |
'about' => AI1WMIE_PLUGIN_ABOUT,
|
77 |
'basename' => AI1WMIE_PLUGIN_BASENAME,
|
78 |
'version' => AI1WMIE_VERSION,
|
79 |
-
'requires' => '1.
|
80 |
'short' => AI1WMIE_PLUGIN_SHORT,
|
81 |
);
|
82 |
}
|
@@ -88,7 +88,7 @@ class Ai1wm_Extensions {
|
|
88 |
'about' => AI1WMDE_PLUGIN_ABOUT,
|
89 |
'basename' => AI1WMDE_PLUGIN_BASENAME,
|
90 |
'version' => AI1WMDE_VERSION,
|
91 |
-
'requires' => '3.
|
92 |
'short' => AI1WMDE_PLUGIN_SHORT,
|
93 |
);
|
94 |
}
|
@@ -100,7 +100,7 @@ class Ai1wm_Extensions {
|
|
100 |
'about' => AI1WMFE_PLUGIN_ABOUT,
|
101 |
'basename' => AI1WMFE_PLUGIN_BASENAME,
|
102 |
'version' => AI1WMFE_VERSION,
|
103 |
-
'requires' => '2.
|
104 |
'short' => AI1WMFE_PLUGIN_SHORT,
|
105 |
);
|
106 |
}
|
@@ -124,7 +124,7 @@ class Ai1wm_Extensions {
|
|
124 |
'about' => AI1WMGE_PLUGIN_ABOUT,
|
125 |
'basename' => AI1WMGE_PLUGIN_BASENAME,
|
126 |
'version' => AI1WMGE_VERSION,
|
127 |
-
'requires' => '2.
|
128 |
'short' => AI1WMGE_PLUGIN_SHORT,
|
129 |
);
|
130 |
}
|
@@ -136,7 +136,7 @@ class Ai1wm_Extensions {
|
|
136 |
'about' => AI1WMEE_PLUGIN_ABOUT,
|
137 |
'basename' => AI1WMEE_PLUGIN_BASENAME,
|
138 |
'version' => AI1WMEE_VERSION,
|
139 |
-
'requires' => '1.
|
140 |
'short' => AI1WMEE_PLUGIN_SHORT,
|
141 |
);
|
142 |
}
|
@@ -148,7 +148,7 @@ class Ai1wm_Extensions {
|
|
148 |
'about' => AI1WMME_PLUGIN_ABOUT,
|
149 |
'basename' => AI1WMME_PLUGIN_BASENAME,
|
150 |
'version' => AI1WMME_VERSION,
|
151 |
-
'requires' => '3.
|
152 |
'short' => AI1WMME_PLUGIN_SHORT,
|
153 |
);
|
154 |
}
|
@@ -160,7 +160,7 @@ class Ai1wm_Extensions {
|
|
160 |
'about' => AI1WMOE_PLUGIN_ABOUT,
|
161 |
'basename' => AI1WMOE_PLUGIN_BASENAME,
|
162 |
'version' => AI1WMOE_VERSION,
|
163 |
-
'requires' => '1.
|
164 |
'short' => AI1WMOE_PLUGIN_SHORT,
|
165 |
);
|
166 |
}
|
@@ -172,7 +172,7 @@ class Ai1wm_Extensions {
|
|
172 |
'about' => AI1WMSE_PLUGIN_ABOUT,
|
173 |
'basename' => AI1WMSE_PLUGIN_BASENAME,
|
174 |
'version' => AI1WMSE_VERSION,
|
175 |
-
'requires' => '3.
|
176 |
'short' => AI1WMSE_PLUGIN_SHORT,
|
177 |
);
|
178 |
}
|
@@ -184,7 +184,7 @@ class Ai1wm_Extensions {
|
|
184 |
'about' => AI1WMUE_PLUGIN_ABOUT,
|
185 |
'basename' => AI1WMUE_PLUGIN_BASENAME,
|
186 |
'version' => AI1WMUE_VERSION,
|
187 |
-
'requires' => '2.
|
188 |
'short' => AI1WMUE_PLUGIN_SHORT,
|
189 |
);
|
190 |
}
|
@@ -196,7 +196,7 @@ class Ai1wm_Extensions {
|
|
196 |
'about' => AI1WMLE_PLUGIN_ABOUT,
|
197 |
'basename' => AI1WMLE_PLUGIN_BASENAME,
|
198 |
'version' => AI1WMLE_VERSION,
|
199 |
-
'requires' => '2.
|
200 |
'short' => AI1WMLE_PLUGIN_SHORT,
|
201 |
);
|
202 |
}
|
40 |
'about' => AI1WMZE_PLUGIN_ABOUT,
|
41 |
'basename' => AI1WMZE_PLUGIN_BASENAME,
|
42 |
'version' => AI1WMZE_VERSION,
|
43 |
+
'requires' => '1.1',
|
44 |
'short' => AI1WMZE_PLUGIN_SHORT,
|
45 |
);
|
46 |
}
|
52 |
'about' => AI1WMAE_PLUGIN_ABOUT,
|
53 |
'basename' => AI1WMAE_PLUGIN_BASENAME,
|
54 |
'version' => AI1WMAE_VERSION,
|
55 |
+
'requires' => '1.3',
|
56 |
'short' => AI1WMAE_PLUGIN_SHORT,
|
57 |
);
|
58 |
}
|
64 |
'about' => AI1WMBE_PLUGIN_ABOUT,
|
65 |
'basename' => AI1WMBE_PLUGIN_BASENAME,
|
66 |
'version' => AI1WMBE_VERSION,
|
67 |
+
'requires' => '1.13',
|
68 |
'short' => AI1WMBE_PLUGIN_SHORT,
|
69 |
);
|
70 |
}
|
76 |
'about' => AI1WMIE_PLUGIN_ABOUT,
|
77 |
'basename' => AI1WMIE_PLUGIN_BASENAME,
|
78 |
'version' => AI1WMIE_VERSION,
|
79 |
+
'requires' => '1.6',
|
80 |
'short' => AI1WMIE_PLUGIN_SHORT,
|
81 |
);
|
82 |
}
|
88 |
'about' => AI1WMDE_PLUGIN_ABOUT,
|
89 |
'basename' => AI1WMDE_PLUGIN_BASENAME,
|
90 |
'version' => AI1WMDE_VERSION,
|
91 |
+
'requires' => '3.32',
|
92 |
'short' => AI1WMDE_PLUGIN_SHORT,
|
93 |
);
|
94 |
}
|
100 |
'about' => AI1WMFE_PLUGIN_ABOUT,
|
101 |
'basename' => AI1WMFE_PLUGIN_BASENAME,
|
102 |
'version' => AI1WMFE_VERSION,
|
103 |
+
'requires' => '2.37',
|
104 |
'short' => AI1WMFE_PLUGIN_SHORT,
|
105 |
);
|
106 |
}
|
124 |
'about' => AI1WMGE_PLUGIN_ABOUT,
|
125 |
'basename' => AI1WMGE_PLUGIN_BASENAME,
|
126 |
'version' => AI1WMGE_VERSION,
|
127 |
+
'requires' => '2.36',
|
128 |
'short' => AI1WMGE_PLUGIN_SHORT,
|
129 |
);
|
130 |
}
|
136 |
'about' => AI1WMEE_PLUGIN_ABOUT,
|
137 |
'basename' => AI1WMEE_PLUGIN_BASENAME,
|
138 |
'version' => AI1WMEE_VERSION,
|
139 |
+
'requires' => '1.10',
|
140 |
'short' => AI1WMEE_PLUGIN_SHORT,
|
141 |
);
|
142 |
}
|
148 |
'about' => AI1WMME_PLUGIN_ABOUT,
|
149 |
'basename' => AI1WMME_PLUGIN_BASENAME,
|
150 |
'version' => AI1WMME_VERSION,
|
151 |
+
'requires' => '3.56',
|
152 |
'short' => AI1WMME_PLUGIN_SHORT,
|
153 |
);
|
154 |
}
|
160 |
'about' => AI1WMOE_PLUGIN_ABOUT,
|
161 |
'basename' => AI1WMOE_PLUGIN_BASENAME,
|
162 |
'version' => AI1WMOE_VERSION,
|
163 |
+
'requires' => '1.23',
|
164 |
'short' => AI1WMOE_PLUGIN_SHORT,
|
165 |
);
|
166 |
}
|
172 |
'about' => AI1WMSE_PLUGIN_ABOUT,
|
173 |
'basename' => AI1WMSE_PLUGIN_BASENAME,
|
174 |
'version' => AI1WMSE_VERSION,
|
175 |
+
'requires' => '3.27',
|
176 |
'short' => AI1WMSE_PLUGIN_SHORT,
|
177 |
);
|
178 |
}
|
184 |
'about' => AI1WMUE_PLUGIN_ABOUT,
|
185 |
'basename' => AI1WMUE_PLUGIN_BASENAME,
|
186 |
'version' => AI1WMUE_VERSION,
|
187 |
+
'requires' => '2.18',
|
188 |
'short' => AI1WMUE_PLUGIN_SHORT,
|
189 |
);
|
190 |
}
|
196 |
'about' => AI1WMLE_PLUGIN_ABOUT,
|
197 |
'basename' => AI1WMLE_PLUGIN_BASENAME,
|
198 |
'version' => AI1WMLE_VERSION,
|
199 |
+
'requires' => '2.27',
|
200 |
'short' => AI1WMLE_PLUGIN_SHORT,
|
201 |
);
|
202 |
}
|
lib/model/class-ai1wm-http.php
DELETED
@@ -1,154 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (C) 2014-2018 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
|
7 |
-
* the Free Software Foundation, either version 3 of the License, or
|
8 |
-
* (at your option) any later version.
|
9 |
-
*
|
10 |
-
* This program is distributed in the hope that it will be useful,
|
11 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
* GNU General Public License for more details.
|
14 |
-
*
|
15 |
-
* You should have received a copy of the GNU General Public License
|
16 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
-
*
|
18 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
19 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
20 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
21 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
22 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
-
*/
|
25 |
-
|
26 |
-
class Ai1wm_Http {
|
27 |
-
|
28 |
-
public static function get( $url, $params = array(), Ai1wm_Http_Abstract $http = null ) {
|
29 |
-
|
30 |
-
// Get IP address
|
31 |
-
$ip = get_option( AI1WM_URL_IP );
|
32 |
-
|
33 |
-
// Get adapter
|
34 |
-
$adapter = get_option( AI1WM_URL_ADAPTER );
|
35 |
-
|
36 |
-
// Get host
|
37 |
-
$host = parse_url( $url, PHP_URL_HOST );
|
38 |
-
|
39 |
-
// Get port
|
40 |
-
$port = parse_url( $url, PHP_URL_PORT );
|
41 |
-
|
42 |
-
// Set HTTP client
|
43 |
-
if ( empty( $http ) ) {
|
44 |
-
$http = Ai1wm_Http_Factory::create( $adapter );
|
45 |
-
}
|
46 |
-
|
47 |
-
// Set HTTP host
|
48 |
-
if ( empty( $port ) ) {
|
49 |
-
$http->set_header( 'Host', $host );
|
50 |
-
} else {
|
51 |
-
$http->set_header( 'Host', "{$host}:{$port}" );
|
52 |
-
}
|
53 |
-
|
54 |
-
// Set HTTP authorization
|
55 |
-
if ( ( $user = get_option( AI1WM_AUTH_USER ) ) && ( $password = get_option( AI1WM_AUTH_PASSWORD ) ) ) {
|
56 |
-
if ( ( $hash = base64_encode( "{$user}:{$password}" ) ) ) {
|
57 |
-
$http->set_header( 'Authorization', "Basic {$hash}" );
|
58 |
-
}
|
59 |
-
}
|
60 |
-
|
61 |
-
$blocking = false;
|
62 |
-
|
63 |
-
// Run non-blocking HTTP request
|
64 |
-
$http->get( add_query_arg( ai1wm_urlencode( $params ), str_replace( "//{$host}", "//{$ip}", $url ) ), $blocking );
|
65 |
-
}
|
66 |
-
|
67 |
-
public static function resolve( $url, $params = array(), Ai1wm_Http_Abstract $http = null ) {
|
68 |
-
|
69 |
-
// Reset IP address and adapter
|
70 |
-
delete_option( AI1WM_URL_IP );
|
71 |
-
delete_option( AI1WM_URL_ADAPTER );
|
72 |
-
|
73 |
-
// Set secret
|
74 |
-
$secret_key = get_option( AI1WM_SECRET_KEY );
|
75 |
-
|
76 |
-
// Set host
|
77 |
-
$host = parse_url( $url, PHP_URL_HOST );
|
78 |
-
|
79 |
-
// Get port
|
80 |
-
$port = parse_url( $url, PHP_URL_PORT );
|
81 |
-
|
82 |
-
// Set server IP address
|
83 |
-
if ( ! empty( $_SERVER['SERVER_ADDR'] ) ) {
|
84 |
-
$server = $_SERVER['SERVER_ADDR'];
|
85 |
-
} elseif ( ! empty( $_SERVER['LOCAL_ADDR'] ) ) {
|
86 |
-
$server = $_SERVER['LOCAL_ADDR'];
|
87 |
-
} else {
|
88 |
-
$server = '127.0.0.1';
|
89 |
-
}
|
90 |
-
|
91 |
-
// Set local IP address
|
92 |
-
$local = gethostbyname( $host );
|
93 |
-
|
94 |
-
// HTTP resolve
|
95 |
-
foreach ( array( 'stream', 'curl' ) as $adapter ) {
|
96 |
-
foreach ( array( $server, $local, $host ) as $ip ) {
|
97 |
-
|
98 |
-
// Add IPv6 support
|
99 |
-
if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 ) ) {
|
100 |
-
$ip = "[$ip]";
|
101 |
-
}
|
102 |
-
|
103 |
-
// Set HTTP params
|
104 |
-
$params = array_merge( $params, array(
|
105 |
-
'secret_key' => $secret_key,
|
106 |
-
'url_ip' => $ip,
|
107 |
-
'url_adapter' => $adapter,
|
108 |
-
) );
|
109 |
-
|
110 |
-
// Set HTTP client
|
111 |
-
if ( empty( $http ) ) {
|
112 |
-
$http = Ai1wm_Http_Factory::create( $adapter );
|
113 |
-
}
|
114 |
-
|
115 |
-
// Set HTTP host
|
116 |
-
if ( empty( $port ) ) {
|
117 |
-
$http->set_header( 'Host', $host );
|
118 |
-
} else {
|
119 |
-
$http->set_header( 'Host', "{$host}:{$port}" );
|
120 |
-
}
|
121 |
-
|
122 |
-
// Set HTTP authorization
|
123 |
-
if ( ( $user = get_option( AI1WM_AUTH_USER ) ) && ( $password = get_option( AI1WM_AUTH_PASSWORD ) ) ) {
|
124 |
-
if ( ( $hash = base64_encode( "{$user}:{$password}" ) ) ) {
|
125 |
-
$http->set_header( 'Authorization', "Basic {$hash}" );
|
126 |
-
}
|
127 |
-
}
|
128 |
-
|
129 |
-
$blocking = true;
|
130 |
-
|
131 |
-
// Run blocking HTTP request
|
132 |
-
$http->get( add_query_arg( ai1wm_urlencode( $params ), str_replace( "//{$host}", "//{$ip}", $url ) ), $blocking );
|
133 |
-
|
134 |
-
// Flush WP cache
|
135 |
-
ai1wm_cache_flush();
|
136 |
-
|
137 |
-
// Is valid adapter?
|
138 |
-
if ( get_option( AI1WM_URL_IP ) && get_option( AI1WM_URL_ADAPTER ) ) {
|
139 |
-
return;
|
140 |
-
}
|
141 |
-
|
142 |
-
// Reset HTTP client
|
143 |
-
$http = null;
|
144 |
-
}
|
145 |
-
}
|
146 |
-
|
147 |
-
// No connection
|
148 |
-
throw new Ai1wm_Http_Exception( __(
|
149 |
-
'There was a problem while reaching your server.<br />' .
|
150 |
-
'Contact <a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
151 |
-
AI1WM_PLUGIN_NAME
|
152 |
-
) );
|
153 |
-
}
|
154 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/model/export/class-ai1wm-export-database.php
CHANGED
@@ -67,24 +67,24 @@ class Ai1wm_Export_Database {
|
|
67 |
$mysql = new Ai1wm_Database_Mysqli( $wpdb );
|
68 |
}
|
69 |
|
70 |
-
//
|
71 |
if ( isset( $params['options']['no_spam_comments'] ) ) {
|
72 |
$mysql->set_table_where_clauses( ai1wm_table_prefix() . 'comments', array( "`comment_approved` != 'spam'" ) )
|
73 |
->set_table_where_clauses( ai1wm_table_prefix() . 'commentmeta', array( sprintf( "`comment_ID` IN ( SELECT `comment_ID` FROM `%s` WHERE `comment_approved` != 'spam' )", ai1wm_table_prefix() . 'comments' ) ) );
|
74 |
}
|
75 |
|
76 |
-
//
|
77 |
if ( isset( $params['options']['no_revisions'] ) ) {
|
78 |
$mysql->set_table_where_clauses( ai1wm_table_prefix() . 'posts', array( "`post_type` != 'revision'" ) );
|
79 |
}
|
80 |
|
81 |
-
$old_table_prefixes = array();
|
82 |
-
$new_table_prefixes = array();
|
83 |
|
84 |
// Set table prefixes
|
85 |
if ( ai1wm_table_prefix() ) {
|
86 |
-
$old_table_prefixes[] = ai1wm_table_prefix();
|
87 |
-
$new_table_prefixes[] = ai1wm_servmask_prefix();
|
88 |
} else {
|
89 |
// Set table prefixes based on table name
|
90 |
foreach ( $mysql->get_tables() as $table_name ) {
|
@@ -92,10 +92,16 @@ class Ai1wm_Export_Database {
|
|
92 |
$new_table_prefixes[] = ai1wm_servmask_prefix() . $table_name;
|
93 |
}
|
94 |
|
95 |
-
// Set table prefixes based on
|
96 |
-
foreach ( array( '
|
97 |
-
$
|
98 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
}
|
101 |
|
@@ -114,11 +120,13 @@ class Ai1wm_Export_Database {
|
|
114 |
// Set database options
|
115 |
$mysql->set_old_table_prefixes( $old_table_prefixes )
|
116 |
->set_new_table_prefixes( $new_table_prefixes )
|
|
|
|
|
117 |
->set_include_table_prefixes( $include_table_prefixes )
|
118 |
->set_exclude_table_prefixes( $exclude_table_prefixes );
|
119 |
|
120 |
-
// Exclude
|
121 |
-
$mysql->set_table_where_clauses( ai1wm_table_prefix() . 'options', array( sprintf( "`option_name` NOT IN ('%s', '%s', '%s', '%s')", AI1WM_ACTIVE_PLUGINS, AI1WM_ACTIVE_TEMPLATE, AI1WM_ACTIVE_STYLESHEET, AI1WM_STATUS ) ) );
|
122 |
|
123 |
// Replace table prefix on columns
|
124 |
$mysql->set_table_prefix_columns( ai1wm_table_prefix() . 'options', array( 'option_name' ) )
|
67 |
$mysql = new Ai1wm_Database_Mysqli( $wpdb );
|
68 |
}
|
69 |
|
70 |
+
// Exclude spam comments
|
71 |
if ( isset( $params['options']['no_spam_comments'] ) ) {
|
72 |
$mysql->set_table_where_clauses( ai1wm_table_prefix() . 'comments', array( "`comment_approved` != 'spam'" ) )
|
73 |
->set_table_where_clauses( ai1wm_table_prefix() . 'commentmeta', array( sprintf( "`comment_ID` IN ( SELECT `comment_ID` FROM `%s` WHERE `comment_approved` != 'spam' )", ai1wm_table_prefix() . 'comments' ) ) );
|
74 |
}
|
75 |
|
76 |
+
// Exclude post revisions
|
77 |
if ( isset( $params['options']['no_revisions'] ) ) {
|
78 |
$mysql->set_table_where_clauses( ai1wm_table_prefix() . 'posts', array( "`post_type` != 'revision'" ) );
|
79 |
}
|
80 |
|
81 |
+
$old_table_prefixes = $old_column_prefixes = array();
|
82 |
+
$new_table_prefixes = $new_column_prefixes = array();
|
83 |
|
84 |
// Set table prefixes
|
85 |
if ( ai1wm_table_prefix() ) {
|
86 |
+
$old_table_prefixes[] = $old_column_prefixes[] = ai1wm_table_prefix();
|
87 |
+
$new_table_prefixes[] = $new_column_prefixes[] = ai1wm_servmask_prefix();
|
88 |
} else {
|
89 |
// Set table prefixes based on table name
|
90 |
foreach ( $mysql->get_tables() as $table_name ) {
|
92 |
$new_table_prefixes[] = ai1wm_servmask_prefix() . $table_name;
|
93 |
}
|
94 |
|
95 |
+
// Set table prefixes based on column name
|
96 |
+
foreach ( array( 'user_roles' ) as $option_name ) {
|
97 |
+
$old_column_prefixes[] = $option_name;
|
98 |
+
$new_column_prefixes[] = ai1wm_servmask_prefix() . $option_name;
|
99 |
+
}
|
100 |
+
|
101 |
+
// Set table prefixes based on column name
|
102 |
+
foreach ( array( 'capabilities', 'user_level', 'dashboard_quick_press_last_post_id', 'user-settings', 'user-settings-time' ) as $meta_key ) {
|
103 |
+
$old_column_prefixes[] = $meta_key;
|
104 |
+
$new_column_prefixes[] = ai1wm_servmask_prefix() . $meta_key;
|
105 |
}
|
106 |
}
|
107 |
|
120 |
// Set database options
|
121 |
$mysql->set_old_table_prefixes( $old_table_prefixes )
|
122 |
->set_new_table_prefixes( $new_table_prefixes )
|
123 |
+
->set_old_column_prefixes( $old_column_prefixes )
|
124 |
+
->set_new_column_prefixes( $new_column_prefixes )
|
125 |
->set_include_table_prefixes( $include_table_prefixes )
|
126 |
->set_exclude_table_prefixes( $exclude_table_prefixes );
|
127 |
|
128 |
+
// Exclude site options
|
129 |
+
$mysql->set_table_where_clauses( ai1wm_table_prefix() . 'options', array( sprintf( "`option_name` NOT IN ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", AI1WM_ACTIVE_PLUGINS, AI1WM_ACTIVE_TEMPLATE, AI1WM_ACTIVE_STYLESHEET, AI1WM_STATUS, AI1WM_SECRET_KEY, AI1WM_AUTH_USER, AI1WM_AUTH_PASSWORD ) ) );
|
130 |
|
131 |
// Replace table prefix on columns
|
132 |
$mysql->set_table_prefix_columns( ai1wm_table_prefix() . 'options', array( 'option_name' ) )
|
lib/model/export/class-ai1wm-export-enumerate.php
CHANGED
@@ -105,35 +105,28 @@ class Ai1wm_Export_Enumerate {
|
|
105 |
// Create map file
|
106 |
$filemap = ai1wm_open( ai1wm_filemap_path( $params ), 'w' );
|
107 |
|
108 |
-
|
|
|
109 |
|
110 |
-
|
111 |
-
|
112 |
|
113 |
-
|
114 |
-
|
115 |
|
116 |
-
|
117 |
-
|
118 |
|
119 |
-
|
120 |
-
|
|
|
|
|
|
|
121 |
|
122 |
-
|
123 |
-
|
124 |
-
if ( $item->isFile() ) {
|
125 |
-
if ( ai1wm_write( $filemap, $iterator->getSubPathName() . PHP_EOL ) ) {
|
126 |
-
$total_files_count++;
|
127 |
-
|
128 |
-
// Add current file size
|
129 |
-
$total_files_size += $iterator->getSize();
|
130 |
-
}
|
131 |
}
|
132 |
}
|
133 |
-
} catch ( Ai1wm_Quota_Exceeded_Exception $e ) {
|
134 |
-
throw new Exception( 'Out of disk space.' );
|
135 |
-
} catch ( Exception $e ) {
|
136 |
-
// Skip bad file permissions
|
137 |
}
|
138 |
|
139 |
// Set progress
|
105 |
// Create map file
|
106 |
$filemap = ai1wm_open( ai1wm_filemap_path( $params ), 'w' );
|
107 |
|
108 |
+
// Iterate over content directory
|
109 |
+
$iterator = new Ai1wm_Recursive_Directory_Iterator( WP_CONTENT_DIR );
|
110 |
|
111 |
+
// Exclude new line file names
|
112 |
+
$iterator = new Ai1wm_Recursive_Newline_Filter( $iterator );
|
113 |
|
114 |
+
// Exclude uploads, plugins or themes
|
115 |
+
$iterator = new Ai1wm_Recursive_Exclude_Filter( $iterator, apply_filters( 'ai1wm_exclude_content_from_export', $exclude_filters ) );
|
116 |
|
117 |
+
// Recursively iterate over content directory
|
118 |
+
$iterator = new Ai1wm_Recursive_Iterator_Iterator( $iterator, RecursiveIteratorIterator::LEAVES_ONLY, RecursiveIteratorIterator::CATCH_GET_CHILD );
|
119 |
|
120 |
+
// Write path line
|
121 |
+
foreach ( $iterator as $item ) {
|
122 |
+
if ( $item->isFile() ) {
|
123 |
+
if ( ai1wm_write( $filemap, $iterator->getSubPathName() . PHP_EOL ) ) {
|
124 |
+
$total_files_count++;
|
125 |
|
126 |
+
// Add current file size
|
127 |
+
$total_files_size += $iterator->getSize();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
128 |
}
|
129 |
}
|
|
|
|
|
|
|
|
|
130 |
}
|
131 |
|
132 |
// Set progress
|
lib/model/export/class-ai1wm-export-resolve.php
DELETED
@@ -1,41 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (C) 2014-2018 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
|
7 |
-
* the Free Software Foundation, either version 3 of the License, or
|
8 |
-
* (at your option) any later version.
|
9 |
-
*
|
10 |
-
* This program is distributed in the hope that it will be useful,
|
11 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
* GNU General Public License for more details.
|
14 |
-
*
|
15 |
-
* You should have received a copy of the GNU General Public License
|
16 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
-
*
|
18 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
19 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
20 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
21 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
22 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
-
*/
|
25 |
-
|
26 |
-
class Ai1wm_Export_Resolve {
|
27 |
-
|
28 |
-
public static function execute( $params ) {
|
29 |
-
|
30 |
-
// Set progress
|
31 |
-
Ai1wm_Status::info( __( 'Resolving URL address...', AI1WM_PLUGIN_NAME ) );
|
32 |
-
|
33 |
-
// HTTP resolve
|
34 |
-
Ai1wm_Http::resolve( admin_url( 'admin-ajax.php?action=ai1wm_resolve' ) );
|
35 |
-
|
36 |
-
// Set progress
|
37 |
-
Ai1wm_Status::info( __( 'Done resolving URL address.', AI1WM_PLUGIN_NAME ) );
|
38 |
-
|
39 |
-
return $params;
|
40 |
-
}
|
41 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/model/http/class-ai1wm-http-abstract.php
DELETED
@@ -1,54 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (C) 2014-2018 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
|
7 |
-
* the Free Software Foundation, either version 3 of the License, or
|
8 |
-
* (at your option) any later version.
|
9 |
-
*
|
10 |
-
* This program is distributed in the hope that it will be useful,
|
11 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
* GNU General Public License for more details.
|
14 |
-
*
|
15 |
-
* You should have received a copy of the GNU General Public License
|
16 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
-
*
|
18 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
19 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
20 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
21 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
22 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
-
*/
|
25 |
-
|
26 |
-
abstract class Ai1wm_Http_Abstract {
|
27 |
-
|
28 |
-
protected $headers = array(
|
29 |
-
'Accept' => '*/*',
|
30 |
-
'Accept-Encoding' => '*',
|
31 |
-
'Accept-Charset' => '*',
|
32 |
-
'Accept-Language' => '*',
|
33 |
-
'User-Agent' => 'Mozilla/5.0',
|
34 |
-
);
|
35 |
-
|
36 |
-
public function __construct() {
|
37 |
-
// Set user agent
|
38 |
-
if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
|
39 |
-
$this->headers['User-Agent'] = $_SERVER['HTTP_USER_AGENT'];
|
40 |
-
}
|
41 |
-
}
|
42 |
-
|
43 |
-
public function set_header( $key, $value ) {
|
44 |
-
$this->headers[ $key ] = $value;
|
45 |
-
|
46 |
-
return $this;
|
47 |
-
}
|
48 |
-
|
49 |
-
public function get_header( $key ) {
|
50 |
-
return $this->headers[ $key ];
|
51 |
-
}
|
52 |
-
|
53 |
-
abstract public function get( $url, $blocking = false );
|
54 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/model/http/class-ai1wm-http-curl.php
DELETED
@@ -1,77 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (C) 2014-2018 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
|
7 |
-
* the Free Software Foundation, either version 3 of the License, or
|
8 |
-
* (at your option) any later version.
|
9 |
-
*
|
10 |
-
* This program is distributed in the hope that it will be useful,
|
11 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
* GNU General Public License for more details.
|
14 |
-
*
|
15 |
-
* You should have received a copy of the GNU General Public License
|
16 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
-
*
|
18 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
19 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
20 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
21 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
22 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
-
*/
|
25 |
-
|
26 |
-
class Ai1wm_Http_Curl extends Ai1wm_Http_Abstract {
|
27 |
-
|
28 |
-
public function get( $url, $blocking = false ) {
|
29 |
-
|
30 |
-
$headers = array();
|
31 |
-
|
32 |
-
// Set headers
|
33 |
-
foreach ( $this->headers as $key => $value ) {
|
34 |
-
$headers[] = "{$key}: {$value}";
|
35 |
-
}
|
36 |
-
|
37 |
-
// Set scheme
|
38 |
-
$scheme = parse_url( $url, PHP_URL_SCHEME );
|
39 |
-
|
40 |
-
// Set host
|
41 |
-
$host = parse_url( $url, PHP_URL_HOST );
|
42 |
-
|
43 |
-
// Set port
|
44 |
-
$port = parse_url( $url, PHP_URL_PORT );
|
45 |
-
|
46 |
-
// Set cURL client
|
47 |
-
$handle = curl_init();
|
48 |
-
|
49 |
-
// Set cURL options
|
50 |
-
curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 5 );
|
51 |
-
curl_setopt( $handle, CURLOPT_TIMEOUT, 5 );
|
52 |
-
curl_setopt( $handle, CURLOPT_URL, $url );
|
53 |
-
curl_setopt( $handle, CURLOPT_FOLLOWLOCATION, true );
|
54 |
-
curl_setopt( $handle, CURLOPT_RETURNTRANSFER, true );
|
55 |
-
curl_setopt( $handle, CURLOPT_SSL_VERIFYHOST, false );
|
56 |
-
curl_setopt( $handle, CURLOPT_SSL_VERIFYPEER, false );
|
57 |
-
curl_setopt( $handle, CURLOPT_HEADER, false );
|
58 |
-
curl_setopt( $handle, CURLOPT_HTTPHEADER, $headers );
|
59 |
-
|
60 |
-
// Send data to server
|
61 |
-
if ( ! curl_exec( $handle ) ) {
|
62 |
-
if ( $scheme === 'https' ) {
|
63 |
-
if ( empty( $port ) ) {
|
64 |
-
curl_setopt( $handle, CURLOPT_URL, str_replace( "https://{$host}", "http://{$host}:443", $url ) );
|
65 |
-
} else {
|
66 |
-
curl_setopt( $handle, CURLOPT_URL, str_replace( "https://{$host}:{$port}", "http://{$host}:{$port}", $url ) );
|
67 |
-
}
|
68 |
-
|
69 |
-
// Re-send data to server
|
70 |
-
curl_exec( $handle );
|
71 |
-
}
|
72 |
-
}
|
73 |
-
|
74 |
-
// Close cURL handle
|
75 |
-
curl_close( $handle );
|
76 |
-
}
|
77 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/model/http/class-ai1wm-http-stream.php
DELETED
@@ -1,110 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (C) 2014-2018 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
|
7 |
-
* the Free Software Foundation, either version 3 of the License, or
|
8 |
-
* (at your option) any later version.
|
9 |
-
*
|
10 |
-
* This program is distributed in the hope that it will be useful,
|
11 |
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12 |
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13 |
-
* GNU General Public License for more details.
|
14 |
-
*
|
15 |
-
* You should have received a copy of the GNU General Public License
|
16 |
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17 |
-
*
|
18 |
-
* ███████╗███████╗██████╗ ██╗ ██╗███╗ ███╗ █████╗ ███████╗██╗ ██╗
|
19 |
-
* ██╔════╝██╔════╝██╔══██╗██║ ██║████╗ ████║██╔══██╗██╔════╝██║ ██╔╝
|
20 |
-
* ███████╗█████╗ ██████╔╝██║ ██║██╔████╔██║███████║███████╗█████╔╝
|
21 |
-
* ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║╚██╔╝██║██╔══██║╚════██║██╔═██╗
|
22 |
-
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
-
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
-
*/
|
25 |
-
|
26 |
-
class Ai1wm_Http_Stream extends Ai1wm_Http_Abstract {
|
27 |
-
|
28 |
-
public function get( $url, $blocking = false ) {
|
29 |
-
|
30 |
-
$headers = array();
|
31 |
-
|
32 |
-
// Set headers
|
33 |
-
foreach ( $this->headers as $key => $value ) {
|
34 |
-
$headers[] = "{$key}: {$value}";
|
35 |
-
}
|
36 |
-
|
37 |
-
// Set scheme
|
38 |
-
$scheme = parse_url( $url, PHP_URL_SCHEME );
|
39 |
-
|
40 |
-
// Set host
|
41 |
-
$host = parse_url( $url, PHP_URL_HOST );
|
42 |
-
|
43 |
-
// Set port
|
44 |
-
$port = parse_url( $url, PHP_URL_PORT );
|
45 |
-
|
46 |
-
// Set path
|
47 |
-
$path = parse_url( $url, PHP_URL_PATH );
|
48 |
-
|
49 |
-
// Set query
|
50 |
-
$query = parse_url( $url, PHP_URL_QUERY );
|
51 |
-
|
52 |
-
// Set port
|
53 |
-
if ( empty( $port ) ) {
|
54 |
-
if ( $scheme === 'https' ) {
|
55 |
-
$port = 443;
|
56 |
-
} else {
|
57 |
-
$port = 80;
|
58 |
-
}
|
59 |
-
}
|
60 |
-
|
61 |
-
// Set stream context
|
62 |
-
$context = stream_context_create( array(
|
63 |
-
'ssl' => array(
|
64 |
-
'verify_peer' => false,
|
65 |
-
'verify_peer_name' => false,
|
66 |
-
'capture_peer_cert' => false,
|
67 |
-
'allow_self_signed' => true,
|
68 |
-
),
|
69 |
-
) );
|
70 |
-
|
71 |
-
// Set stream client
|
72 |
-
if ( $scheme === 'https' ) {
|
73 |
-
if ( ! ( $handle = stream_socket_client( "ssl://{$host}:{$port}", $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context ) ) ) {
|
74 |
-
$handle = stream_socket_client( "tcp://{$host}:{$port}", $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context );
|
75 |
-
}
|
76 |
-
} else {
|
77 |
-
$handle = stream_socket_client( "tcp://{$host}:{$port}", $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context );
|
78 |
-
}
|
79 |
-
|
80 |
-
// Ensure the stream is ready to write to
|
81 |
-
$no_streams = array();
|
82 |
-
$write_streams = array( $handle );
|
83 |
-
stream_select( $no_streams, $write_streams, $no_streams, 0, 200000 );
|
84 |
-
|
85 |
-
// Prepare headers
|
86 |
-
$headers = implode( "\r\n", $headers );
|
87 |
-
|
88 |
-
// Prepare request
|
89 |
-
$request = "GET {$path}?{$query} HTTP/1.0\r\n{$headers}\r\n\r\n";
|
90 |
-
|
91 |
-
// Send data to server
|
92 |
-
if ( ( $length = fwrite( $handle, $request ) ) !== strlen( $request ) ) {
|
93 |
-
trigger_error( sprintf( 'fwrite wrote only %d instead of %d', $length, strlen( $request ) ) );
|
94 |
-
}
|
95 |
-
|
96 |
-
// Set blocking/non-blocking mode on a stream
|
97 |
-
if ( $blocking ) {
|
98 |
-
fread( $handle, 1024 );
|
99 |
-
} else {
|
100 |
-
stream_set_blocking( $handle, 0 );
|
101 |
-
// What we observed is that when the stream is non-blocking, it takes time for the webserver to start a new php thread.
|
102 |
-
// By sleeping for 3s, we give some time for the webserver to start a new php process to process the request.
|
103 |
-
// This is a temporary solution and a new one will be addressed in WM-651
|
104 |
-
sleep( 3 );
|
105 |
-
}
|
106 |
-
|
107 |
-
// Close stream handle
|
108 |
-
fclose( $handle );
|
109 |
-
}
|
110 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lib/model/import/class-ai1wm-import-database.php
CHANGED
@@ -73,11 +73,8 @@ class Ai1wm_Import_Database {
|
|
73 |
// Set progress
|
74 |
Ai1wm_Status::info( sprintf( __( 'Restoring database...<br />%d%% complete', AI1WM_PLUGIN_NAME ), $progress ) );
|
75 |
|
76 |
-
$
|
77 |
-
$
|
78 |
-
|
79 |
-
$old_raw_values = array();
|
80 |
-
$new_raw_values = array();
|
81 |
|
82 |
// Get Blog URLs
|
83 |
foreach ( $blogs as $blog ) {
|
@@ -91,104 +88,106 @@ class Ai1wm_Import_Database {
|
|
91 |
|
92 |
// Add Internal Home URL
|
93 |
if ( ! empty( $blog['Old']['InternalHomeURL'] ) ) {
|
94 |
-
$
|
|
|
|
|
95 |
}
|
96 |
|
97 |
// Get Home URL
|
98 |
foreach ( $home_urls as $home_url ) {
|
99 |
|
100 |
// Get blogs dir Upload Path
|
101 |
-
if ( ! in_array( sprintf( "'%s'", trim( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ) ), $
|
102 |
-
$
|
103 |
-
$
|
104 |
}
|
105 |
|
106 |
// Get sites dir Upload Path
|
107 |
-
if ( ! in_array( sprintf( "'%s'", trim( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ) ), $
|
108 |
-
$
|
109 |
-
$
|
110 |
}
|
111 |
|
112 |
// Handle old and new sites dir style
|
113 |
if ( defined( 'UPLOADBLOGSDIR' ) ) {
|
114 |
|
115 |
// Get plain Upload Path
|
116 |
-
if ( ! in_array( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), $
|
117 |
-
$
|
118 |
-
$
|
119 |
}
|
120 |
|
121 |
// Get URL encoded Upload Path
|
122 |
-
if ( ! in_array( urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $
|
123 |
-
$
|
124 |
-
$
|
125 |
}
|
126 |
|
127 |
// Get JSON escaped Upload Path
|
128 |
-
if ( ! in_array( addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ), $
|
129 |
-
$
|
130 |
-
$
|
131 |
}
|
132 |
|
133 |
// Get plain Upload Path
|
134 |
-
if ( ! in_array( ai1wm_uploads_path( $blog['Old']['BlogID'] ), $
|
135 |
-
$
|
136 |
-
$
|
137 |
}
|
138 |
|
139 |
// Get URL encoded Upload Path
|
140 |
-
if ( ! in_array( urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $
|
141 |
-
$
|
142 |
-
$
|
143 |
}
|
144 |
|
145 |
// Get JSON escaped Upload Path
|
146 |
-
if ( ! in_array( addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ), $
|
147 |
-
$
|
148 |
-
$
|
149 |
}
|
150 |
} else {
|
151 |
|
152 |
// Get files dir Upload URL
|
153 |
-
if ( ! in_array( sprintf( '%s/%s/', untrailingslashit( $home_url ), 'files' ), $
|
154 |
-
$
|
155 |
-
$
|
156 |
}
|
157 |
|
158 |
// Get plain Upload Path
|
159 |
-
if ( ! in_array( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), $
|
160 |
-
$
|
161 |
-
$
|
162 |
}
|
163 |
|
164 |
// Get URL encoded Upload Path
|
165 |
-
if ( ! in_array( urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $
|
166 |
-
$
|
167 |
-
$
|
168 |
}
|
169 |
|
170 |
// Get JSON escaped Upload Path
|
171 |
-
if ( ! in_array( addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ), $
|
172 |
-
$
|
173 |
-
$
|
174 |
}
|
175 |
|
176 |
// Get plain Upload Path
|
177 |
-
if ( ! in_array( ai1wm_uploads_path( $blog['Old']['BlogID'] ), $
|
178 |
-
$
|
179 |
-
$
|
180 |
}
|
181 |
|
182 |
// Get URL encoded Upload Path
|
183 |
-
if ( ! in_array( urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $
|
184 |
-
$
|
185 |
-
$
|
186 |
}
|
187 |
|
188 |
// Get JSON escaped Upload Path
|
189 |
-
if ( ! in_array( addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ), $
|
190 |
-
$
|
191 |
-
$
|
192 |
}
|
193 |
}
|
194 |
}
|
@@ -202,7 +201,9 @@ class Ai1wm_Import_Database {
|
|
202 |
|
203 |
// Add Internal Site URL
|
204 |
if ( ! empty( $blog['Old']['InternalSiteURL'] ) ) {
|
205 |
-
$
|
|
|
|
|
206 |
}
|
207 |
|
208 |
// Get Site URL
|
@@ -233,21 +234,21 @@ class Ai1wm_Import_Database {
|
|
233 |
$new_scheme = parse_url( $blog['New']['SiteURL'], PHP_URL_SCHEME );
|
234 |
|
235 |
// Add domain and path
|
236 |
-
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $
|
237 |
-
$
|
238 |
-
$
|
239 |
}
|
240 |
|
241 |
// Add domain and path with single quote
|
242 |
-
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $
|
243 |
-
$
|
244 |
-
$
|
245 |
}
|
246 |
|
247 |
// Add domain and path with double quote
|
248 |
-
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $
|
249 |
-
$
|
250 |
-
$
|
251 |
}
|
252 |
|
253 |
// Add Site URL scheme
|
@@ -258,29 +259,29 @@ class Ai1wm_Import_Database {
|
|
258 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
259 |
|
260 |
// Add plain Site URL
|
261 |
-
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $
|
262 |
-
$
|
263 |
-
$
|
264 |
}
|
265 |
|
266 |
// Add URL encoded Site URL
|
267 |
-
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $
|
268 |
-
$
|
269 |
-
$
|
270 |
}
|
271 |
|
272 |
// Add JSON escaped Site URL
|
273 |
-
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $
|
274 |
-
$
|
275 |
-
$
|
276 |
}
|
277 |
}
|
278 |
|
279 |
// Add email
|
280 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
281 |
-
if ( ! in_array( sprintf( '@%s', $old_domain ), $
|
282 |
-
$
|
283 |
-
$
|
284 |
}
|
285 |
}
|
286 |
}
|
@@ -296,7 +297,9 @@ class Ai1wm_Import_Database {
|
|
296 |
|
297 |
// Add Internal Home URL
|
298 |
if ( ! empty( $blog['Old']['InternalHomeURL'] ) ) {
|
299 |
-
$
|
|
|
|
|
300 |
}
|
301 |
|
302 |
// Get Home URL
|
@@ -327,21 +330,21 @@ class Ai1wm_Import_Database {
|
|
327 |
$new_scheme = parse_url( $blog['New']['HomeURL'], PHP_URL_SCHEME );
|
328 |
|
329 |
// Add domain and path
|
330 |
-
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $
|
331 |
-
$
|
332 |
-
$
|
333 |
}
|
334 |
|
335 |
// Add domain and path with single quote
|
336 |
-
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $
|
337 |
-
$
|
338 |
-
$
|
339 |
}
|
340 |
|
341 |
// Add domain and path with double quote
|
342 |
-
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $
|
343 |
-
$
|
344 |
-
$
|
345 |
}
|
346 |
|
347 |
// Set Home URL scheme
|
@@ -352,29 +355,29 @@ class Ai1wm_Import_Database {
|
|
352 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
353 |
|
354 |
// Add plain Home URL
|
355 |
-
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $
|
356 |
-
$
|
357 |
-
$
|
358 |
}
|
359 |
|
360 |
// Add URL encoded Home URL
|
361 |
-
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $
|
362 |
-
$
|
363 |
-
$
|
364 |
}
|
365 |
|
366 |
// Add JSON escaped Home URL
|
367 |
-
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $
|
368 |
-
$
|
369 |
-
$
|
370 |
}
|
371 |
}
|
372 |
|
373 |
// Add email
|
374 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
375 |
-
if ( ! in_array( sprintf( '@%s', $old_domain ), $
|
376 |
-
$
|
377 |
-
$
|
378 |
}
|
379 |
}
|
380 |
}
|
@@ -391,7 +394,9 @@ class Ai1wm_Import_Database {
|
|
391 |
|
392 |
// Add Internal Site URL
|
393 |
if ( ! empty( $config['InternalSiteURL'] ) ) {
|
394 |
-
$
|
|
|
|
|
395 |
}
|
396 |
|
397 |
// Get Site URL
|
@@ -422,21 +427,21 @@ class Ai1wm_Import_Database {
|
|
422 |
$new_scheme = parse_url( site_url(), PHP_URL_SCHEME );
|
423 |
|
424 |
// Add domain and path
|
425 |
-
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $
|
426 |
-
$
|
427 |
-
$
|
428 |
}
|
429 |
|
430 |
// Add domain and path with single quote
|
431 |
-
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $
|
432 |
-
$
|
433 |
-
$
|
434 |
}
|
435 |
|
436 |
// Add domain and path with double quote
|
437 |
-
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $
|
438 |
-
$
|
439 |
-
$
|
440 |
}
|
441 |
|
442 |
// Set Site URL scheme
|
@@ -447,29 +452,29 @@ class Ai1wm_Import_Database {
|
|
447 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
448 |
|
449 |
// Add plain Site URL
|
450 |
-
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $
|
451 |
-
$
|
452 |
-
$
|
453 |
}
|
454 |
|
455 |
// Add URL encoded Site URL
|
456 |
-
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $
|
457 |
-
$
|
458 |
-
$
|
459 |
}
|
460 |
|
461 |
// Add JSON escaped Site URL
|
462 |
-
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $
|
463 |
-
$
|
464 |
-
$
|
465 |
}
|
466 |
}
|
467 |
|
468 |
// Add email
|
469 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
470 |
-
if ( ! in_array( sprintf( '@%s', $old_domain ), $
|
471 |
-
$
|
472 |
-
$
|
473 |
}
|
474 |
}
|
475 |
}
|
@@ -485,7 +490,9 @@ class Ai1wm_Import_Database {
|
|
485 |
|
486 |
// Add Internal Home URL
|
487 |
if ( ! empty( $config['InternalHomeURL'] ) ) {
|
488 |
-
$
|
|
|
|
|
489 |
}
|
490 |
|
491 |
// Get Home URL
|
@@ -516,21 +523,21 @@ class Ai1wm_Import_Database {
|
|
516 |
$new_scheme = parse_url( home_url(), PHP_URL_SCHEME );
|
517 |
|
518 |
// Add domain and path
|
519 |
-
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $
|
520 |
-
$
|
521 |
-
$
|
522 |
}
|
523 |
|
524 |
// Add domain and path with single quote
|
525 |
-
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $
|
526 |
-
$
|
527 |
-
$
|
528 |
}
|
529 |
|
530 |
// Add domain and path with double quote
|
531 |
-
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $
|
532 |
-
$
|
533 |
-
$
|
534 |
}
|
535 |
|
536 |
// Add Home URL scheme
|
@@ -541,29 +548,29 @@ class Ai1wm_Import_Database {
|
|
541 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
542 |
|
543 |
// Add plain Home URL
|
544 |
-
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $
|
545 |
-
$
|
546 |
-
$
|
547 |
}
|
548 |
|
549 |
// Add URL encoded Home URL
|
550 |
-
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $
|
551 |
-
$
|
552 |
-
$
|
553 |
}
|
554 |
|
555 |
// Add JSON escaped Home URL
|
556 |
-
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $
|
557 |
-
$
|
558 |
-
$
|
559 |
}
|
560 |
}
|
561 |
|
562 |
// Add email
|
563 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
564 |
-
if ( ! in_array( sprintf( '@%s', $old_domain ), $
|
565 |
-
$
|
566 |
-
$
|
567 |
}
|
568 |
}
|
569 |
}
|
@@ -577,21 +584,21 @@ class Ai1wm_Import_Database {
|
|
577 |
if ( $content_dir !== WP_CONTENT_DIR ) {
|
578 |
|
579 |
// Add plain WordPress Content
|
580 |
-
if ( ! in_array( $content_dir, $
|
581 |
-
$
|
582 |
-
$
|
583 |
}
|
584 |
|
585 |
// Add URL encoded WordPress Content
|
586 |
-
if ( ! in_array( urlencode( $content_dir ), $
|
587 |
-
$
|
588 |
-
$
|
589 |
}
|
590 |
|
591 |
// Add JSON escaped WordPress Content
|
592 |
-
if ( ! in_array( addcslashes( $content_dir, '/' ), $
|
593 |
-
$
|
594 |
-
$
|
595 |
}
|
596 |
}
|
597 |
}
|
@@ -602,31 +609,31 @@ class Ai1wm_Import_Database {
|
|
602 |
if ( ! empty( $replace['OldValues'][ $i ] ) && ! empty( $replace['NewValues'][ $i ] ) ) {
|
603 |
|
604 |
// Add plain replace values
|
605 |
-
if ( ! in_array( $replace['OldValues'][ $i ], $
|
606 |
-
$
|
607 |
-
$
|
608 |
}
|
609 |
|
610 |
// Add URL encoded replace values
|
611 |
-
if ( ! in_array( urlencode( $replace['OldValues'][ $i ] ), $
|
612 |
-
$
|
613 |
-
$
|
614 |
}
|
615 |
|
616 |
// Add JSON Escaped replace values
|
617 |
-
if ( ! in_array( addcslashes( $replace['OldValues'][ $i ], '/' ), $
|
618 |
-
$
|
619 |
-
$
|
620 |
}
|
621 |
}
|
622 |
}
|
623 |
}
|
624 |
|
625 |
-
// Get URL
|
626 |
-
$
|
627 |
|
628 |
-
// Get URL
|
629 |
-
$
|
630 |
|
631 |
// Get secret key
|
632 |
$secret_key = get_option( AI1WM_SECRET_KEY );
|
@@ -637,40 +644,40 @@ class Ai1wm_Import_Database {
|
|
637 |
// Get HTTP password
|
638 |
$auth_password = get_option( AI1WM_AUTH_PASSWORD );
|
639 |
|
640 |
-
$
|
641 |
-
$
|
642 |
|
643 |
// Set main table prefixes
|
644 |
-
$
|
645 |
-
$
|
646 |
|
647 |
// Set site table prefixes
|
648 |
foreach ( $blogs as $blog ) {
|
649 |
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === false ) {
|
650 |
-
$
|
651 |
-
$
|
652 |
}
|
653 |
}
|
654 |
|
655 |
// Set base table prefixes
|
656 |
foreach ( $blogs as $blog ) {
|
657 |
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === true ) {
|
658 |
-
$
|
659 |
-
$
|
660 |
}
|
661 |
}
|
662 |
|
663 |
// Set site table prefixes
|
664 |
foreach ( $blogs as $blog ) {
|
665 |
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === true ) {
|
666 |
-
$
|
667 |
-
$
|
668 |
}
|
669 |
}
|
670 |
|
671 |
// Set table prefixes
|
672 |
-
$
|
673 |
-
$
|
674 |
|
675 |
// Get database client
|
676 |
if ( empty( $wpdb->use_mysqli ) ) {
|
@@ -680,12 +687,12 @@ class Ai1wm_Import_Database {
|
|
680 |
}
|
681 |
|
682 |
// Set database options
|
683 |
-
$mysql->set_old_table_prefixes( $
|
684 |
-
->set_new_table_prefixes( $
|
685 |
-
->set_old_replace_values( $
|
686 |
-
->set_new_replace_values( $
|
687 |
-
->set_old_replace_raw_values( $
|
688 |
-
->set_new_replace_raw_values( $
|
689 |
|
690 |
// Flush database
|
691 |
if ( isset( $config['Plugin']['Version'] ) && ( $version = $config['Plugin']['Version'] ) ) {
|
@@ -743,11 +750,11 @@ class Ai1wm_Import_Database {
|
|
743 |
// Activate plugins
|
744 |
ai1wm_activate_plugins( ai1wm_active_servmask_plugins() );
|
745 |
|
746 |
-
// Set the new URL
|
747 |
-
update_option(
|
748 |
|
749 |
-
// Set the new URL
|
750 |
-
update_option(
|
751 |
|
752 |
// Set the new secret key value
|
753 |
update_option( AI1WM_SECRET_KEY, $secret_key );
|
73 |
// Set progress
|
74 |
Ai1wm_Status::info( sprintf( __( 'Restoring database...<br />%d%% complete', AI1WM_PLUGIN_NAME ), $progress ) );
|
75 |
|
76 |
+
$old_replace_values = $old_replace_raw_values = array();
|
77 |
+
$new_replace_values = $new_replace_raw_values = array();
|
|
|
|
|
|
|
78 |
|
79 |
// Get Blog URLs
|
80 |
foreach ( $blogs as $blog ) {
|
88 |
|
89 |
// Add Internal Home URL
|
90 |
if ( ! empty( $blog['Old']['InternalHomeURL'] ) ) {
|
91 |
+
if ( parse_url( $blog['Old']['InternalHomeURL'], PHP_URL_SCHEME ) && parse_url( $blog['Old']['InternalHomeURL'], PHP_URL_HOST ) ) {
|
92 |
+
$home_urls[] = $blog['Old']['InternalHomeURL'];
|
93 |
+
}
|
94 |
}
|
95 |
|
96 |
// Get Home URL
|
97 |
foreach ( $home_urls as $home_url ) {
|
98 |
|
99 |
// Get blogs dir Upload Path
|
100 |
+
if ( ! in_array( sprintf( "'%s'", trim( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ) ), $old_replace_raw_values ) ) {
|
101 |
+
$old_replace_raw_values[] = sprintf( "'%s'", trim( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ) );
|
102 |
+
$new_replace_raw_values[] = sprintf( "'%s'", get_option( 'upload_path' ) );
|
103 |
}
|
104 |
|
105 |
// Get sites dir Upload Path
|
106 |
+
if ( ! in_array( sprintf( "'%s'", trim( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ) ), $old_replace_raw_values ) ) {
|
107 |
+
$old_replace_raw_values[] = sprintf( "'%s'", trim( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ) );
|
108 |
+
$new_replace_raw_values[] = sprintf( "'%s'", get_option( 'upload_path' ) );
|
109 |
}
|
110 |
|
111 |
// Handle old and new sites dir style
|
112 |
if ( defined( 'UPLOADBLOGSDIR' ) ) {
|
113 |
|
114 |
// Get plain Upload Path
|
115 |
+
if ( ! in_array( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
|
116 |
+
$old_replace_values[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
|
117 |
+
$new_replace_values[] = ai1wm_blogsdir_path( $blog['New']['BlogID'] );
|
118 |
}
|
119 |
|
120 |
// Get URL encoded Upload Path
|
121 |
+
if ( ! in_array( urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
|
122 |
+
$old_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) );
|
123 |
+
$new_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['New']['BlogID'] ) );
|
124 |
}
|
125 |
|
126 |
// Get JSON escaped Upload Path
|
127 |
+
if ( ! in_array( addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
|
128 |
+
$old_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' );
|
129 |
+
$new_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['New']['BlogID'] ), '/' );
|
130 |
}
|
131 |
|
132 |
// Get plain Upload Path
|
133 |
+
if ( ! in_array( ai1wm_uploads_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
|
134 |
+
$old_replace_values[] = ai1wm_uploads_path( $blog['Old']['BlogID'] );
|
135 |
+
$new_replace_values[] = ai1wm_blogsdir_path( $blog['New']['BlogID'] );
|
136 |
}
|
137 |
|
138 |
// Get URL encoded Upload Path
|
139 |
+
if ( ! in_array( urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
|
140 |
+
$old_replace_values[] = urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) );
|
141 |
+
$new_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['New']['BlogID'] ) );
|
142 |
}
|
143 |
|
144 |
// Get JSON escaped Upload Path
|
145 |
+
if ( ! in_array( addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
|
146 |
+
$old_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' );
|
147 |
+
$new_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['New']['BlogID'] ), '/' );
|
148 |
}
|
149 |
} else {
|
150 |
|
151 |
// Get files dir Upload URL
|
152 |
+
if ( ! in_array( sprintf( '%s/%s/', untrailingslashit( $home_url ), 'files' ), $old_replace_values ) ) {
|
153 |
+
$old_replace_values[] = sprintf( '%s/%s/', untrailingslashit( $home_url ), 'files' );
|
154 |
+
$new_replace_values[] = ai1wm_uploads_url( $blog['New']['BlogID'] );
|
155 |
}
|
156 |
|
157 |
// Get plain Upload Path
|
158 |
+
if ( ! in_array( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
|
159 |
+
$old_replace_values[] = ai1wm_blogsdir_path( $blog['Old']['BlogID'] );
|
160 |
+
$new_replace_values[] = ai1wm_uploads_path( $blog['New']['BlogID'] );
|
161 |
}
|
162 |
|
163 |
// Get URL encoded Upload Path
|
164 |
+
if ( ! in_array( urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
|
165 |
+
$old_replace_values[] = urlencode( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ) );
|
166 |
+
$new_replace_values[] = urlencode( ai1wm_uploads_path( $blog['New']['BlogID'] ) );
|
167 |
}
|
168 |
|
169 |
// Get JSON escaped Upload Path
|
170 |
+
if ( ! in_array( addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
|
171 |
+
$old_replace_values[] = addcslashes( ai1wm_blogsdir_path( $blog['Old']['BlogID'] ), '/' );
|
172 |
+
$new_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['New']['BlogID'] ), '/' );
|
173 |
}
|
174 |
|
175 |
// Get plain Upload Path
|
176 |
+
if ( ! in_array( ai1wm_uploads_path( $blog['Old']['BlogID'] ), $old_replace_values ) ) {
|
177 |
+
$old_replace_values[] = ai1wm_uploads_path( $blog['Old']['BlogID'] );
|
178 |
+
$new_replace_values[] = ai1wm_uploads_path( $blog['New']['BlogID'] );
|
179 |
}
|
180 |
|
181 |
// Get URL encoded Upload Path
|
182 |
+
if ( ! in_array( urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) ), $old_replace_values ) ) {
|
183 |
+
$old_replace_values[] = urlencode( ai1wm_uploads_path( $blog['Old']['BlogID'] ) );
|
184 |
+
$new_replace_values[] = urlencode( ai1wm_uploads_path( $blog['New']['BlogID'] ) );
|
185 |
}
|
186 |
|
187 |
// Get JSON escaped Upload Path
|
188 |
+
if ( ! in_array( addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' ), $old_replace_values ) ) {
|
189 |
+
$old_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['Old']['BlogID'] ), '/' );
|
190 |
+
$new_replace_values[] = addcslashes( ai1wm_uploads_path( $blog['New']['BlogID'] ), '/' );
|
191 |
}
|
192 |
}
|
193 |
}
|
201 |
|
202 |
// Add Internal Site URL
|
203 |
if ( ! empty( $blog['Old']['InternalSiteURL'] ) ) {
|
204 |
+
if ( parse_url( $blog['Old']['InternalSiteURL'], PHP_URL_SCHEME ) && parse_url( $blog['Old']['InternalSiteURL'], PHP_URL_HOST ) ) {
|
205 |
+
$site_urls[] = $blog['Old']['InternalSiteURL'];
|
206 |
+
}
|
207 |
}
|
208 |
|
209 |
// Get Site URL
|
234 |
$new_scheme = parse_url( $blog['New']['SiteURL'], PHP_URL_SCHEME );
|
235 |
|
236 |
// Add domain and path
|
237 |
+
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $old_replace_raw_values ) ) {
|
238 |
+
$old_replace_raw_values[] = sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) );
|
239 |
+
$new_replace_raw_values[] = sprintf( "'%s','%s'", $new_domain, trailingslashit( $new_path ) );
|
240 |
}
|
241 |
|
242 |
// Add domain and path with single quote
|
243 |
+
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
244 |
+
$old_replace_values[] = sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) );
|
245 |
+
$new_replace_values[] = sprintf( "='%s%s", $new_domain, untrailingslashit( $new_path ) );
|
246 |
}
|
247 |
|
248 |
// Add domain and path with double quote
|
249 |
+
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
250 |
+
$old_replace_values[] = sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) );
|
251 |
+
$new_replace_values[] = sprintf( '="%s%s', $new_domain, untrailingslashit( $new_path ) );
|
252 |
}
|
253 |
|
254 |
// Add Site URL scheme
|
259 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
260 |
|
261 |
// Add plain Site URL
|
262 |
+
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
|
263 |
+
$old_replace_values[] = ai1wm_urlscheme( $url, $old_schemes[ $i ] );
|
264 |
+
$new_replace_values[] = ai1wm_urlscheme( $blog['New']['SiteURL'], $new_schemes[ $i ] );
|
265 |
}
|
266 |
|
267 |
// Add URL encoded Site URL
|
268 |
+
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $old_replace_values ) ) {
|
269 |
+
$old_replace_values[] = urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) );
|
270 |
+
$new_replace_values[] = urlencode( ai1wm_urlscheme( $blog['New']['SiteURL'], $new_schemes[ $i ] ) );
|
271 |
}
|
272 |
|
273 |
// Add JSON escaped Site URL
|
274 |
+
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $old_replace_values ) ) {
|
275 |
+
$old_replace_values[] = addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' );
|
276 |
+
$new_replace_values[] = addcslashes( ai1wm_urlscheme( $blog['New']['SiteURL'], $new_schemes[ $i ] ), '/' );
|
277 |
}
|
278 |
}
|
279 |
|
280 |
// Add email
|
281 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
282 |
+
if ( ! in_array( sprintf( '@%s', $old_domain ), $old_replace_values ) ) {
|
283 |
+
$old_replace_values[] = sprintf( '@%s', $old_domain );
|
284 |
+
$new_replace_values[] = sprintf( '@%s', $new_domain );
|
285 |
}
|
286 |
}
|
287 |
}
|
297 |
|
298 |
// Add Internal Home URL
|
299 |
if ( ! empty( $blog['Old']['InternalHomeURL'] ) ) {
|
300 |
+
if ( parse_url( $blog['Old']['InternalHomeURL'], PHP_URL_SCHEME ) && parse_url( $blog['Old']['InternalHomeURL'], PHP_URL_HOST ) ) {
|
301 |
+
$home_urls[] = $blog['Old']['InternalHomeURL'];
|
302 |
+
}
|
303 |
}
|
304 |
|
305 |
// Get Home URL
|
330 |
$new_scheme = parse_url( $blog['New']['HomeURL'], PHP_URL_SCHEME );
|
331 |
|
332 |
// Add domain and path
|
333 |
+
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $old_replace_raw_values ) ) {
|
334 |
+
$old_replace_raw_values[] = sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) );
|
335 |
+
$new_replace_raw_values[] = sprintf( "'%s','%s'", $new_domain, trailingslashit( $new_path ) );
|
336 |
}
|
337 |
|
338 |
// Add domain and path with single quote
|
339 |
+
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
340 |
+
$old_replace_values[] = sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) );
|
341 |
+
$new_replace_values[] = sprintf( "='%s%s", $new_domain, untrailingslashit( $new_path ) );
|
342 |
}
|
343 |
|
344 |
// Add domain and path with double quote
|
345 |
+
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
346 |
+
$old_replace_values[] = sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) );
|
347 |
+
$new_replace_values[] = sprintf( '="%s%s', $new_domain, untrailingslashit( $new_path ) );
|
348 |
}
|
349 |
|
350 |
// Set Home URL scheme
|
355 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
356 |
|
357 |
// Add plain Home URL
|
358 |
+
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
|
359 |
+
$old_replace_values[] = ai1wm_urlscheme( $url, $old_schemes[ $i ] );
|
360 |
+
$new_replace_values[] = ai1wm_urlscheme( $blog['New']['HomeURL'], $new_schemes[ $i ] );
|
361 |
}
|
362 |
|
363 |
// Add URL encoded Home URL
|
364 |
+
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $old_replace_values ) ) {
|
365 |
+
$old_replace_values[] = urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) );
|
366 |
+
$new_replace_values[] = urlencode( ai1wm_urlscheme( $blog['New']['HomeURL'], $new_schemes[ $i ] ) );
|
367 |
}
|
368 |
|
369 |
// Add JSON escaped Home URL
|
370 |
+
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $old_replace_values ) ) {
|
371 |
+
$old_replace_values[] = addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' );
|
372 |
+
$new_replace_values[] = addcslashes( ai1wm_urlscheme( $blog['New']['HomeURL'], $new_schemes[ $i ] ), '/' );
|
373 |
}
|
374 |
}
|
375 |
|
376 |
// Add email
|
377 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
378 |
+
if ( ! in_array( sprintf( '@%s', $old_domain ), $old_replace_values ) ) {
|
379 |
+
$old_replace_values[] = sprintf( '@%s', $old_domain );
|
380 |
+
$new_replace_values[] = sprintf( '@%s', $new_domain );
|
381 |
}
|
382 |
}
|
383 |
}
|
394 |
|
395 |
// Add Internal Site URL
|
396 |
if ( ! empty( $config['InternalSiteURL'] ) ) {
|
397 |
+
if ( parse_url( $config['InternalSiteURL'], PHP_URL_SCHEME ) && parse_url( $config['InternalSiteURL'], PHP_URL_HOST ) ) {
|
398 |
+
$site_urls[] = $config['InternalSiteURL'];
|
399 |
+
}
|
400 |
}
|
401 |
|
402 |
// Get Site URL
|
427 |
$new_scheme = parse_url( site_url(), PHP_URL_SCHEME );
|
428 |
|
429 |
// Add domain and path
|
430 |
+
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $old_replace_raw_values ) ) {
|
431 |
+
$old_replace_raw_values[] = sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) );
|
432 |
+
$new_replace_raw_values[] = sprintf( "'%s','%s'", $new_domain, trailingslashit( $new_path ) );
|
433 |
}
|
434 |
|
435 |
// Add domain and path with single quote
|
436 |
+
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
437 |
+
$old_replace_values[] = sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) );
|
438 |
+
$new_replace_values[] = sprintf( "='%s%s", $new_domain, untrailingslashit( $new_path ) );
|
439 |
}
|
440 |
|
441 |
// Add domain and path with double quote
|
442 |
+
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
443 |
+
$old_replace_values[] = sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) );
|
444 |
+
$new_replace_values[] = sprintf( '="%s%s', $new_domain, untrailingslashit( $new_path ) );
|
445 |
}
|
446 |
|
447 |
// Set Site URL scheme
|
452 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
453 |
|
454 |
// Add plain Site URL
|
455 |
+
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
|
456 |
+
$old_replace_values[] = ai1wm_urlscheme( $url, $old_schemes[ $i ] );
|
457 |
+
$new_replace_values[] = ai1wm_urlscheme( site_url(), $new_schemes[ $i ] );
|
458 |
}
|
459 |
|
460 |
// Add URL encoded Site URL
|
461 |
+
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $old_replace_values ) ) {
|
462 |
+
$old_replace_values[] = urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) );
|
463 |
+
$new_replace_values[] = urlencode( ai1wm_urlscheme( site_url(), $new_schemes[ $i ] ) );
|
464 |
}
|
465 |
|
466 |
// Add JSON escaped Site URL
|
467 |
+
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $old_replace_values ) ) {
|
468 |
+
$old_replace_values[] = addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' );
|
469 |
+
$new_replace_values[] = addcslashes( ai1wm_urlscheme( site_url(), $new_schemes[ $i ] ), '/' );
|
470 |
}
|
471 |
}
|
472 |
|
473 |
// Add email
|
474 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
475 |
+
if ( ! in_array( sprintf( '@%s', $old_domain ), $old_replace_values ) ) {
|
476 |
+
$old_replace_values[] = sprintf( '@%s', $old_domain );
|
477 |
+
$new_replace_values[] = sprintf( '@%s', $new_domain );
|
478 |
}
|
479 |
}
|
480 |
}
|
490 |
|
491 |
// Add Internal Home URL
|
492 |
if ( ! empty( $config['InternalHomeURL'] ) ) {
|
493 |
+
if ( parse_url( $config['InternalHomeURL'], PHP_URL_SCHEME ) && parse_url( $config['InternalHomeURL'], PHP_URL_HOST ) ) {
|
494 |
+
$home_urls[] = $config['InternalHomeURL'];
|
495 |
+
}
|
496 |
}
|
497 |
|
498 |
// Get Home URL
|
523 |
$new_scheme = parse_url( home_url(), PHP_URL_SCHEME );
|
524 |
|
525 |
// Add domain and path
|
526 |
+
if ( ! in_array( sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) ), $old_replace_raw_values ) ) {
|
527 |
+
$old_replace_raw_values[] = sprintf( "'%s','%s'", $old_domain, trailingslashit( $old_path ) );
|
528 |
+
$new_replace_raw_values[] = sprintf( "'%s','%s'", $new_domain, trailingslashit( $new_path ) );
|
529 |
}
|
530 |
|
531 |
// Add domain and path with single quote
|
532 |
+
if ( ! in_array( sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
533 |
+
$old_replace_values[] = sprintf( "='%s%s", $old_domain, untrailingslashit( $old_path ) );
|
534 |
+
$new_replace_values[] = sprintf( "='%s%s", $new_domain, untrailingslashit( $new_path ) );
|
535 |
}
|
536 |
|
537 |
// Add domain and path with double quote
|
538 |
+
if ( ! in_array( sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) ), $old_replace_values ) ) {
|
539 |
+
$old_replace_values[] = sprintf( '="%s%s', $old_domain, untrailingslashit( $old_path ) );
|
540 |
+
$new_replace_values[] = sprintf( '="%s%s', $new_domain, untrailingslashit( $new_path ) );
|
541 |
}
|
542 |
|
543 |
// Add Home URL scheme
|
548 |
for ( $i = 0; $i < count( $old_schemes ); $i++ ) {
|
549 |
|
550 |
// Add plain Home URL
|
551 |
+
if ( ! in_array( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), $old_replace_values ) ) {
|
552 |
+
$old_replace_values[] = ai1wm_urlscheme( $url, $old_schemes[ $i ] );
|
553 |
+
$new_replace_values[] = ai1wm_urlscheme( home_url(), $new_schemes[ $i ] );
|
554 |
}
|
555 |
|
556 |
// Add URL encoded Home URL
|
557 |
+
if ( ! in_array( urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) ), $old_replace_values ) ) {
|
558 |
+
$old_replace_values[] = urlencode( ai1wm_urlscheme( $url, $old_schemes[ $i ] ) );
|
559 |
+
$new_replace_values[] = urlencode( ai1wm_urlscheme( home_url(), $new_schemes[ $i ] ) );
|
560 |
}
|
561 |
|
562 |
// Add JSON escaped Home URL
|
563 |
+
if ( ! in_array( addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' ), $old_replace_values ) ) {
|
564 |
+
$old_replace_values[] = addcslashes( ai1wm_urlscheme( $url, $old_schemes[ $i ] ), '/' );
|
565 |
+
$new_replace_values[] = addcslashes( ai1wm_urlscheme( home_url(), $new_schemes[ $i ] ), '/' );
|
566 |
}
|
567 |
}
|
568 |
|
569 |
// Add email
|
570 |
if ( ! isset( $config['NoEmailReplace'] ) ) {
|
571 |
+
if ( ! in_array( sprintf( '@%s', $old_domain ), $old_replace_values ) ) {
|
572 |
+
$old_replace_values[] = sprintf( '@%s', $old_domain );
|
573 |
+
$new_replace_values[] = sprintf( '@%s', $new_domain );
|
574 |
}
|
575 |
}
|
576 |
}
|
584 |
if ( $content_dir !== WP_CONTENT_DIR ) {
|
585 |
|
586 |
// Add plain WordPress Content
|
587 |
+
if ( ! in_array( $content_dir, $old_replace_values ) ) {
|
588 |
+
$old_replace_values[] = $content_dir;
|
589 |
+
$new_replace_values[] = WP_CONTENT_DIR;
|
590 |
}
|
591 |
|
592 |
// Add URL encoded WordPress Content
|
593 |
+
if ( ! in_array( urlencode( $content_dir ), $old_replace_values ) ) {
|
594 |
+
$old_replace_values[] = urlencode( $content_dir );
|
595 |
+
$new_replace_values[] = urlencode( WP_CONTENT_DIR );
|
596 |
}
|
597 |
|
598 |
// Add JSON escaped WordPress Content
|
599 |
+
if ( ! in_array( addcslashes( $content_dir, '/' ), $old_replace_values ) ) {
|
600 |
+
$old_replace_values[] = addcslashes( $content_dir, '/' );
|
601 |
+
$new_replace_values[] = addcslashes( WP_CONTENT_DIR, '/' );
|
602 |
}
|
603 |
}
|
604 |
}
|
609 |
if ( ! empty( $replace['OldValues'][ $i ] ) && ! empty( $replace['NewValues'][ $i ] ) ) {
|
610 |
|
611 |
// Add plain replace values
|
612 |
+
if ( ! in_array( $replace['OldValues'][ $i ], $old_replace_values ) ) {
|
613 |
+
$old_replace_values[] = $replace['OldValues'][ $i ];
|
614 |
+
$new_replace_values[] = $replace['NewValues'][ $i ];
|
615 |
}
|
616 |
|
617 |
// Add URL encoded replace values
|
618 |
+
if ( ! in_array( urlencode( $replace['OldValues'][ $i ] ), $old_replace_values ) ) {
|
619 |
+
$old_replace_values[] = urlencode( $replace['OldValues'][ $i ] );
|
620 |
+
$new_replace_values[] = urlencode( $replace['NewValues'][ $i ] );
|
621 |
}
|
622 |
|
623 |
// Add JSON Escaped replace values
|
624 |
+
if ( ! in_array( addcslashes( $replace['OldValues'][ $i ], '/' ), $old_replace_values ) ) {
|
625 |
+
$old_replace_values[] = addcslashes( $replace['OldValues'][ $i ], '/' );
|
626 |
+
$new_replace_values[] = addcslashes( $replace['NewValues'][ $i ], '/' );
|
627 |
}
|
628 |
}
|
629 |
}
|
630 |
}
|
631 |
|
632 |
+
// Get site URL
|
633 |
+
$site_url = get_option( AI1WM_SITE_URL );
|
634 |
|
635 |
+
// Get home URL
|
636 |
+
$home_url = get_option( AI1WM_HOME_URL );
|
637 |
|
638 |
// Get secret key
|
639 |
$secret_key = get_option( AI1WM_SECRET_KEY );
|
644 |
// Get HTTP password
|
645 |
$auth_password = get_option( AI1WM_AUTH_PASSWORD );
|
646 |
|
647 |
+
$old_table_prefixes = array();
|
648 |
+
$new_table_prefixes = array();
|
649 |
|
650 |
// Set main table prefixes
|
651 |
+
$old_table_prefixes[] = ai1wm_servmask_prefix( 'mainsite' );
|
652 |
+
$new_table_prefixes[] = ai1wm_table_prefix();
|
653 |
|
654 |
// Set site table prefixes
|
655 |
foreach ( $blogs as $blog ) {
|
656 |
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === false ) {
|
657 |
+
$old_table_prefixes[] = ai1wm_servmask_prefix( $blog['Old']['BlogID'] );
|
658 |
+
$new_table_prefixes[] = ai1wm_table_prefix( $blog['New']['BlogID'] );
|
659 |
}
|
660 |
}
|
661 |
|
662 |
// Set base table prefixes
|
663 |
foreach ( $blogs as $blog ) {
|
664 |
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === true ) {
|
665 |
+
$old_table_prefixes[] = ai1wm_servmask_prefix( 'basesite' );
|
666 |
+
$new_table_prefixes[] = ai1wm_table_prefix( $blog['New']['BlogID'] );
|
667 |
}
|
668 |
}
|
669 |
|
670 |
// Set site table prefixes
|
671 |
foreach ( $blogs as $blog ) {
|
672 |
if ( ai1wm_main_site( $blog['Old']['BlogID'] ) === true ) {
|
673 |
+
$old_table_prefixes[] = ai1wm_servmask_prefix( $blog['Old']['BlogID'] );
|
674 |
+
$new_table_prefixes[] = ai1wm_table_prefix( $blog['New']['BlogID'] );
|
675 |
}
|
676 |
}
|
677 |
|
678 |
// Set table prefixes
|
679 |
+
$old_table_prefixes[] = ai1wm_servmask_prefix();
|
680 |
+
$new_table_prefixes[] = ai1wm_table_prefix();
|
681 |
|
682 |
// Get database client
|
683 |
if ( empty( $wpdb->use_mysqli ) ) {
|
687 |
}
|
688 |
|
689 |
// Set database options
|
690 |
+
$mysql->set_old_table_prefixes( $old_table_prefixes )
|
691 |
+
->set_new_table_prefixes( $new_table_prefixes )
|
692 |
+
->set_old_replace_values( $old_replace_values )
|
693 |
+
->set_new_replace_values( $new_replace_values )
|
694 |
+
->set_old_replace_raw_values( $old_replace_raw_values )
|
695 |
+
->set_new_replace_raw_values( $new_replace_raw_values );
|
696 |
|
697 |
// Flush database
|
698 |
if ( isset( $config['Plugin']['Version'] ) && ( $version = $config['Plugin']['Version'] ) ) {
|
750 |
// Activate plugins
|
751 |
ai1wm_activate_plugins( ai1wm_active_servmask_plugins() );
|
752 |
|
753 |
+
// Set the new site URL
|
754 |
+
update_option( AI1WM_SITE_URL, $site_url );
|
755 |
|
756 |
+
// Set the new home URL
|
757 |
+
update_option( AI1WM_HOME_URL, $home_url );
|
758 |
|
759 |
// Set the new secret key value
|
760 |
update_option( AI1WM_SECRET_KEY, $secret_key );
|
lib/vendor/servmask/command/class-ai1wm-wp-cli-command.php
CHANGED
@@ -121,7 +121,7 @@ if ( class_exists( 'WP_CLI_Command' ) ) {
|
|
121 |
foreach ( $model->get_files() as $backup ) {
|
122 |
$backups->addRow( array(
|
123 |
'name' => $backup['filename'],
|
124 |
-
'date' =>
|
125 |
'size' => size_format( $backup['size'], 2 ),
|
126 |
) );
|
127 |
}
|
@@ -188,7 +188,6 @@ if ( class_exists( 'WP_CLI_Command' ) ) {
|
|
188 |
try {
|
189 |
|
190 |
// Remove filters
|
191 |
-
remove_filter( 'ai1wm_export', 'Ai1wm_Export_Resolve::execute', 5 );
|
192 |
remove_filter( 'ai1wm_export', 'Ai1wm_Export_Clean::execute', 300 );
|
193 |
|
194 |
// Run filters
|
@@ -251,7 +250,6 @@ if ( class_exists( 'WP_CLI_Command' ) ) {
|
|
251 |
|
252 |
// Remove filters
|
253 |
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 );
|
254 |
-
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Resolve::execute', 10 );
|
255 |
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 );
|
256 |
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Clean::execute', 400 );
|
257 |
|
121 |
foreach ( $model->get_files() as $backup ) {
|
122 |
$backups->addRow( array(
|
123 |
'name' => $backup['filename'],
|
124 |
+
'date' => sprintf( __( '%s ago', AI1WM_PLUGIN_NAME ), human_time_diff( $backup['mtime'] ) ),
|
125 |
'size' => size_format( $backup['size'], 2 ),
|
126 |
) );
|
127 |
}
|
188 |
try {
|
189 |
|
190 |
// Remove filters
|
|
|
191 |
remove_filter( 'ai1wm_export', 'Ai1wm_Export_Clean::execute', 300 );
|
192 |
|
193 |
// Run filters
|
250 |
|
251 |
// Remove filters
|
252 |
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Upload::execute', 5 );
|
|
|
253 |
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Confirm::execute', 100 );
|
254 |
remove_filter( 'ai1wm_import', 'Ai1wm_Import_Clean::execute', 400 );
|
255 |
|
lib/vendor/servmask/database/class-ai1wm-database.php
CHANGED
@@ -53,6 +53,20 @@ abstract class Ai1wm_Database {
|
|
53 |
*/
|
54 |
protected $new_table_prefixes = array();
|
55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
/**
|
57 |
* Old replace values
|
58 |
*
|
@@ -185,6 +199,48 @@ abstract class Ai1wm_Database {
|
|
185 |
return $this->new_table_prefixes;
|
186 |
}
|
187 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
/**
|
189 |
* Set old replace values
|
190 |
*
|
@@ -610,7 +666,7 @@ abstract class Ai1wm_Database {
|
|
610 |
foreach ( $row as $key => $value ) {
|
611 |
// Replace table prefix columns
|
612 |
if ( isset( $columns[ strtolower( $key ) ] ) ) {
|
613 |
-
$value = $this->
|
614 |
}
|
615 |
|
616 |
// Replace table values
|
@@ -906,8 +962,8 @@ abstract class Ai1wm_Database {
|
|
906 |
/**
|
907 |
* Replace table prefixes
|
908 |
*
|
909 |
-
* @param string
|
910 |
-
* @param
|
911 |
* @return string
|
912 |
*/
|
913 |
protected function replace_table_prefixes( $input, $position = false ) {
|
@@ -931,6 +987,34 @@ abstract class Ai1wm_Database {
|
|
931 |
return str_ireplace( $search, $replace, $input );
|
932 |
}
|
933 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
934 |
/**
|
935 |
* Replace table values
|
936 |
*
|
53 |
*/
|
54 |
protected $new_table_prefixes = array();
|
55 |
|
56 |
+
/**
|
57 |
+
* Old column prefixes
|
58 |
+
*
|
59 |
+
* @var array
|
60 |
+
*/
|
61 |
+
protected $old_column_prefixes = array();
|
62 |
+
|
63 |
+
/**
|
64 |
+
* New column prefixes
|
65 |
+
*
|
66 |
+
* @var array
|
67 |
+
*/
|
68 |
+
protected $new_column_prefixes = array();
|
69 |
+
|
70 |
/**
|
71 |
* Old replace values
|
72 |
*
|
199 |
return $this->new_table_prefixes;
|
200 |
}
|
201 |
|
202 |
+
/**
|
203 |
+
* Set old column prefixes
|
204 |
+
*
|
205 |
+
* @param array $prefixes List of column prefixes
|
206 |
+
* @return Ai1wm_Database
|
207 |
+
*/
|
208 |
+
public function set_old_column_prefixes( $prefixes ) {
|
209 |
+
$this->old_column_prefixes = $prefixes;
|
210 |
+
|
211 |
+
return $this;
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* Get old column prefixes
|
216 |
+
*
|
217 |
+
* @return array
|
218 |
+
*/
|
219 |
+
public function get_old_column_prefixes() {
|
220 |
+
return $this->old_column_prefixes;
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Set new column prefixes
|
225 |
+
*
|
226 |
+
* @param array $prefixes List of column prefixes
|
227 |
+
* @return Ai1wm_Database
|
228 |
+
*/
|
229 |
+
public function set_new_column_prefixes( $prefixes ) {
|
230 |
+
$this->new_column_prefixes = $prefixes;
|
231 |
+
|
232 |
+
return $this;
|
233 |
+
}
|
234 |
+
|
235 |
+
/**
|
236 |
+
* Get new column prefixes
|
237 |
+
*
|
238 |
+
* @return array
|
239 |
+
*/
|
240 |
+
public function get_new_column_prefixes() {
|
241 |
+
return $this->new_column_prefixes;
|
242 |
+
}
|
243 |
+
|
244 |
/**
|
245 |
* Set old replace values
|
246 |
*
|
666 |
foreach ( $row as $key => $value ) {
|
667 |
// Replace table prefix columns
|
668 |
if ( isset( $columns[ strtolower( $key ) ] ) ) {
|
669 |
+
$value = $this->replace_column_prefixes( $value, 0 );
|
670 |
}
|
671 |
|
672 |
// Replace table values
|
962 |
/**
|
963 |
* Replace table prefixes
|
964 |
*
|
965 |
+
* @param string $input Table value
|
966 |
+
* @param mixed $position Replace first occurrence at a specified position
|
967 |
* @return string
|
968 |
*/
|
969 |
protected function replace_table_prefixes( $input, $position = false ) {
|
987 |
return str_ireplace( $search, $replace, $input );
|
988 |
}
|
989 |
|
990 |
+
/**
|
991 |
+
* Replace column prefixes
|
992 |
+
*
|
993 |
+
* @param string $input Column value
|
994 |
+
* @param mixed $position Replace first occurrence at a specified position
|
995 |
+
* @return string
|
996 |
+
*/
|
997 |
+
protected function replace_column_prefixes( $input, $position = false ) {
|
998 |
+
// Get column prefixes
|
999 |
+
$search = $this->get_old_column_prefixes();
|
1000 |
+
$replace = $this->get_new_column_prefixes();
|
1001 |
+
|
1002 |
+
// Replace first occurance at a specified position
|
1003 |
+
if ( $position !== false ) {
|
1004 |
+
for ( $i = 0; $i < count( $search ); $i++ ) {
|
1005 |
+
$current = stripos( $input, $search[ $i ] );
|
1006 |
+
if ( $current === $position ) {
|
1007 |
+
$input = substr_replace( $input, $replace[ $i ], $current, strlen( $search[ $i ] ) );
|
1008 |
+
}
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
return $input;
|
1012 |
+
}
|
1013 |
+
|
1014 |
+
// Replace all occurrences
|
1015 |
+
return str_ireplace( $search, $replace, $input );
|
1016 |
+
}
|
1017 |
+
|
1018 |
/**
|
1019 |
* Replace table values
|
1020 |
*
|
lib/vendor/servmask/filesystem/class-ai1wm-directory.php
CHANGED
@@ -26,20 +26,27 @@
|
|
26 |
class Ai1wm_Directory {
|
27 |
|
28 |
/**
|
29 |
-
*
|
30 |
-
* The method will recursively delete a directory and its contents.
|
31 |
*
|
32 |
-
* @param
|
33 |
* @return boolean
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
*
|
35 |
-
* @
|
|
|
36 |
*/
|
37 |
public static function delete( $path ) {
|
38 |
// Iterate over directory
|
39 |
$iterator = new Ai1wm_Recursive_Directory_Iterator( $path );
|
40 |
|
41 |
// Recursively iterate over directory
|
42 |
-
$iterator = new
|
43 |
|
44 |
// Remove files and directories
|
45 |
foreach ( $iterator as $item ) {
|
@@ -50,7 +57,6 @@ class Ai1wm_Directory {
|
|
50 |
}
|
51 |
}
|
52 |
|
53 |
-
// Remove path
|
54 |
return @rmdir( $path );
|
55 |
}
|
56 |
}
|
26 |
class Ai1wm_Directory {
|
27 |
|
28 |
/**
|
29 |
+
* Create directory (recursively)
|
|
|
30 |
*
|
31 |
+
* @param string $path Path to the directory
|
32 |
* @return boolean
|
33 |
+
*/
|
34 |
+
public static function create( $path ) {
|
35 |
+
return @mkdir( $path, 0777, true );
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Delete directory (recursively)
|
40 |
*
|
41 |
+
* @param string $path Path to the directory
|
42 |
+
* @return boolean
|
43 |
*/
|
44 |
public static function delete( $path ) {
|
45 |
// Iterate over directory
|
46 |
$iterator = new Ai1wm_Recursive_Directory_Iterator( $path );
|
47 |
|
48 |
// Recursively iterate over directory
|
49 |
+
$iterator = new Ai1wm_Recursive_Iterator_Iterator( $iterator, RecursiveIteratorIterator::CHILD_FIRST, RecursiveIteratorIterator::CATCH_GET_CHILD );
|
50 |
|
51 |
// Remove files and directories
|
52 |
foreach ( $iterator as $item ) {
|
57 |
}
|
58 |
}
|
59 |
|
|
|
60 |
return @rmdir( $path );
|
61 |
}
|
62 |
}
|
lib/vendor/servmask/filesystem/class-ai1wm-file-htaccess.php
CHANGED
@@ -24,23 +24,38 @@
|
|
24 |
*/
|
25 |
|
26 |
class Ai1wm_File_Htaccess {
|
|
|
27 |
/**
|
28 |
-
* Create .htaccess file
|
29 |
-
*
|
30 |
-
* The method will create .htaccess file with contents 'AddType application/octet-stream .wpress'
|
31 |
*
|
32 |
-
* @param
|
33 |
* @return boolean
|
34 |
*/
|
35 |
public static function create( $path ) {
|
36 |
-
$
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
}
|
24 |
*/
|
25 |
|
26 |
class Ai1wm_File_Htaccess {
|
27 |
+
|
28 |
/**
|
29 |
+
* Create .htaccess file (ServMask)
|
|
|
|
|
30 |
*
|
31 |
+
* @param string $path Path to file
|
32 |
* @return boolean
|
33 |
*/
|
34 |
public static function create( $path ) {
|
35 |
+
return Ai1wm_File::create( $path, implode( PHP_EOL, array(
|
36 |
+
'<IfModule mod_mime.c>',
|
37 |
+
'AddType application/octet-stream .wpress',
|
38 |
+
'</IfModule>',
|
39 |
+
'<IfModule mod_dir.c>',
|
40 |
+
'DirectoryIndex index.php',
|
41 |
+
'</IfModule>',
|
42 |
+
'<IfModule mod_autoindex.c>',
|
43 |
+
'Options -Indexes',
|
44 |
+
'</IfModule>',
|
45 |
+
) ) );
|
46 |
+
}
|
47 |
|
48 |
+
/**
|
49 |
+
* Create .htaccess file (LiteSpeed)
|
50 |
+
*
|
51 |
+
* @param string $path Path to file
|
52 |
+
* @return boolean
|
53 |
+
*/
|
54 |
+
public static function litespeed( $path ) {
|
55 |
+
return Ai1wm_File::create_with_markers( $path, 'LiteSpeed', array(
|
56 |
+
'<IfModule Litespeed>',
|
57 |
+
'SetEnv noabort 1',
|
58 |
+
'</IfModule>',
|
59 |
+
) );
|
60 |
}
|
61 |
}
|
lib/vendor/servmask/filesystem/class-ai1wm-file-index.php
CHANGED
@@ -26,17 +26,12 @@
|
|
26 |
class Ai1wm_File_Index {
|
27 |
|
28 |
/**
|
29 |
-
* Create
|
30 |
*
|
31 |
-
*
|
32 |
-
* at the path specified by the argument.
|
33 |
-
*
|
34 |
-
* @param string $path Path to the index.php file
|
35 |
* @return boolean
|
36 |
*/
|
37 |
public static function create( $path ) {
|
38 |
-
$
|
39 |
-
|
40 |
-
return Ai1wm_File::create( $path, $contents );
|
41 |
}
|
42 |
}
|
26 |
class Ai1wm_File_Index {
|
27 |
|
28 |
/**
|
29 |
+
* Create index.php file
|
30 |
*
|
31 |
+
* @param string $path Path to file
|
|
|
|
|
|
|
32 |
* @return boolean
|
33 |
*/
|
34 |
public static function create( $path ) {
|
35 |
+
return Ai1wm_File::create( $path, '<?php // silence is golden' );
|
|
|
|
|
36 |
}
|
37 |
}
|
lib/vendor/servmask/filesystem/class-ai1wm-file-webconfig.php
CHANGED
@@ -28,26 +28,23 @@ class Ai1wm_File_Webconfig {
|
|
28 |
/**
|
29 |
* Create web.config file
|
30 |
*
|
31 |
-
*
|
32 |
-
*
|
33 |
-
* @param string $path Path to the web.config file
|
34 |
* @return boolean
|
35 |
*/
|
36 |
public static function create( $path ) {
|
37 |
-
$
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
return Ai1wm_File::create( $path, $contents );
|
52 |
}
|
53 |
}
|
28 |
/**
|
29 |
* Create web.config file
|
30 |
*
|
31 |
+
* @param string $path Path to file
|
|
|
|
|
32 |
* @return boolean
|
33 |
*/
|
34 |
public static function create( $path ) {
|
35 |
+
return Ai1wm_File::create( $path, implode( PHP_EOL, array(
|
36 |
+
'<configuration>',
|
37 |
+
'<system.webServer>',
|
38 |
+
'<mimeMap fileExtension=".wpress" mimeType="application/octet-stream" />',
|
39 |
+
'</staticContent>',
|
40 |
+
'<defaultDocument>',
|
41 |
+
'<files>',
|
42 |
+
'<add value="index.php" />',
|
43 |
+
'</files>',
|
44 |
+
'</defaultDocument>',
|
45 |
+
'<directoryBrowse enabled="false" />',
|
46 |
+
'</system.webServer>',
|
47 |
+
'</configuration>',
|
48 |
+
) ) );
|
|
|
49 |
}
|
50 |
}
|
lib/vendor/servmask/filesystem/class-ai1wm-file.php
CHANGED
@@ -26,17 +26,28 @@
|
|
26 |
class Ai1wm_File {
|
27 |
|
28 |
/**
|
29 |
-
* Create a file with
|
30 |
-
*
|
31 |
-
* @param string $path Path to the file
|
32 |
-
* @param string $contents Contents of the file
|
33 |
*
|
|
|
|
|
34 |
* @return boolean
|
35 |
*/
|
36 |
-
public static function create( $path, $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
$is_written = false;
|
38 |
if ( ( $handle = @fopen( $path, 'w' ) ) !== false ) {
|
39 |
-
if ( @fwrite( $handle, $
|
40 |
$is_written = true;
|
41 |
}
|
42 |
|
@@ -45,4 +56,16 @@ class Ai1wm_File {
|
|
45 |
|
46 |
return $is_written;
|
47 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
48 |
}
|
26 |
class Ai1wm_File {
|
27 |
|
28 |
/**
|
29 |
+
* Create a file with content
|
|
|
|
|
|
|
30 |
*
|
31 |
+
* @param string $path Path to the file
|
32 |
+
* @param string $content Content of the file
|
33 |
* @return boolean
|
34 |
*/
|
35 |
+
public static function create( $path, $content ) {
|
36 |
+
if ( ! @file_exists( $path ) ) {
|
37 |
+
if ( ! @is_writable( dirname( $path ) ) ) {
|
38 |
+
return false;
|
39 |
+
}
|
40 |
+
|
41 |
+
if ( ! @touch( $path ) ) {
|
42 |
+
return false;
|
43 |
+
}
|
44 |
+
} elseif ( ! @is_writable( $path ) ) {
|
45 |
+
return false;
|
46 |
+
}
|
47 |
+
|
48 |
$is_written = false;
|
49 |
if ( ( $handle = @fopen( $path, 'w' ) ) !== false ) {
|
50 |
+
if ( @fwrite( $handle, $content ) !== false ) {
|
51 |
$is_written = true;
|
52 |
}
|
53 |
|
56 |
|
57 |
return $is_written;
|
58 |
}
|
59 |
+
|
60 |
+
/**
|
61 |
+
* Create a file with marker and content
|
62 |
+
*
|
63 |
+
* @param string $path Path to the file
|
64 |
+
* @param string $marker Name of the marker
|
65 |
+
* @param string $content Content of the file
|
66 |
+
* @return boolean
|
67 |
+
*/
|
68 |
+
public static function create_with_markers( $path, $marker, $content ) {
|
69 |
+
return @insert_with_markers( $path, $marker, $content );
|
70 |
+
}
|
71 |
}
|
lib/vendor/servmask/filter/{class-ai1wm-extension-filter.php → class-ai1wm-recursive-extension-filter.php}
RENAMED
@@ -23,11 +23,11 @@
|
|
23 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
*/
|
25 |
|
26 |
-
class
|
27 |
|
28 |
protected $include = array();
|
29 |
|
30 |
-
public function __construct(
|
31 |
parent::__construct( $iterator );
|
32 |
|
33 |
// Set include filter
|
@@ -35,10 +35,16 @@ class Ai1wm_Extension_Filter extends FilterIterator {
|
|
35 |
}
|
36 |
|
37 |
public function accept() {
|
38 |
-
if (
|
39 |
-
|
|
|
|
|
40 |
}
|
41 |
|
42 |
-
return
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
}
|
23 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
*/
|
25 |
|
26 |
+
class Ai1wm_Recursive_Extension_Filter extends RecursiveFilterIterator {
|
27 |
|
28 |
protected $include = array();
|
29 |
|
30 |
+
public function __construct( RecursiveIterator $iterator, $include = array() ) {
|
31 |
parent::__construct( $iterator );
|
32 |
|
33 |
// Set include filter
|
35 |
}
|
36 |
|
37 |
public function accept() {
|
38 |
+
if ( $this->getInnerIterator()->isFile() ) {
|
39 |
+
if ( ! in_array( pathinfo( $this->getInnerIterator()->getFilename(), PATHINFO_EXTENSION ), $this->include ) ) {
|
40 |
+
return false;
|
41 |
+
}
|
42 |
}
|
43 |
|
44 |
+
return true;
|
45 |
+
}
|
46 |
+
|
47 |
+
public function getChildren() {
|
48 |
+
return new self( $this->getInnerIterator()->getChildren(), $this->include );
|
49 |
}
|
50 |
}
|
lib/vendor/servmask/iterator/class-ai1wm-recursive-directory-iterator.php
CHANGED
@@ -25,8 +25,6 @@
|
|
25 |
|
26 |
class Ai1wm_Recursive_Directory_Iterator extends RecursiveDirectoryIterator {
|
27 |
|
28 |
-
protected $exclude = array();
|
29 |
-
|
30 |
public function __construct( $path ) {
|
31 |
parent::__construct( $path );
|
32 |
|
25 |
|
26 |
class Ai1wm_Recursive_Directory_Iterator extends RecursiveDirectoryIterator {
|
27 |
|
|
|
|
|
28 |
public function __construct( $path ) {
|
29 |
parent::__construct( $path );
|
30 |
|
lib/{model/http/class-ai1wm-http-factory.php → vendor/servmask/iterator/class-ai1wm-recursive-iterator-iterator.php}
RENAMED
@@ -23,14 +23,6 @@
|
|
23 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
*/
|
25 |
|
26 |
-
class
|
27 |
-
|
28 |
-
public static function create( $type ) {
|
29 |
-
if ( $type === 'curl' ) {
|
30 |
-
return new Ai1wm_Http_Curl;
|
31 |
-
}
|
32 |
-
|
33 |
-
return new Ai1wm_Http_Stream;
|
34 |
-
}
|
35 |
|
36 |
}
|
23 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
*/
|
25 |
|
26 |
+
class Ai1wm_Recursive_Iterator_Iterator extends RecursiveIteratorIterator {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
}
|
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:336px;border-top:1px solid #27ae60}.ai1wm-button-group.ai1wm-button-import.ai1wm-open>.ai1wm-dropdown-menu{height:364px;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{display:inline-block;font-size:12px;font-weight:700;margin-top:16px}[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-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"}@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:20px}.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{color:#e74c3c}.ai1wm-modal-container section p .ai1wm-modal-subdescription{display:block;text-align:left}.ai1wm-modal-container section p a.ai1wm-button-green{display:inline-block;position:relative;top:26px}.ai1wm-modal-container section p a.ai1wm-emphasize{-webkit-animation:ai1wm-emphasize 1s infinite;animation:ai1wm-emphasize 1s infinite}.ai1wm-modal-container section p em{display:block;color:#34495e;font-style:normal}.ai1wm-modal-container section p.ai1wm-import-modal-content{text-align:left}.ai1wm-modal-container .ai1wm-import-modal-actions{border-top:1px solid #ccc;padding-top:1em;text-align:right}.ai1wm-modal-container .ai1wm-import-modal-actions .ai1wm-button-gray{margin-right:1em}.ai1wm-modal-container .ai1wm-import-modal-notice{border-top:1px solid #ccc}.ai1wm-modal-container .ai1wm-import-modal-notice p{font-weight:700;margin:0;padding-top:16px;text-align:center}#ai1wm-backup-progress,#ai1wm-backup-progress-bar{background-color:#dfdfdf;height:20px;width:350px;border-radius:15px}#ai1wm-backup-progress-bar{background-color:#00aff0;line-height:20px;color:#fff;width:0;text-align:center}.ai1wm-backups{width:100%;margin:1em 0 2em;padding:0;border-collapse:collapse}.ai1wm-backups .ai1wm-column-name{text-align:left}.ai1wm-backups .ai1wm-column-info{text-align:right}.ai1wm-backups .ai1wm-column-date,.ai1wm-backups .ai1wm-column-size{text-align:center}.ai1wm-backups .ai1wm-column-actions{text-align:right}.ai1wm-backups thead th{padding:4px 6px;text-align:left;font-size:1.2em}.ai1wm-backups tbody tr:first-child{border-top:1px solid #ccc}.ai1wm-backups tbody tr{border-bottom:1px solid #ccc}.ai1wm-backups tbody tr:hover{background:rgba(0,0,0,.1)}.ai1wm-backups tbody td{padding:4px 6px;box-sizing:border-box;line-height:24px}.ai1wm-backups tbody td span{font-weight:700}.ai1wm-backups tbody td.ai1wm-backup-actions{text-align:right;width:250px}.ai1wm-backups tbody td.ai1wm-backup-actions span{transition:width 2s cubic-bezier(.19,1,.22,1);display:inline-block;width:0;text-align:center;white-space:nowrap;visibility:hidden}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-delete,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-download,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-restore{border-radius:50px;margin:0 2px;padding:4px 8px}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-button-on span{width:80px;visibility:visible}.ai1wm-backups-empty{line-height:2em}
|
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:336px;border-top:1px solid #27ae60}.ai1wm-button-group.ai1wm-button-import.ai1wm-open>.ai1wm-dropdown-menu{height:364px;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{display:inline-block;font-size:12px;font-weight:700;margin-top:16px}[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-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"}@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:20px}.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{color:#e74c3c}.ai1wm-modal-container section p .ai1wm-modal-subdescription{display:block;text-align:left}.ai1wm-modal-container section p a.ai1wm-button-green{display:inline-block;position:relative;top:26px}.ai1wm-modal-container section p a.ai1wm-emphasize{-webkit-animation:ai1wm-emphasize 1s infinite;animation:ai1wm-emphasize 1s infinite}.ai1wm-modal-container section p em{display:block;color:#34495e;font-style:normal}.ai1wm-modal-container section p.ai1wm-import-modal-content{text-align:left}.ai1wm-modal-container .ai1wm-import-modal-actions{border-top:1px solid #ccc;padding-top:1em;text-align:right}.ai1wm-modal-container .ai1wm-import-modal-actions .ai1wm-button-gray{margin-right:1em}.ai1wm-modal-container .ai1wm-import-modal-notice{border-top:1px solid #ccc}.ai1wm-modal-container .ai1wm-import-modal-notice p{font-weight:700;margin:0;padding-top:16px;text-align:center}#ai1wm-backup-progress,#ai1wm-backup-progress-bar{background-color:#dfdfdf;height:20px;width:350px;border-radius:15px}#ai1wm-backup-progress-bar{background-color:#00aff0;line-height:20px;color:#fff;width:0;text-align:center}.ai1wm-backups{width:100%;margin:1em 0 2em;padding:0;border-collapse:collapse}.ai1wm-backups .ai1wm-column-name{text-align:left;word-wrap:break-all}.ai1wm-backups .ai1wm-column-date,.ai1wm-backups .ai1wm-column-size{text-align:center;white-space:nowrap}.ai1wm-backups .ai1wm-column-actions{text-align:right;white-space:nowrap}.ai1wm-backups thead th{padding:4px 6px;text-align:left;font-size:1.2em}.ai1wm-backups tbody tr:first-child{border-top:1px solid #ccc}.ai1wm-backups tbody tr{border-bottom:1px solid #ccc}.ai1wm-backups tbody tr:hover{background:rgba(0,0,0,.1)}.ai1wm-backups tbody td{padding:4px 6px;box-sizing:border-box;line-height:24px}.ai1wm-backups tbody td.ai1wm-backup-actions{text-align:right;width:250px}.ai1wm-backups tbody td.ai1wm-backup-actions span{transition:width 2s cubic-bezier(.19,1,.22,1);display:inline-block;width:0;text-align:center;visibility:hidden}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-delete,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-download,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-restore{border-radius:50px;margin:0 2px;padding:4px 8px}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-button-on span{width:80px;visibility:visible}.ai1wm-backups-empty{line-height:2em}
|
lib/view/assets/css/backups.min.rtl.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:right}.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:336px;border-top:1px solid #27ae60}.ai1wm-button-group.ai1wm-button-import.ai1wm-open>.ai1wm-dropdown-menu{height:364px;border-top:1px solid #27ae60}.ai1wm-button-group .ai1wm-button-main{position:relative;padding:6px 25px 6px 50px;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:right;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;left:20px}.ai1wm-line{position:absolute;width:100%;height:2px;margin:auto;background:#27ae60;transition:all .2s ease-in-out}.ai1wm-line-first{top:0;right:0}div.ai1wm-open .ai1wm-line-first,div.ai1wm-open .ai1wm-line-third{top:50%}.ai1wm-line-second{top:50%;right:0}.ai1wm-line-third{top:100%;right: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 26px 5px 25px;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:100% 0}.ai1wm-message-close-button{position:absolute;left: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:right;width:25px;height:25px;border-radius:50%;background:100% 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:left}.ai1wm-report-problem-dialog{position:absolute;z-index:999;width:280px;left: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:right;line-height:34px;outline:0;text-decoration:none;color:#e74c3c}.ai1wm-form-submit{float:left}.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 8px 6px 0}.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:right;line-height:1.5em}.ai1wm-import-info{display:inline-block;font-size:12px;font-weight:700;margin-top:16px}[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-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"}@media (min-width:855px){.ai1wm-row{margin-left:399px}.ai1wm-row:after,.ai1wm-row:before{content:" ";display:table}.ai1wm-row:after{clear:both}.ai1wm-left{float:right;width:100%}.ai1wm-right{float:left;width:377px;margin-left:-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:right;font-weight:300;font-size:22px;text-transform:uppercase}.ai1wm-holder h1 i{position:relative;top:2px}@media (max-width:854px){.ai1wm-container{margin-right:10px!important}.ai1wm-right,.ai1wm-row{margin-left:0!important}.ai1wm-right{float:right!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 2px 0 20px}.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-right:4px solid #ffba00}.ai1wm-overlay{display:none;position:fixed;top:0;right:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);z-index:100001}.ai1wm-modal-container{position:fixed;display:none;top:50%;right: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:20px}.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:right}.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{color:#e74c3c}.ai1wm-modal-container section p .ai1wm-modal-subdescription{display:block;text-align:right}.ai1wm-modal-container section p a.ai1wm-button-green{display:inline-block;position:relative;top:26px}.ai1wm-modal-container section p a.ai1wm-emphasize{-webkit-animation:ai1wm-emphasize 1s infinite;animation:ai1wm-emphasize 1s infinite}.ai1wm-modal-container section p em{display:block;color:#34495e;font-style:normal}.ai1wm-modal-container section p.ai1wm-import-modal-content{text-align:right}.ai1wm-modal-container .ai1wm-import-modal-actions{border-top:1px solid #ccc;padding-top:1em;text-align:left}.ai1wm-modal-container .ai1wm-import-modal-actions .ai1wm-button-gray{margin-left:1em}.ai1wm-modal-container .ai1wm-import-modal-notice{border-top:1px solid #ccc}.ai1wm-modal-container .ai1wm-import-modal-notice p{font-weight:700;margin:0;padding-top:16px;text-align:center}#ai1wm-backup-progress,#ai1wm-backup-progress-bar{background-color:#dfdfdf;height:20px;width:350px;border-radius:15px}#ai1wm-backup-progress-bar{background-color:#00aff0;line-height:20px;color:#fff;width:0;text-align:center}.ai1wm-backups{width:100%;margin:1em 0 2em;padding:0;border-collapse:collapse}.ai1wm-backups .ai1wm-column-name{text-align:right}.ai1wm-backups .ai1wm-column-info{text-align:left}.ai1wm-backups .ai1wm-column-date,.ai1wm-backups .ai1wm-column-size{text-align:center}.ai1wm-backups .ai1wm-column-actions{text-align:left}.ai1wm-backups thead th{padding:4px 6px;text-align:right;font-size:1.2em}.ai1wm-backups tbody tr:first-child{border-top:1px solid #ccc}.ai1wm-backups tbody tr{border-bottom:1px solid #ccc}.ai1wm-backups tbody tr:hover{background:rgba(0,0,0,.1)}.ai1wm-backups tbody td{padding:4px 6px;box-sizing:border-box;line-height:24px}.ai1wm-backups tbody td span{font-weight:700}.ai1wm-backups tbody td.ai1wm-backup-actions{text-align:left;width:250px}.ai1wm-backups tbody td.ai1wm-backup-actions span{transition:width 2s cubic-bezier(.19,1,.22,1);display:inline-block;width:0;text-align:center;white-space:nowrap;visibility:hidden}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-delete,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-download,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-restore{border-radius:50px;margin:0 2px;padding:4px 8px}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-button-on span{width:80px;visibility:visible}.ai1wm-backups-empty{line-height:2em}
|
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:right}.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:336px;border-top:1px solid #27ae60}.ai1wm-button-group.ai1wm-button-import.ai1wm-open>.ai1wm-dropdown-menu{height:364px;border-top:1px solid #27ae60}.ai1wm-button-group .ai1wm-button-main{position:relative;padding:6px 25px 6px 50px;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:right;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;left:20px}.ai1wm-line{position:absolute;width:100%;height:2px;margin:auto;background:#27ae60;transition:all .2s ease-in-out}.ai1wm-line-first{top:0;right:0}div.ai1wm-open .ai1wm-line-first,div.ai1wm-open .ai1wm-line-third{top:50%}.ai1wm-line-second{top:50%;right:0}.ai1wm-line-third{top:100%;right: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 26px 5px 25px;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:100% 0}.ai1wm-message-close-button{position:absolute;left: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:right;width:25px;height:25px;border-radius:50%;background:100% 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:left}.ai1wm-report-problem-dialog{position:absolute;z-index:999;width:280px;left: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:right;line-height:34px;outline:0;text-decoration:none;color:#e74c3c}.ai1wm-form-submit{float:left}.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 8px 6px 0}.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:right;line-height:1.5em}.ai1wm-import-info{display:inline-block;font-size:12px;font-weight:700;margin-top:16px}[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-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"}@media (min-width:855px){.ai1wm-row{margin-left:399px}.ai1wm-row:after,.ai1wm-row:before{content:" ";display:table}.ai1wm-row:after{clear:both}.ai1wm-left{float:right;width:100%}.ai1wm-right{float:left;width:377px;margin-left:-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:right;font-weight:300;font-size:22px;text-transform:uppercase}.ai1wm-holder h1 i{position:relative;top:2px}@media (max-width:854px){.ai1wm-container{margin-right:10px!important}.ai1wm-right,.ai1wm-row{margin-left:0!important}.ai1wm-right{float:right!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 2px 0 20px}.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-right:4px solid #ffba00}.ai1wm-overlay{display:none;position:fixed;top:0;right:0;width:100%;height:100%;background-color:rgba(0,0,0,.7);z-index:100001}.ai1wm-modal-container{position:fixed;display:none;top:50%;right: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:20px}.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:right}.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{color:#e74c3c}.ai1wm-modal-container section p .ai1wm-modal-subdescription{display:block;text-align:right}.ai1wm-modal-container section p a.ai1wm-button-green{display:inline-block;position:relative;top:26px}.ai1wm-modal-container section p a.ai1wm-emphasize{-webkit-animation:ai1wm-emphasize 1s infinite;animation:ai1wm-emphasize 1s infinite}.ai1wm-modal-container section p em{display:block;color:#34495e;font-style:normal}.ai1wm-modal-container section p.ai1wm-import-modal-content{text-align:right}.ai1wm-modal-container .ai1wm-import-modal-actions{border-top:1px solid #ccc;padding-top:1em;text-align:left}.ai1wm-modal-container .ai1wm-import-modal-actions .ai1wm-button-gray{margin-left:1em}.ai1wm-modal-container .ai1wm-import-modal-notice{border-top:1px solid #ccc}.ai1wm-modal-container .ai1wm-import-modal-notice p{font-weight:700;margin:0;padding-top:16px;text-align:center}#ai1wm-backup-progress,#ai1wm-backup-progress-bar{background-color:#dfdfdf;height:20px;width:350px;border-radius:15px}#ai1wm-backup-progress-bar{background-color:#00aff0;line-height:20px;color:#fff;width:0;text-align:center}.ai1wm-backups{width:100%;margin:1em 0 2em;padding:0;border-collapse:collapse}.ai1wm-backups .ai1wm-column-name{text-align:right;word-wrap:break-all}.ai1wm-backups .ai1wm-column-date,.ai1wm-backups .ai1wm-column-size{text-align:center;white-space:nowrap}.ai1wm-backups .ai1wm-column-actions{text-align:left;white-space:nowrap}.ai1wm-backups thead th{padding:4px 6px;text-align:right;font-size:1.2em}.ai1wm-backups tbody tr:first-child{border-top:1px solid #ccc}.ai1wm-backups tbody tr{border-bottom:1px solid #ccc}.ai1wm-backups tbody tr:hover{background:rgba(0,0,0,.1)}.ai1wm-backups tbody td{padding:4px 6px;box-sizing:border-box;line-height:24px}.ai1wm-backups tbody td.ai1wm-backup-actions{text-align:left;width:250px}.ai1wm-backups tbody td.ai1wm-backup-actions span{transition:width 2s cubic-bezier(.19,1,.22,1);display:inline-block;width:0;text-align:center;visibility:hidden}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-delete,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-download,.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-backup-restore{border-radius:50px;margin:0 2px;padding:4px 8px}.ai1wm-backups tbody td.ai1wm-backup-actions .ai1wm-button-on span{width:80px;visibility:visible}.ai1wm-backups-empty{line-height:2em}
|
lib/view/assets/javascript/backups.min.js
CHANGED
@@ -174,11 +174,11 @@ Import.prototype.start = function (options, retries) {
|
|
174 |
|
175 |
// Initializing beforeunload event
|
176 |
$(window).bind('beforeunload', function () {
|
177 |
-
return
|
178 |
});
|
179 |
|
180 |
// Set initial status
|
181 |
-
this.setStatus({ type: 'info', message:
|
182 |
|
183 |
// Set params
|
184 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key });
|
@@ -208,8 +208,8 @@ Import.prototype.start = function (options, retries) {
|
|
208 |
if (retries >= 5) {
|
209 |
return self.setStatus({
|
210 |
type: 'error',
|
211 |
-
title:
|
212 |
-
message:
|
213 |
});
|
214 |
}
|
215 |
|
@@ -287,8 +287,8 @@ Import.prototype.confirm = function (options, retries) {
|
|
287 |
if (retries >= 5) {
|
288 |
return self.setStatus({
|
289 |
type: 'error',
|
290 |
-
title:
|
291 |
-
message:
|
292 |
});
|
293 |
}
|
294 |
|
@@ -335,8 +335,8 @@ Import.prototype.blogs = function (options, retries) {
|
|
335 |
if (retries >= 5) {
|
336 |
return self.setStatus({
|
337 |
type: 'error',
|
338 |
-
title:
|
339 |
-
message:
|
340 |
});
|
341 |
}
|
342 |
|
@@ -354,7 +354,7 @@ Import.prototype.clean = function (options, retries) {
|
|
354 |
this.stopImport = true;
|
355 |
|
356 |
// Set initial status
|
357 |
-
this.setStatus({ type: 'info', message:
|
358 |
|
359 |
// Set params
|
360 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 400 });
|
@@ -384,8 +384,8 @@ Import.prototype.clean = function (options, retries) {
|
|
384 |
if (retries >= 5) {
|
385 |
return self.setStatus({
|
386 |
type: 'error',
|
387 |
-
title:
|
388 |
-
message:
|
389 |
});
|
390 |
}
|
391 |
|
@@ -515,11 +515,14 @@ var Modal = function Modal() {
|
|
515 |
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title);
|
516 |
|
517 |
// Create close button
|
518 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
519 |
self.destroy();
|
520 |
});
|
521 |
|
522 |
-
// Append close button
|
|
|
|
|
|
|
523 |
action.append(closeButton);
|
524 |
|
525 |
// Append title to section
|
@@ -540,10 +543,10 @@ var Modal = function Modal() {
|
|
540 |
this.progress = function (params) {
|
541 |
if (this.view === 'progress') {
|
542 |
|
543 |
-
// Update
|
544 |
this.progress.progressBarMeter.width(params.percent + '%');
|
545 |
|
546 |
-
// Update
|
547 |
this.progress.progressBarPercent.text(params.percent + '%');
|
548 |
} else {
|
549 |
|
@@ -562,25 +565,28 @@ var Modal = function Modal() {
|
|
562 |
// Create action section
|
563 |
var action = $('<div></div>');
|
564 |
|
565 |
-
// Create
|
566 |
var progressBar = $('<span class="ai1wm-progress-bar"></span>');
|
567 |
|
568 |
-
// Create
|
569 |
this.progress.progressBarMeter = $('<span class="ai1wm-progress-bar-meter"></span>').width(params.percent + '%');
|
570 |
|
571 |
-
// Create
|
572 |
-
this.progress.progressBarPercent = $('<span class="ai1wm-progress-bar-percent"
|
573 |
|
574 |
// Create stop import
|
575 |
-
var stopButton = $('<button type="button" class="ai1wm-button-red"
|
576 |
$(this).attr('disabled', 'disabled');
|
577 |
self.onStop();
|
578 |
});
|
579 |
|
|
|
|
|
|
|
580 |
// Append progress meter and progress percent
|
581 |
progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent);
|
582 |
|
583 |
-
// Append stop button
|
584 |
action.append(stopButton);
|
585 |
|
586 |
// Append progress bar to section
|
@@ -619,22 +625,28 @@ var Modal = function Modal() {
|
|
619 |
// Create warning
|
620 |
var warning = $('<i class="ai1wm-icon-notification"></i>');
|
621 |
|
622 |
-
// Create
|
623 |
-
var
|
624 |
$(this).attr('disabled', 'disabled');
|
625 |
self.onStop();
|
626 |
});
|
627 |
|
628 |
// Create confirm button
|
629 |
-
var confirmButton = $('<button type="button" class="ai1wm-button-green"
|
630 |
$(this).attr('disabled', 'disabled');
|
631 |
self.onConfirm();
|
632 |
});
|
633 |
|
634 |
-
// Append
|
635 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
636 |
|
637 |
-
// Append confirm button
|
638 |
action.append(confirmButton);
|
639 |
|
640 |
// Append warning to section
|
@@ -673,12 +685,15 @@ var Modal = function Modal() {
|
|
673 |
var title = $('<span></span>').addClass('ai1wm-title-grey').text(params.title);
|
674 |
|
675 |
// Create continue button
|
676 |
-
var continueButton = $('<button type="button" class="ai1wm-button-green"
|
677 |
$(this).attr('disabled', 'disabled');
|
678 |
self.onBlogs($(this).closest('form').serializeArray());
|
679 |
});
|
680 |
|
681 |
-
// Append continue button
|
|
|
|
|
|
|
682 |
action.append(continueButton);
|
683 |
|
684 |
// Append title to section
|
@@ -716,11 +731,17 @@ var Modal = function Modal() {
|
|
716 |
// Create loader
|
717 |
var loader = $('<span class="ai1wm-loader"></span>');
|
718 |
|
|
|
|
|
|
|
719 |
// Create notice to be displayed during import process
|
720 |
-
var
|
721 |
|
722 |
-
// Append
|
723 |
-
|
|
|
|
|
|
|
724 |
|
725 |
// Append loader to header
|
726 |
header.append(loader);
|
@@ -758,11 +779,14 @@ var Modal = function Modal() {
|
|
758 |
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title);
|
759 |
|
760 |
// Create close button
|
761 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
762 |
self.destroy();
|
763 |
});
|
764 |
|
765 |
-
// Append close button
|
|
|
|
|
|
|
766 |
action.append(closeButton);
|
767 |
|
768 |
// Append title to section
|
@@ -883,7 +907,7 @@ jQuery(document).ready(function ($) {
|
|
883 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
884 |
|
885 |
// Change placeholder message
|
886 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
887 |
|
888 |
// Show feedback form
|
889 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -895,7 +919,7 @@ jQuery(document).ready(function ($) {
|
|
895 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
896 |
|
897 |
// Change placeholder message
|
898 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
899 |
|
900 |
// Show feedback form
|
901 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -947,13 +971,13 @@ jQuery(document).ready(function ($) {
|
|
947 |
|
948 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
949 |
$.each(data.errors, function (key, value) {
|
950 |
-
errorMessage.append('<p
|
951 |
});
|
952 |
|
953 |
$('.ai1wm-feedback').prepend(errorMessage);
|
954 |
} else {
|
955 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
956 |
-
successMessage.append('<p
|
957 |
|
958 |
$('.ai1wm-feedback').html(successMessage);
|
959 |
}
|
@@ -1013,7 +1037,7 @@ jQuery(document).ready(function ($) {
|
|
1013 |
var self = $(this);
|
1014 |
|
1015 |
// Delete file
|
1016 |
-
if (confirm(
|
1017 |
$.ajax({
|
1018 |
url: ai1wm_backups.ajax.url,
|
1019 |
type: 'POST',
|
@@ -1140,13 +1164,13 @@ jQuery(document).ready(function ($) {
|
|
1140 |
|
1141 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
1142 |
$.each(data.errors, function (key, value) {
|
1143 |
-
errorMessage.append('<p
|
1144 |
});
|
1145 |
|
1146 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
1147 |
} else {
|
1148 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
1149 |
-
successMessage.append('<p
|
1150 |
|
1151 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
1152 |
|
174 |
|
175 |
// Initializing beforeunload event
|
176 |
$(window).bind('beforeunload', function () {
|
177 |
+
return ai1wm_locale.stop_importing_your_website;
|
178 |
});
|
179 |
|
180 |
// Set initial status
|
181 |
+
this.setStatus({ type: 'info', message: ai1wm_locale.preparing_to_import });
|
182 |
|
183 |
// Set params
|
184 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key });
|
208 |
if (retries >= 5) {
|
209 |
return self.setStatus({
|
210 |
type: 'error',
|
211 |
+
title: ai1wm_locale.unable_to_import,
|
212 |
+
message: ai1wm_locale.unable_to_start_the_import
|
213 |
});
|
214 |
}
|
215 |
|
287 |
if (retries >= 5) {
|
288 |
return self.setStatus({
|
289 |
type: 'error',
|
290 |
+
title: ai1wm_locale.unable_to_import,
|
291 |
+
message: ai1wm_locale.unable_to_confirm_the_import
|
292 |
});
|
293 |
}
|
294 |
|
335 |
if (retries >= 5) {
|
336 |
return self.setStatus({
|
337 |
type: 'error',
|
338 |
+
title: ai1wm_locale.unable_to_import,
|
339 |
+
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
340 |
});
|
341 |
}
|
342 |
|
354 |
this.stopImport = true;
|
355 |
|
356 |
// Set initial status
|
357 |
+
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
358 |
|
359 |
// Set params
|
360 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 400 });
|
384 |
if (retries >= 5) {
|
385 |
return self.setStatus({
|
386 |
type: 'error',
|
387 |
+
title: ai1wm_locale.unable_to_import,
|
388 |
+
message: ai1wm_locale.unable_to_stop_the_import
|
389 |
});
|
390 |
}
|
391 |
|
515 |
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title);
|
516 |
|
517 |
// Create close button
|
518 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
519 |
self.destroy();
|
520 |
});
|
521 |
|
522 |
+
// Append text to close button
|
523 |
+
closeButton.append(ai1wm_locale.close_import);
|
524 |
+
|
525 |
+
// Append close button to action
|
526 |
action.append(closeButton);
|
527 |
|
528 |
// Append title to section
|
543 |
this.progress = function (params) {
|
544 |
if (this.view === 'progress') {
|
545 |
|
546 |
+
// Update progress bar meter
|
547 |
this.progress.progressBarMeter.width(params.percent + '%');
|
548 |
|
549 |
+
// Update progress bar percent
|
550 |
this.progress.progressBarPercent.text(params.percent + '%');
|
551 |
} else {
|
552 |
|
565 |
// Create action section
|
566 |
var action = $('<div></div>');
|
567 |
|
568 |
+
// Create progress bar
|
569 |
var progressBar = $('<span class="ai1wm-progress-bar"></span>');
|
570 |
|
571 |
+
// Create progress bar meter
|
572 |
this.progress.progressBarMeter = $('<span class="ai1wm-progress-bar-meter"></span>').width(params.percent + '%');
|
573 |
|
574 |
+
// Create progress bar percent
|
575 |
+
this.progress.progressBarPercent = $('<span class="ai1wm-progress-bar-percent"></span>').text(params.percent + '%');
|
576 |
|
577 |
// Create stop import
|
578 |
+
var stopButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
579 |
$(this).attr('disabled', 'disabled');
|
580 |
self.onStop();
|
581 |
});
|
582 |
|
583 |
+
// Append text to stop button
|
584 |
+
stopButton.append('<i class="ai1wm-icon-notification"></i> ' + ai1wm_locale.stop_import);
|
585 |
+
|
586 |
// Append progress meter and progress percent
|
587 |
progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent);
|
588 |
|
589 |
+
// Append stop button to action
|
590 |
action.append(stopButton);
|
591 |
|
592 |
// Append progress bar to section
|
625 |
// Create warning
|
626 |
var warning = $('<i class="ai1wm-icon-notification"></i>');
|
627 |
|
628 |
+
// Create close button
|
629 |
+
var closeButton = $('<button type="button" class="ai1wm-button-gray"></button>').on('click', function () {
|
630 |
$(this).attr('disabled', 'disabled');
|
631 |
self.onStop();
|
632 |
});
|
633 |
|
634 |
// Create confirm button
|
635 |
+
var confirmButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
636 |
$(this).attr('disabled', 'disabled');
|
637 |
self.onConfirm();
|
638 |
});
|
639 |
|
640 |
+
// Append text to close button
|
641 |
+
closeButton.append(ai1wm_locale.close_import);
|
642 |
+
|
643 |
+
// Append text to confirm button
|
644 |
+
confirmButton.append(ai1wm_locale.confirm_import + ' >');
|
645 |
+
|
646 |
+
// Append close button to action
|
647 |
+
action.append(closeButton);
|
648 |
|
649 |
+
// Append confirm button to action
|
650 |
action.append(confirmButton);
|
651 |
|
652 |
// Append warning to section
|
685 |
var title = $('<span></span>').addClass('ai1wm-title-grey').text(params.title);
|
686 |
|
687 |
// Create continue button
|
688 |
+
var continueButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
689 |
$(this).attr('disabled', 'disabled');
|
690 |
self.onBlogs($(this).closest('form').serializeArray());
|
691 |
});
|
692 |
|
693 |
+
// Append text to continue button
|
694 |
+
continueButton.append(ai1wm_locale.continue_import);
|
695 |
+
|
696 |
+
// Append continue button to action
|
697 |
action.append(continueButton);
|
698 |
|
699 |
// Append title to section
|
731 |
// Create loader
|
732 |
var loader = $('<span class="ai1wm-loader"></span>');
|
733 |
|
734 |
+
// Create warning
|
735 |
+
var warning = $('<p></p>').html(ai1wm_locale.please_do_not_close_this_browser);
|
736 |
+
|
737 |
// Create notice to be displayed during import process
|
738 |
+
var notice = $('<div class="ai1wm-import-modal-notice"></div>');
|
739 |
|
740 |
+
// Append warning to notice
|
741 |
+
notice.append(warning);
|
742 |
+
|
743 |
+
// Append stop button to action
|
744 |
+
action.append(notice);
|
745 |
|
746 |
// Append loader to header
|
747 |
header.append(loader);
|
779 |
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title);
|
780 |
|
781 |
// Create close button
|
782 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
783 |
self.destroy();
|
784 |
});
|
785 |
|
786 |
+
// Append text to close button
|
787 |
+
closeButton.append(ai1wm_locale.close_import);
|
788 |
+
|
789 |
+
// Append close button to action
|
790 |
action.append(closeButton);
|
791 |
|
792 |
// Append title to section
|
907 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
908 |
|
909 |
// Change placeholder message
|
910 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
|
911 |
|
912 |
// Show feedback form
|
913 |
$('.ai1wm-feedback-form').fadeIn();
|
919 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
920 |
|
921 |
// Change placeholder message
|
922 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.how_may_we_help_you);
|
923 |
|
924 |
// Show feedback form
|
925 |
$('.ai1wm-feedback-form').fadeIn();
|
971 |
|
972 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
973 |
$.each(data.errors, function (key, value) {
|
974 |
+
errorMessage.append($('<p />').text(value));
|
975 |
});
|
976 |
|
977 |
$('.ai1wm-feedback').prepend(errorMessage);
|
978 |
} else {
|
979 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
980 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_feedback));
|
981 |
|
982 |
$('.ai1wm-feedback').html(successMessage);
|
983 |
}
|
1037 |
var self = $(this);
|
1038 |
|
1039 |
// Delete file
|
1040 |
+
if (confirm(ai1wm_locale.want_to_delete_this_file)) {
|
1041 |
$.ajax({
|
1042 |
url: ai1wm_backups.ajax.url,
|
1043 |
type: 'POST',
|
1164 |
|
1165 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
1166 |
$.each(data.errors, function (key, value) {
|
1167 |
+
errorMessage.append($('<p />').text(value));
|
1168 |
});
|
1169 |
|
1170 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
1171 |
} else {
|
1172 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
1173 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_request));
|
1174 |
|
1175 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
1176 |
|
lib/view/assets/javascript/export.min.js
CHANGED
@@ -146,7 +146,7 @@ jQuery(document).ready(function ($) {
|
|
146 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
147 |
|
148 |
// Change placeholder message
|
149 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
150 |
|
151 |
// Show feedback form
|
152 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -158,7 +158,7 @@ jQuery(document).ready(function ($) {
|
|
158 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
159 |
|
160 |
// Change placeholder message
|
161 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
162 |
|
163 |
// Show feedback form
|
164 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -210,13 +210,13 @@ jQuery(document).ready(function ($) {
|
|
210 |
|
211 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
212 |
$.each(data.errors, function (key, value) {
|
213 |
-
errorMessage.append('<p
|
214 |
});
|
215 |
|
216 |
$('.ai1wm-feedback').prepend(errorMessage);
|
217 |
} else {
|
218 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
219 |
-
successMessage.append('<p
|
220 |
|
221 |
$('.ai1wm-feedback').html(successMessage);
|
222 |
}
|
@@ -307,13 +307,13 @@ jQuery(document).ready(function ($) {
|
|
307 |
|
308 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
309 |
$.each(data.errors, function (key, value) {
|
310 |
-
errorMessage.append('<p
|
311 |
});
|
312 |
|
313 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
314 |
} else {
|
315 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
316 |
-
successMessage.append('<p
|
317 |
|
318 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
319 |
|
@@ -593,11 +593,11 @@ Export.prototype.start = function (options, retries) {
|
|
593 |
|
594 |
// Initializing beforeunload event
|
595 |
$(window).bind('beforeunload', function () {
|
596 |
-
return
|
597 |
});
|
598 |
|
599 |
// Set initial status
|
600 |
-
this.setStatus({ type: 'info', message:
|
601 |
|
602 |
// Set params
|
603 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_export.secret_key });
|
@@ -627,8 +627,8 @@ Export.prototype.start = function (options, retries) {
|
|
627 |
if (retries >= 5) {
|
628 |
return self.setStatus({
|
629 |
type: 'error',
|
630 |
-
title:
|
631 |
-
message:
|
632 |
});
|
633 |
}
|
634 |
|
@@ -665,8 +665,8 @@ Export.prototype.run = function (params, retries) {
|
|
665 |
if (retries >= 5) {
|
666 |
return self.setStatus({
|
667 |
type: 'error',
|
668 |
-
title:
|
669 |
-
message:
|
670 |
});
|
671 |
}
|
672 |
|
@@ -684,7 +684,7 @@ Export.prototype.clean = function (options, retries) {
|
|
684 |
this.stopExport = true;
|
685 |
|
686 |
// Set initial status
|
687 |
-
this.setStatus({ type: 'info', message:
|
688 |
|
689 |
// Set params
|
690 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_export.secret_key }).concat({ name: 'priority', value: 300 });
|
@@ -714,8 +714,8 @@ Export.prototype.clean = function (options, retries) {
|
|
714 |
if (retries >= 5) {
|
715 |
return self.setStatus({
|
716 |
type: 'error',
|
717 |
-
title:
|
718 |
-
message:
|
719 |
});
|
720 |
}
|
721 |
|
@@ -833,11 +833,14 @@ var Modal = function Modal() {
|
|
833 |
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title);
|
834 |
|
835 |
// Create close button
|
836 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
837 |
self.destroy();
|
838 |
});
|
839 |
|
840 |
-
// Append close button
|
|
|
|
|
|
|
841 |
action.append(closeButton);
|
842 |
|
843 |
// Append title to section
|
@@ -876,12 +879,15 @@ var Modal = function Modal() {
|
|
876 |
var loader = $('<span class="ai1wm-loader"></span>');
|
877 |
|
878 |
// Create stop export
|
879 |
-
var stopButton = $('<button type="button" class="ai1wm-button-red"
|
880 |
$(this).attr('disabled', 'disabled');
|
881 |
self.onStop();
|
882 |
});
|
883 |
|
884 |
-
// Append stop button
|
|
|
|
|
|
|
885 |
action.append(stopButton);
|
886 |
|
887 |
// Append loader to header
|
@@ -920,11 +926,14 @@ var Modal = function Modal() {
|
|
920 |
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title);
|
921 |
|
922 |
// Create close button
|
923 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
924 |
self.destroy();
|
925 |
});
|
926 |
|
927 |
-
// Append close button
|
|
|
|
|
|
|
928 |
action.append(closeButton);
|
929 |
|
930 |
// Append title to section
|
@@ -960,11 +969,14 @@ var Modal = function Modal() {
|
|
960 |
var action = $('<div></div>');
|
961 |
|
962 |
// Create close button
|
963 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
964 |
self.destroy();
|
965 |
});
|
966 |
|
967 |
-
// Append close button
|
|
|
|
|
|
|
968 |
action.append(closeButton);
|
969 |
|
970 |
// Append message to section
|
146 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
147 |
|
148 |
// Change placeholder message
|
149 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
|
150 |
|
151 |
// Show feedback form
|
152 |
$('.ai1wm-feedback-form').fadeIn();
|
158 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
159 |
|
160 |
// Change placeholder message
|
161 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.how_may_we_help_you);
|
162 |
|
163 |
// Show feedback form
|
164 |
$('.ai1wm-feedback-form').fadeIn();
|
210 |
|
211 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
212 |
$.each(data.errors, function (key, value) {
|
213 |
+
errorMessage.append($('<p />').text(value));
|
214 |
});
|
215 |
|
216 |
$('.ai1wm-feedback').prepend(errorMessage);
|
217 |
} else {
|
218 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
219 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_feedback));
|
220 |
|
221 |
$('.ai1wm-feedback').html(successMessage);
|
222 |
}
|
307 |
|
308 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
309 |
$.each(data.errors, function (key, value) {
|
310 |
+
errorMessage.append($('<p />').text(value));
|
311 |
});
|
312 |
|
313 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
314 |
} else {
|
315 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
316 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_request));
|
317 |
|
318 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
319 |
|
593 |
|
594 |
// Initializing beforeunload event
|
595 |
$(window).bind('beforeunload', function () {
|
596 |
+
return ai1wm_locale.stop_exporting_your_website;
|
597 |
});
|
598 |
|
599 |
// Set initial status
|
600 |
+
this.setStatus({ type: 'info', message: ai1wm_locale.preparing_to_export });
|
601 |
|
602 |
// Set params
|
603 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_export.secret_key });
|
627 |
if (retries >= 5) {
|
628 |
return self.setStatus({
|
629 |
type: 'error',
|
630 |
+
title: ai1wm_locale.unable_to_export,
|
631 |
+
message: ai1wm_locale.unable_to_start_the_export
|
632 |
});
|
633 |
}
|
634 |
|
665 |
if (retries >= 5) {
|
666 |
return self.setStatus({
|
667 |
type: 'error',
|
668 |
+
title: ai1wm_locale.unable_to_export,
|
669 |
+
message: ai1wm_locale.unable_to_run_the_export
|
670 |
});
|
671 |
}
|
672 |
|
684 |
this.stopExport = true;
|
685 |
|
686 |
// Set initial status
|
687 |
+
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
688 |
|
689 |
// Set params
|
690 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_export.secret_key }).concat({ name: 'priority', value: 300 });
|
714 |
if (retries >= 5) {
|
715 |
return self.setStatus({
|
716 |
type: 'error',
|
717 |
+
title: ai1wm_locale.unable_to_export,
|
718 |
+
message: ai1wm_locale.unable_to_stop_the_export
|
719 |
});
|
720 |
}
|
721 |
|
833 |
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title);
|
834 |
|
835 |
// Create close button
|
836 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
837 |
self.destroy();
|
838 |
});
|
839 |
|
840 |
+
// Append text to close button
|
841 |
+
closeButton.append(ai1wm_locale.close_export);
|
842 |
+
|
843 |
+
// Append close button to action
|
844 |
action.append(closeButton);
|
845 |
|
846 |
// Append title to section
|
879 |
var loader = $('<span class="ai1wm-loader"></span>');
|
880 |
|
881 |
// Create stop export
|
882 |
+
var stopButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
883 |
$(this).attr('disabled', 'disabled');
|
884 |
self.onStop();
|
885 |
});
|
886 |
|
887 |
+
// Append text to stop button
|
888 |
+
stopButton.append('<i class="ai1wm-icon-notification"></i> ' + ai1wm_locale.stop_export);
|
889 |
+
|
890 |
+
// Append stop button to action
|
891 |
action.append(stopButton);
|
892 |
|
893 |
// Append loader to header
|
926 |
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title);
|
927 |
|
928 |
// Create close button
|
929 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
930 |
self.destroy();
|
931 |
});
|
932 |
|
933 |
+
// Append text to close button
|
934 |
+
closeButton.append(ai1wm_locale.close_export);
|
935 |
+
|
936 |
+
// Append close button to action
|
937 |
action.append(closeButton);
|
938 |
|
939 |
// Append title to section
|
969 |
var action = $('<div></div>');
|
970 |
|
971 |
// Create close button
|
972 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
973 |
self.destroy();
|
974 |
});
|
975 |
|
976 |
+
// Append text to close button
|
977 |
+
closeButton.append(ai1wm_locale.close_export);
|
978 |
+
|
979 |
+
// Append close button to action
|
980 |
action.append(closeButton);
|
981 |
|
982 |
// Append message to section
|
lib/view/assets/javascript/feedback.min.js
CHANGED
@@ -146,7 +146,7 @@ jQuery(document).ready(function ($) {
|
|
146 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
147 |
|
148 |
// Change placeholder message
|
149 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
150 |
|
151 |
// Show feedback form
|
152 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -158,7 +158,7 @@ jQuery(document).ready(function ($) {
|
|
158 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
159 |
|
160 |
// Change placeholder message
|
161 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
162 |
|
163 |
// Show feedback form
|
164 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -210,13 +210,13 @@ jQuery(document).ready(function ($) {
|
|
210 |
|
211 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
212 |
$.each(data.errors, function (key, value) {
|
213 |
-
errorMessage.append('<p
|
214 |
});
|
215 |
|
216 |
$('.ai1wm-feedback').prepend(errorMessage);
|
217 |
} else {
|
218 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
219 |
-
successMessage.append('<p
|
220 |
|
221 |
$('.ai1wm-feedback').html(successMessage);
|
222 |
}
|
146 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
147 |
|
148 |
// Change placeholder message
|
149 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
|
150 |
|
151 |
// Show feedback form
|
152 |
$('.ai1wm-feedback-form').fadeIn();
|
158 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
159 |
|
160 |
// Change placeholder message
|
161 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.how_may_we_help_you);
|
162 |
|
163 |
// Show feedback form
|
164 |
$('.ai1wm-feedback-form').fadeIn();
|
210 |
|
211 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
212 |
$.each(data.errors, function (key, value) {
|
213 |
+
errorMessage.append($('<p />').text(value));
|
214 |
});
|
215 |
|
216 |
$('.ai1wm-feedback').prepend(errorMessage);
|
217 |
} else {
|
218 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
219 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_feedback));
|
220 |
|
221 |
$('.ai1wm-feedback').html(successMessage);
|
222 |
}
|
lib/view/assets/javascript/import.min.js
CHANGED
@@ -173,7 +173,7 @@ jQuery(document).ready(function ($) {
|
|
173 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
174 |
|
175 |
// Change placeholder message
|
176 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
177 |
|
178 |
// Show feedback form
|
179 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -185,7 +185,7 @@ jQuery(document).ready(function ($) {
|
|
185 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
186 |
|
187 |
// Change placeholder message
|
188 |
-
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder',
|
189 |
|
190 |
// Show feedback form
|
191 |
$('.ai1wm-feedback-form').fadeIn();
|
@@ -237,13 +237,13 @@ jQuery(document).ready(function ($) {
|
|
237 |
|
238 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
239 |
$.each(data.errors, function (key, value) {
|
240 |
-
errorMessage.append('<p
|
241 |
});
|
242 |
|
243 |
$('.ai1wm-feedback').prepend(errorMessage);
|
244 |
} else {
|
245 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
246 |
-
successMessage.append('<p
|
247 |
|
248 |
$('.ai1wm-feedback').html(successMessage);
|
249 |
}
|
@@ -333,13 +333,13 @@ jQuery(document).ready(function ($) {
|
|
333 |
|
334 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
335 |
$.each(data.errors, function (key, value) {
|
336 |
-
errorMessage.append('<p
|
337 |
});
|
338 |
|
339 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
340 |
} else {
|
341 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
342 |
-
successMessage.append('<p
|
343 |
|
344 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
345 |
|
@@ -542,11 +542,11 @@ Import.prototype.start = function (options, retries) {
|
|
542 |
|
543 |
// Initializing beforeunload event
|
544 |
$(window).bind('beforeunload', function () {
|
545 |
-
return
|
546 |
});
|
547 |
|
548 |
// Set initial status
|
549 |
-
this.setStatus({ type: 'info', message:
|
550 |
|
551 |
// Set params
|
552 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key });
|
@@ -576,8 +576,8 @@ Import.prototype.start = function (options, retries) {
|
|
576 |
if (retries >= 5) {
|
577 |
return self.setStatus({
|
578 |
type: 'error',
|
579 |
-
title:
|
580 |
-
message:
|
581 |
});
|
582 |
}
|
583 |
|
@@ -655,8 +655,8 @@ Import.prototype.confirm = function (options, retries) {
|
|
655 |
if (retries >= 5) {
|
656 |
return self.setStatus({
|
657 |
type: 'error',
|
658 |
-
title:
|
659 |
-
message:
|
660 |
});
|
661 |
}
|
662 |
|
@@ -703,8 +703,8 @@ Import.prototype.blogs = function (options, retries) {
|
|
703 |
if (retries >= 5) {
|
704 |
return self.setStatus({
|
705 |
type: 'error',
|
706 |
-
title:
|
707 |
-
message:
|
708 |
});
|
709 |
}
|
710 |
|
@@ -722,7 +722,7 @@ Import.prototype.clean = function (options, retries) {
|
|
722 |
this.stopImport = true;
|
723 |
|
724 |
// Set initial status
|
725 |
-
this.setStatus({ type: 'info', message:
|
726 |
|
727 |
// Set params
|
728 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 400 });
|
@@ -752,8 +752,8 @@ Import.prototype.clean = function (options, retries) {
|
|
752 |
if (retries >= 5) {
|
753 |
return self.setStatus({
|
754 |
type: 'error',
|
755 |
-
title:
|
756 |
-
message:
|
757 |
});
|
758 |
}
|
759 |
|
@@ -951,11 +951,14 @@ var Modal = function Modal() {
|
|
951 |
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title);
|
952 |
|
953 |
// Create close button
|
954 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
955 |
self.destroy();
|
956 |
});
|
957 |
|
958 |
-
// Append close button
|
|
|
|
|
|
|
959 |
action.append(closeButton);
|
960 |
|
961 |
// Append title to section
|
@@ -976,10 +979,10 @@ var Modal = function Modal() {
|
|
976 |
this.progress = function (params) {
|
977 |
if (this.view === 'progress') {
|
978 |
|
979 |
-
// Update
|
980 |
this.progress.progressBarMeter.width(params.percent + '%');
|
981 |
|
982 |
-
// Update
|
983 |
this.progress.progressBarPercent.text(params.percent + '%');
|
984 |
} else {
|
985 |
|
@@ -998,25 +1001,28 @@ var Modal = function Modal() {
|
|
998 |
// Create action section
|
999 |
var action = $('<div></div>');
|
1000 |
|
1001 |
-
// Create
|
1002 |
var progressBar = $('<span class="ai1wm-progress-bar"></span>');
|
1003 |
|
1004 |
-
// Create
|
1005 |
this.progress.progressBarMeter = $('<span class="ai1wm-progress-bar-meter"></span>').width(params.percent + '%');
|
1006 |
|
1007 |
-
// Create
|
1008 |
-
this.progress.progressBarPercent = $('<span class="ai1wm-progress-bar-percent"
|
1009 |
|
1010 |
// Create stop import
|
1011 |
-
var stopButton = $('<button type="button" class="ai1wm-button-red"
|
1012 |
$(this).attr('disabled', 'disabled');
|
1013 |
self.onStop();
|
1014 |
});
|
1015 |
|
|
|
|
|
|
|
1016 |
// Append progress meter and progress percent
|
1017 |
progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent);
|
1018 |
|
1019 |
-
// Append stop button
|
1020 |
action.append(stopButton);
|
1021 |
|
1022 |
// Append progress bar to section
|
@@ -1055,22 +1061,28 @@ var Modal = function Modal() {
|
|
1055 |
// Create warning
|
1056 |
var warning = $('<i class="ai1wm-icon-notification"></i>');
|
1057 |
|
1058 |
-
// Create
|
1059 |
-
var
|
1060 |
$(this).attr('disabled', 'disabled');
|
1061 |
self.onStop();
|
1062 |
});
|
1063 |
|
1064 |
// Create confirm button
|
1065 |
-
var confirmButton = $('<button type="button" class="ai1wm-button-green"
|
1066 |
$(this).attr('disabled', 'disabled');
|
1067 |
self.onConfirm();
|
1068 |
});
|
1069 |
|
1070 |
-
// Append
|
1071 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1072 |
|
1073 |
-
// Append confirm button
|
1074 |
action.append(confirmButton);
|
1075 |
|
1076 |
// Append warning to section
|
@@ -1109,12 +1121,15 @@ var Modal = function Modal() {
|
|
1109 |
var title = $('<span></span>').addClass('ai1wm-title-grey').text(params.title);
|
1110 |
|
1111 |
// Create continue button
|
1112 |
-
var continueButton = $('<button type="button" class="ai1wm-button-green"
|
1113 |
$(this).attr('disabled', 'disabled');
|
1114 |
self.onBlogs($(this).closest('form').serializeArray());
|
1115 |
});
|
1116 |
|
1117 |
-
// Append continue button
|
|
|
|
|
|
|
1118 |
action.append(continueButton);
|
1119 |
|
1120 |
// Append title to section
|
@@ -1152,11 +1167,17 @@ var Modal = function Modal() {
|
|
1152 |
// Create loader
|
1153 |
var loader = $('<span class="ai1wm-loader"></span>');
|
1154 |
|
|
|
|
|
|
|
1155 |
// Create notice to be displayed during import process
|
1156 |
-
var
|
1157 |
|
1158 |
-
// Append
|
1159 |
-
|
|
|
|
|
|
|
1160 |
|
1161 |
// Append loader to header
|
1162 |
header.append(loader);
|
@@ -1194,11 +1215,14 @@ var Modal = function Modal() {
|
|
1194 |
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title);
|
1195 |
|
1196 |
// Create close button
|
1197 |
-
var closeButton = $('<button type="button" class="ai1wm-button-red"
|
1198 |
self.destroy();
|
1199 |
});
|
1200 |
|
1201 |
-
// Append close button
|
|
|
|
|
|
|
1202 |
action.append(closeButton);
|
1203 |
|
1204 |
// Append title to section
|
@@ -1912,7 +1936,7 @@ FileUploader.prototype.upload = function (file, retries) {
|
|
1912 |
}).catch(function (error) {
|
1913 |
var timeout = retries * 1000;
|
1914 |
if (retries >= 30) {
|
1915 |
-
return _this2.onError(new Error(
|
1916 |
}
|
1917 |
|
1918 |
retries++;
|
@@ -1938,7 +1962,7 @@ FileUploader.prototype.checkSize = function (file) {
|
|
1938 |
var size = parseInt(ai1wm_uploader.filters.ai1wm_archive_size, 10);
|
1939 |
|
1940 |
if (file.size > size && size !== 0) {
|
1941 |
-
throw new Error(
|
1942 |
}
|
1943 |
};
|
1944 |
|
@@ -1950,7 +1974,7 @@ FileUploader.prototype.checkExtension = function (file) {
|
|
1950 |
});
|
1951 |
|
1952 |
if (!matchExtension) {
|
1953 |
-
throw new Error(
|
1954 |
}
|
1955 |
};
|
1956 |
|
@@ -1960,7 +1984,7 @@ FileUploader.prototype.onFilesAdded = function (file) {
|
|
1960 |
|
1961 |
// Initializing beforeunload event
|
1962 |
$(window).bind('beforeunload', function () {
|
1963 |
-
return
|
1964 |
});
|
1965 |
};
|
1966 |
|
@@ -2000,7 +2024,7 @@ FileUploader.prototype.onFileUploaded = function () {
|
|
2000 |
};
|
2001 |
|
2002 |
FileUploader.prototype.onError = function (error) {
|
2003 |
-
this.model.setStatus({ type: 'error', title:
|
2004 |
};
|
2005 |
|
2006 |
module.exports = FileUploader;
|
173 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-3').closest('li').hide();
|
174 |
|
175 |
// Change placeholder message
|
176 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.leave_feedback);
|
177 |
|
178 |
// Show feedback form
|
179 |
$('.ai1wm-feedback-form').fadeIn();
|
185 |
$('#ai1wm-feedback-type-1, #ai1wm-feedback-type-2').closest('li').hide();
|
186 |
|
187 |
// Change placeholder message
|
188 |
+
$('.ai1wm-feedback-form').find('.ai1wm-feedback-message').attr('placeholder', ai1wm_locale.how_may_we_help_you);
|
189 |
|
190 |
// Show feedback form
|
191 |
$('.ai1wm-feedback-form').fadeIn();
|
237 |
|
238 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
239 |
$.each(data.errors, function (key, value) {
|
240 |
+
errorMessage.append($('<p />').text(value));
|
241 |
});
|
242 |
|
243 |
$('.ai1wm-feedback').prepend(errorMessage);
|
244 |
} else {
|
245 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
246 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_feedback));
|
247 |
|
248 |
$('.ai1wm-feedback').html(successMessage);
|
249 |
}
|
333 |
|
334 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
335 |
$.each(data.errors, function (key, value) {
|
336 |
+
errorMessage.append($('<p />').text(value));
|
337 |
});
|
338 |
|
339 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
340 |
} else {
|
341 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
342 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_request));
|
343 |
|
344 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
345 |
|
542 |
|
543 |
// Initializing beforeunload event
|
544 |
$(window).bind('beforeunload', function () {
|
545 |
+
return ai1wm_locale.stop_importing_your_website;
|
546 |
});
|
547 |
|
548 |
// Set initial status
|
549 |
+
this.setStatus({ type: 'info', message: ai1wm_locale.preparing_to_import });
|
550 |
|
551 |
// Set params
|
552 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key });
|
576 |
if (retries >= 5) {
|
577 |
return self.setStatus({
|
578 |
type: 'error',
|
579 |
+
title: ai1wm_locale.unable_to_import,
|
580 |
+
message: ai1wm_locale.unable_to_start_the_import
|
581 |
});
|
582 |
}
|
583 |
|
655 |
if (retries >= 5) {
|
656 |
return self.setStatus({
|
657 |
type: 'error',
|
658 |
+
title: ai1wm_locale.unable_to_import,
|
659 |
+
message: ai1wm_locale.unable_to_confirm_the_import
|
660 |
});
|
661 |
}
|
662 |
|
703 |
if (retries >= 5) {
|
704 |
return self.setStatus({
|
705 |
type: 'error',
|
706 |
+
title: ai1wm_locale.unable_to_import,
|
707 |
+
message: ai1wm_locale.unable_to_prepare_blogs_on_import
|
708 |
});
|
709 |
}
|
710 |
|
722 |
this.stopImport = true;
|
723 |
|
724 |
// Set initial status
|
725 |
+
this.setStatus({ type: 'info', message: ai1wm_locale.please_wait_stopping_the_export });
|
726 |
|
727 |
// Set params
|
728 |
var params = this.params.concat({ name: 'secret_key', value: ai1wm_import.secret_key }).concat({ name: 'priority', value: 400 });
|
752 |
if (retries >= 5) {
|
753 |
return self.setStatus({
|
754 |
type: 'error',
|
755 |
+
title: ai1wm_locale.unable_to_import,
|
756 |
+
message: ai1wm_locale.unable_to_stop_the_import
|
757 |
});
|
758 |
}
|
759 |
|
951 |
var title = $('<span></span>').addClass('ai1wm-title-red').text(params.title);
|
952 |
|
953 |
// Create close button
|
954 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
955 |
self.destroy();
|
956 |
});
|
957 |
|
958 |
+
// Append text to close button
|
959 |
+
closeButton.append(ai1wm_locale.close_import);
|
960 |
+
|
961 |
+
// Append close button to action
|
962 |
action.append(closeButton);
|
963 |
|
964 |
// Append title to section
|
979 |
this.progress = function (params) {
|
980 |
if (this.view === 'progress') {
|
981 |
|
982 |
+
// Update progress bar meter
|
983 |
this.progress.progressBarMeter.width(params.percent + '%');
|
984 |
|
985 |
+
// Update progress bar percent
|
986 |
this.progress.progressBarPercent.text(params.percent + '%');
|
987 |
} else {
|
988 |
|
1001 |
// Create action section
|
1002 |
var action = $('<div></div>');
|
1003 |
|
1004 |
+
// Create progress bar
|
1005 |
var progressBar = $('<span class="ai1wm-progress-bar"></span>');
|
1006 |
|
1007 |
+
// Create progress bar meter
|
1008 |
this.progress.progressBarMeter = $('<span class="ai1wm-progress-bar-meter"></span>').width(params.percent + '%');
|
1009 |
|
1010 |
+
// Create progress bar percent
|
1011 |
+
this.progress.progressBarPercent = $('<span class="ai1wm-progress-bar-percent"></span>').text(params.percent + '%');
|
1012 |
|
1013 |
// Create stop import
|
1014 |
+
var stopButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
1015 |
$(this).attr('disabled', 'disabled');
|
1016 |
self.onStop();
|
1017 |
});
|
1018 |
|
1019 |
+
// Append text to stop button
|
1020 |
+
stopButton.append('<i class="ai1wm-icon-notification"></i> ' + ai1wm_locale.stop_import);
|
1021 |
+
|
1022 |
// Append progress meter and progress percent
|
1023 |
progressBar.append(this.progress.progressBarMeter).append(this.progress.progressBarPercent);
|
1024 |
|
1025 |
+
// Append stop button to action
|
1026 |
action.append(stopButton);
|
1027 |
|
1028 |
// Append progress bar to section
|
1061 |
// Create warning
|
1062 |
var warning = $('<i class="ai1wm-icon-notification"></i>');
|
1063 |
|
1064 |
+
// Create close button
|
1065 |
+
var closeButton = $('<button type="button" class="ai1wm-button-gray"></button>').on('click', function () {
|
1066 |
$(this).attr('disabled', 'disabled');
|
1067 |
self.onStop();
|
1068 |
});
|
1069 |
|
1070 |
// Create confirm button
|
1071 |
+
var confirmButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
1072 |
$(this).attr('disabled', 'disabled');
|
1073 |
self.onConfirm();
|
1074 |
});
|
1075 |
|
1076 |
+
// Append text to close button
|
1077 |
+
closeButton.append(ai1wm_locale.close_import);
|
1078 |
+
|
1079 |
+
// Append text to confirm button
|
1080 |
+
confirmButton.append(ai1wm_locale.confirm_import + ' >');
|
1081 |
+
|
1082 |
+
// Append close button to action
|
1083 |
+
action.append(closeButton);
|
1084 |
|
1085 |
+
// Append confirm button to action
|
1086 |
action.append(confirmButton);
|
1087 |
|
1088 |
// Append warning to section
|
1121 |
var title = $('<span></span>').addClass('ai1wm-title-grey').text(params.title);
|
1122 |
|
1123 |
// Create continue button
|
1124 |
+
var continueButton = $('<button type="button" class="ai1wm-button-green"></button>').on('click', function () {
|
1125 |
$(this).attr('disabled', 'disabled');
|
1126 |
self.onBlogs($(this).closest('form').serializeArray());
|
1127 |
});
|
1128 |
|
1129 |
+
// Append text to continue button
|
1130 |
+
continueButton.append(ai1wm_locale.continue_import);
|
1131 |
+
|
1132 |
+
// Append continue button to action
|
1133 |
action.append(continueButton);
|
1134 |
|
1135 |
// Append title to section
|
1167 |
// Create loader
|
1168 |
var loader = $('<span class="ai1wm-loader"></span>');
|
1169 |
|
1170 |
+
// Create warning
|
1171 |
+
var warning = $('<p></p>').html(ai1wm_locale.please_do_not_close_this_browser);
|
1172 |
+
|
1173 |
// Create notice to be displayed during import process
|
1174 |
+
var notice = $('<div class="ai1wm-import-modal-notice"></div>');
|
1175 |
|
1176 |
+
// Append warning to notice
|
1177 |
+
notice.append(warning);
|
1178 |
+
|
1179 |
+
// Append stop button to action
|
1180 |
+
action.append(notice);
|
1181 |
|
1182 |
// Append loader to header
|
1183 |
header.append(loader);
|
1215 |
var title = $('<span></span>').addClass('ai1wm-title-green').text(params.title);
|
1216 |
|
1217 |
// Create close button
|
1218 |
+
var closeButton = $('<button type="button" class="ai1wm-button-red"></button>').on('click', function () {
|
1219 |
self.destroy();
|
1220 |
});
|
1221 |
|
1222 |
+
// Append text to close button
|
1223 |
+
closeButton.append(ai1wm_locale.close_import);
|
1224 |
+
|
1225 |
+
// Append close button to action
|
1226 |
action.append(closeButton);
|
1227 |
|
1228 |
// Append title to section
|
1936 |
}).catch(function (error) {
|
1937 |
var timeout = retries * 1000;
|
1938 |
if (retries >= 30) {
|
1939 |
+
return _this2.onError(new Error(ai1wm_locale.problem_while_uploading_your_file));
|
1940 |
}
|
1941 |
|
1942 |
retries++;
|
1962 |
var size = parseInt(ai1wm_uploader.filters.ai1wm_archive_size, 10);
|
1963 |
|
1964 |
if (file.size > size && size !== 0) {
|
1965 |
+
throw new Error(ai1wm_locale.invalid_archive_size);
|
1966 |
}
|
1967 |
};
|
1968 |
|
1974 |
});
|
1975 |
|
1976 |
if (!matchExtension) {
|
1977 |
+
throw new Error(ai1wm_locale.invalid_archive_extension);
|
1978 |
}
|
1979 |
};
|
1980 |
|
1984 |
|
1985 |
// Initializing beforeunload event
|
1986 |
$(window).bind('beforeunload', function () {
|
1987 |
+
return ai1wm_locale.stop_importing_your_website;
|
1988 |
});
|
1989 |
};
|
1990 |
|
2024 |
};
|
2025 |
|
2026 |
FileUploader.prototype.onError = function (error) {
|
2027 |
+
this.model.setStatus({ type: 'error', title: ai1wm_locale.unable_to_import, message: error.message });
|
2028 |
};
|
2029 |
|
2030 |
module.exports = FileUploader;
|
lib/view/assets/javascript/report.min.js
CHANGED
@@ -172,13 +172,13 @@ jQuery(document).ready(function ($) {
|
|
172 |
|
173 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
174 |
$.each(data.errors, function (key, value) {
|
175 |
-
errorMessage.append('<p
|
176 |
});
|
177 |
|
178 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
179 |
} else {
|
180 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
181 |
-
successMessage.append('<p
|
182 |
|
183 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
184 |
|
172 |
|
173 |
var errorMessage = $('<div />').addClass('ai1wm-message ai1wm-error-message');
|
174 |
$.each(data.errors, function (key, value) {
|
175 |
+
errorMessage.append($('<p />').text(value));
|
176 |
});
|
177 |
|
178 |
$('.ai1wm-report-problem-dialog').prepend(errorMessage);
|
179 |
} else {
|
180 |
var successMessage = $('<div />').addClass('ai1wm-message ai1wm-success-message');
|
181 |
+
successMessage.append($('<p />').text(ai1wm_locale.thanks_for_submitting_your_request));
|
182 |
|
183 |
$('.ai1wm-report-problem-dialog').html(successMessage);
|
184 |
|
lib/view/assets/javascript/updater.min.js
CHANGED
@@ -134,13 +134,13 @@ jQuery(document).ready(function ($) {
|
|
134 |
window.location.hash = '';
|
135 |
|
136 |
// Update plugin row
|
137 |
-
$('#ai1wm-update-section-' + index).html($('<a />').attr('href', updateLink).text(
|
138 |
|
139 |
self.attr('disabled', false);
|
140 |
});
|
141 |
}).fail(function () {
|
142 |
self.attr('disabled', false);
|
143 |
-
error.html(
|
144 |
});
|
145 |
|
146 |
e.preventDefault();
|
134 |
window.location.hash = '';
|
135 |
|
136 |
// Update plugin row
|
137 |
+
$('#ai1wm-update-section-' + index).html($('<a />').attr('href', updateLink).text(ai1wm_locale.check_for_updates));
|
138 |
|
139 |
self.attr('disabled', false);
|
140 |
});
|
141 |
}).fail(function () {
|
142 |
self.attr('disabled', false);
|
143 |
+
error.html(ai1wm_locale.invalid_purchase_id);
|
144 |
});
|
145 |
|
146 |
e.preventDefault();
|
lib/view/backups/index.php
CHANGED
@@ -61,7 +61,7 @@
|
|
61 |
<?php echo esc_html( basename( $backup['filename'] ) ); ?>
|
62 |
</td>
|
63 |
<td class="ai1wm-column-date">
|
64 |
-
<?php echo human_time_diff( $backup['mtime'] )
|
65 |
</td>
|
66 |
<td class="ai1wm-column-size">
|
67 |
<?php if ( is_null( $backup['size'] ) ) : ?>
|
61 |
<?php echo esc_html( basename( $backup['filename'] ) ); ?>
|
62 |
</td>
|
63 |
<td class="ai1wm-column-date">
|
64 |
+
<?php echo esc_html( sprintf( __( '%s ago', AI1WM_PLUGIN_NAME ), human_time_diff( $backup['mtime'] ) ) ); ?>
|
65 |
</td>
|
66 |
<td class="ai1wm-column-size">
|
67 |
<?php if ( is_null( $backup['size'] ) ) : ?>
|
lib/{model/import/class-ai1wm-import-resolve.php → view/main/wordpress-htaccess-notice.php}
RENAMED
@@ -22,20 +22,20 @@
|
|
22 |
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
*/
|
|
|
25 |
|
26 |
-
class
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
}
|
22 |
* ███████║███████╗██║ ██║ ╚████╔╝ ██║ ╚═╝ ██║██║ ██║███████║██║ ██╗
|
23 |
* ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
|
24 |
*/
|
25 |
+
?>
|
26 |
|
27 |
+
<div class="error">
|
28 |
+
<p>
|
29 |
+
<?php
|
30 |
+
printf(
|
31 |
+
__(
|
32 |
+
'All in One WP Migration is not able to create <strong>%s</strong> file. ' .
|
33 |
+
'Try to change permissions of the parent folder or send us an email at ' .
|
34 |
+
'<a href="mailto:support@servmask.com">support@servmask.com</a> for assistance.',
|
35 |
+
AI1WM_PLUGIN_NAME
|
36 |
+
),
|
37 |
+
AI1WM_WORDPRESS_HTACCESS
|
38 |
+
)
|
39 |
+
?>
|
40 |
+
</p>
|
41 |
+
</div>
|
|
loader.php
CHANGED
@@ -101,13 +101,21 @@ require_once AI1WM_VENDOR_PATH .
|
|
101 |
DIRECTORY_SEPARATOR .
|
102 |
'class-ai1wm-recursive-directory-iterator.php';
|
103 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
require_once AI1WM_VENDOR_PATH .
|
105 |
DIRECTORY_SEPARATOR .
|
106 |
'servmask' .
|
107 |
DIRECTORY_SEPARATOR .
|
108 |
'filter' .
|
109 |
DIRECTORY_SEPARATOR .
|
110 |
-
'class-ai1wm-extension-filter.php';
|
111 |
|
112 |
require_once AI1WM_VENDOR_PATH .
|
113 |
DIRECTORY_SEPARATOR .
|
@@ -203,10 +211,6 @@ require_once AI1WM_CONTROLLER_PATH .
|
|
203 |
DIRECTORY_SEPARATOR .
|
204 |
'class-ai1wm-status-controller.php';
|
205 |
|
206 |
-
require_once AI1WM_CONTROLLER_PATH .
|
207 |
-
DIRECTORY_SEPARATOR .
|
208 |
-
'class-ai1wm-resolve-controller.php';
|
209 |
-
|
210 |
require_once AI1WM_CONTROLLER_PATH .
|
211 |
DIRECTORY_SEPARATOR .
|
212 |
'class-ai1wm-backups-controller.php';
|
@@ -231,10 +235,6 @@ require_once AI1WM_EXPORT_PATH .
|
|
231 |
DIRECTORY_SEPARATOR .
|
232 |
'class-ai1wm-export-compatibility.php';
|
233 |
|
234 |
-
require_once AI1WM_EXPORT_PATH .
|
235 |
-
DIRECTORY_SEPARATOR .
|
236 |
-
'class-ai1wm-export-resolve.php';
|
237 |
-
|
238 |
require_once AI1WM_EXPORT_PATH .
|
239 |
DIRECTORY_SEPARATOR .
|
240 |
'class-ai1wm-export-archive.php';
|
@@ -279,10 +279,6 @@ require_once AI1WM_IMPORT_PATH .
|
|
279 |
DIRECTORY_SEPARATOR .
|
280 |
'class-ai1wm-import-upload.php';
|
281 |
|
282 |
-
require_once AI1WM_IMPORT_PATH .
|
283 |
-
DIRECTORY_SEPARATOR .
|
284 |
-
'class-ai1wm-import-resolve.php';
|
285 |
-
|
286 |
require_once AI1WM_IMPORT_PATH .
|
287 |
DIRECTORY_SEPARATOR .
|
288 |
'class-ai1wm-import-validate.php';
|
@@ -319,22 +315,6 @@ require_once AI1WM_IMPORT_PATH .
|
|
319 |
DIRECTORY_SEPARATOR .
|
320 |
'class-ai1wm-import-clean.php';
|
321 |
|
322 |
-
require_once AI1WM_HTTP_PATH .
|
323 |
-
DIRECTORY_SEPARATOR .
|
324 |
-
'class-ai1wm-http-abstract.php';
|
325 |
-
|
326 |
-
require_once AI1WM_HTTP_PATH .
|
327 |
-
DIRECTORY_SEPARATOR .
|
328 |
-
'class-ai1wm-http-stream.php';
|
329 |
-
|
330 |
-
require_once AI1WM_HTTP_PATH .
|
331 |
-
DIRECTORY_SEPARATOR .
|
332 |
-
'class-ai1wm-http-curl.php';
|
333 |
-
|
334 |
-
require_once AI1WM_HTTP_PATH .
|
335 |
-
DIRECTORY_SEPARATOR .
|
336 |
-
'class-ai1wm-http-factory.php';
|
337 |
-
|
338 |
require_once AI1WM_MODEL_PATH .
|
339 |
DIRECTORY_SEPARATOR .
|
340 |
'class-ai1wm-deprecated.php';
|
@@ -386,8 +366,3 @@ require_once AI1WM_MODEL_PATH .
|
|
386 |
require_once AI1WM_MODEL_PATH .
|
387 |
DIRECTORY_SEPARATOR .
|
388 |
'class-ai1wm-handler.php';
|
389 |
-
|
390 |
-
require_once AI1WM_MODEL_PATH .
|
391 |
-
DIRECTORY_SEPARATOR .
|
392 |
-
'class-ai1wm-http.php';
|
393 |
-
|
101 |
DIRECTORY_SEPARATOR .
|
102 |
'class-ai1wm-recursive-directory-iterator.php';
|
103 |
|
104 |
+
require_once AI1WM_VENDOR_PATH .
|
105 |
+
DIRECTORY_SEPARATOR .
|
106 |
+
'servmask' .
|
107 |
+
DIRECTORY_SEPARATOR .
|
108 |
+
'iterator' .
|
109 |
+
DIRECTORY_SEPARATOR .
|
110 |
+
'class-ai1wm-recursive-iterator-iterator.php';
|
111 |
+
|
112 |
require_once AI1WM_VENDOR_PATH .
|
113 |
DIRECTORY_SEPARATOR .
|
114 |
'servmask' .
|
115 |
DIRECTORY_SEPARATOR .
|
116 |
'filter' .
|
117 |
DIRECTORY_SEPARATOR .
|
118 |
+
'class-ai1wm-recursive-extension-filter.php';
|
119 |
|
120 |
require_once AI1WM_VENDOR_PATH .
|
121 |
DIRECTORY_SEPARATOR .
|
211 |
DIRECTORY_SEPARATOR .
|
212 |
'class-ai1wm-status-controller.php';
|
213 |
|
|
|
|
|
|
|
|
|
214 |
require_once AI1WM_CONTROLLER_PATH .
|
215 |
DIRECTORY_SEPARATOR .
|
216 |
'class-ai1wm-backups-controller.php';
|
235 |
DIRECTORY_SEPARATOR .
|
236 |
'class-ai1wm-export-compatibility.php';
|
237 |
|
|
|
|
|
|
|
|
|
238 |
require_once AI1WM_EXPORT_PATH .
|
239 |
DIRECTORY_SEPARATOR .
|
240 |
'class-ai1wm-export-archive.php';
|
279 |
DIRECTORY_SEPARATOR .
|
280 |
'class-ai1wm-import-upload.php';
|
281 |
|
|
|
|
|
|
|
|
|
282 |
require_once AI1WM_IMPORT_PATH .
|
283 |
DIRECTORY_SEPARATOR .
|
284 |
'class-ai1wm-import-validate.php';
|
315 |
DIRECTORY_SEPARATOR .
|
316 |
'class-ai1wm-import-clean.php';
|
317 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
require_once AI1WM_MODEL_PATH .
|
319 |
DIRECTORY_SEPARATOR .
|
320 |
'class-ai1wm-deprecated.php';
|
366 |
require_once AI1WM_MODEL_PATH .
|
367 |
DIRECTORY_SEPARATOR .
|
368 |
'class-ai1wm-handler.php';
|
|
|
|
|
|
|
|
|
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Tags: move, transfer, copy, migrate, backup, clone, restore, db migration, wordp
|
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 4.9
|
6 |
Requires PHP: 5.2.17
|
7 |
-
Stable tag: 6.
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
|
@@ -103,6 +103,17 @@ Alternatively you can download the plugin using the download button on this page
|
|
103 |
All-in-One WP Migration **asks for your consent** to collect **requester's email address** when filling plugin's contact form. [GDPR Compliant Privacy Policy](https://www.iubenda.com/privacy-policy/946881)
|
104 |
|
105 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
= 6.73 =
|
107 |
**Fixed**
|
108 |
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 4.9
|
6 |
Requires PHP: 5.2.17
|
7 |
+
Stable tag: 6.74
|
8 |
License: GPLv2 or later
|
9 |
|
10 |
Move, transfer, copy, migrate, and backup a site with 1-click. Quick, easy, and reliable.
|
103 |
All-in-One WP Migration **asks for your consent** to collect **requester's email address** when filling plugin's contact form. [GDPR Compliant Privacy Policy](https://www.iubenda.com/privacy-policy/946881)
|
104 |
|
105 |
== Changelog ==
|
106 |
+
= 6.74 =
|
107 |
+
**Added**
|
108 |
+
|
109 |
+
* Support for LiteSpeed web server
|
110 |
+
* Fully localized the export, import, and restore processes
|
111 |
+
|
112 |
+
**Fixed**
|
113 |
+
|
114 |
+
* Table prefix replacement on import in limited corner cases
|
115 |
+
* URL replacement in Bitnami
|
116 |
+
|
117 |
= 6.73 =
|
118 |
**Fixed**
|
119 |
|
uninstall.php
CHANGED
@@ -35,10 +35,8 @@ if ( defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
35 |
global $wpdb, $wp_filesystem;
|
36 |
|
37 |
// Delete any options or other data stored in the database here
|
38 |
-
delete_option(
|
39 |
-
delete_option( AI1WM_URL_ADAPTER );
|
40 |
delete_option( AI1WM_SECRET_KEY );
|
41 |
delete_option( AI1WM_AUTH_USER );
|
42 |
delete_option( AI1WM_AUTH_PASSWORD );
|
43 |
-
delete_option( AI1WM_STATUS );
|
44 |
}
|
35 |
global $wpdb, $wp_filesystem;
|
36 |
|
37 |
// Delete any options or other data stored in the database here
|
38 |
+
delete_option( AI1WM_STATUS );
|
|
|
39 |
delete_option( AI1WM_SECRET_KEY );
|
40 |
delete_option( AI1WM_AUTH_USER );
|
41 |
delete_option( AI1WM_AUTH_PASSWORD );
|
|
|
42 |
}
|