Version Description
- Fix file permission checks
Download this release
Release Info
Developer | bangelov |
Plugin | All-in-One WP Migration |
Version | 4.0 |
Comparing to | |
See all releases |
Code changes from version 3.9 to 4.0
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:
|
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: 4.0
|
9 |
* Text Domain: all-in-one-wp-migration
|
10 |
* Domain Path: /languages
|
11 |
* Network: True
|
constants.php
CHANGED
@@ -38,7 +38,7 @@ if ( function_exists( 'gethostname' ) && in_array( gethostname(), $local ) ) {
|
|
38 |
// ==================
|
39 |
// = Plugin Version =
|
40 |
// ==================
|
41 |
-
define( 'AI1WM_VERSION', '
|
42 |
|
43 |
// ===============
|
44 |
// = Plugin Name =
|
38 |
// ==================
|
39 |
// = Plugin Version =
|
40 |
// ==================
|
41 |
+
define( 'AI1WM_VERSION', '4.0' );
|
42 |
|
43 |
// ===============
|
44 |
// = Plugin Name =
|
lib/model/class-ai1wm-export-abstract.php
CHANGED
@@ -189,8 +189,12 @@ abstract class Ai1wm_Export_Abstract {
|
|
189 |
$archive = new Ai1wm_Compressor( $this->storage()->archive() );
|
190 |
|
191 |
while ( $path = trim( fgets( $filemap ) ) ) {
|
192 |
-
|
193 |
-
|
|
|
|
|
|
|
|
|
194 |
|
195 |
$processed++;
|
196 |
|
189 |
$archive = new Ai1wm_Compressor( $this->storage()->archive() );
|
190 |
|
191 |
while ( $path = trim( fgets( $filemap ) ) ) {
|
192 |
+
try {
|
193 |
+
// Add file to archive
|
194 |
+
$archive->add_file( WP_CONTENT_DIR . DIRECTORY_SEPARATOR . $path, $path );
|
195 |
+
} catch ( Exception $e ) {
|
196 |
+
// Skip bad file permissions
|
197 |
+
}
|
198 |
|
199 |
$processed++;
|
200 |
|
lib/model/class-ai1wm-import-abstract.php
CHANGED
@@ -209,11 +209,15 @@ abstract class Ai1wm_Import_Abstract {
|
|
209 |
$archive->set_file_pointer( null, $this->pointer() );
|
210 |
|
211 |
while ( $archive->has_not_reached_eof() ) {
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
|
|
|
|
|
|
|
|
217 |
|
218 |
// Increment processed files counter
|
219 |
$processed++;
|
209 |
$archive->set_file_pointer( null, $this->pointer() );
|
210 |
|
211 |
while ( $archive->has_not_reached_eof() ) {
|
212 |
+
try {
|
213 |
+
// Extract a file from archive to wp_content_dir
|
214 |
+
$archive->extract_one_file_to( WP_CONTENT_DIR, array(
|
215 |
+
AI1WM_PACKAGE_NAME,
|
216 |
+
AI1WM_DATABASE_NAME,
|
217 |
+
) );
|
218 |
+
} catch ( Exception $e ) {
|
219 |
+
// Skip bad file permissions
|
220 |
+
}
|
221 |
|
222 |
// Increment processed files counter
|
223 |
$processed++;
|
lib/vendor/servmask/archiver/class-ai1wm-archiver.php
CHANGED
@@ -137,20 +137,7 @@ abstract class Ai1wm_Archiver {
|
|
137 |
// check if we have a handle
|
138 |
if ( false === $file_handle ) {
|
139 |
// we couldn't open the file
|
140 |
-
throw new Ai1wm_Not_Accesible_Exception(
|
141 |
-
sprintf(
|
142 |
-
__(
|
143 |
-
'Unable to open %s<br /><br />' .
|
144 |
-
'<strong>Possible solutions</strong><br />' .
|
145 |
-
'1. Ensure that you have enough disk space on your server.<br />' .
|
146 |
-
'2. Ensure that file permissions are correctly set-up - 775 or 777 to <strong>%s</strong> ' .
|
147 |
-
'directory and all files and folders that it contains.',
|
148 |
-
AI1WM_PLUGIN_NAME
|
149 |
-
),
|
150 |
-
$file,
|
151 |
-
WP_CONTENT_DIR
|
152 |
-
)
|
153 |
-
);
|
154 |
}
|
155 |
|
156 |
return $file_handle;
|
@@ -168,13 +155,7 @@ abstract class Ai1wm_Archiver {
|
|
168 |
protected function write_to_handle( $handle, $data, $file ) {
|
169 |
$result = @fwrite( $handle, $data );
|
170 |
if ( false === $result || ( ! empty( $data ) && 0 === $result ) ) {
|
171 |
-
throw new Ai1wm_Not_Writable_Exception(
|
172 |
-
__(
|
173 |
-
'Unable to write to ' . $file . '<br /><br />' .
|
174 |
-
'<strong>Ensure that you have enough disk space on your server.</strong>',
|
175 |
-
AI1WM_PLUGIN_NAME
|
176 |
-
)
|
177 |
-
);
|
178 |
}
|
179 |
}
|
180 |
|
@@ -191,7 +172,7 @@ abstract class Ai1wm_Archiver {
|
|
191 |
protected function read_from_handle( $handle, $size, $file ) {
|
192 |
$result = @fread( $handle, $size );
|
193 |
if ( false === $result ) {
|
194 |
-
throw new Ai1wm_Not_Readable_Exception( __( 'Unable to read
|
195 |
}
|
196 |
|
197 |
return $result;
|
@@ -228,7 +209,7 @@ abstract class Ai1wm_Archiver {
|
|
228 |
|
229 |
if ( false === $result ) {
|
230 |
// unable to close the file
|
231 |
-
throw new Ai1wm_Not_Accesible_Exception( __( 'Unable to close '
|
232 |
}
|
233 |
}
|
234 |
|
137 |
// check if we have a handle
|
138 |
if ( false === $file_handle ) {
|
139 |
// we couldn't open the file
|
140 |
+
throw new Ai1wm_Not_Accesible_Exception( sprintf( __( 'Unable to open %s' . AI1WM_PLUGIN_NAME ), $file ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
}
|
142 |
|
143 |
return $file_handle;
|
155 |
protected function write_to_handle( $handle, $data, $file ) {
|
156 |
$result = @fwrite( $handle, $data );
|
157 |
if ( false === $result || ( ! empty( $data ) && 0 === $result ) ) {
|
158 |
+
throw new Ai1wm_Not_Writable_Exception( sprintf( __( 'Unable to write %s', AI1WM_PLUGIN_NAME ), $file ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
}
|
160 |
}
|
161 |
|
172 |
protected function read_from_handle( $handle, $size, $file ) {
|
173 |
$result = @fread( $handle, $size );
|
174 |
if ( false === $result ) {
|
175 |
+
throw new Ai1wm_Not_Readable_Exception( sprintf( __( 'Unable to read %s', AI1WM_PLUGIN_NAME ), $file ) );
|
176 |
}
|
177 |
|
178 |
return $result;
|
209 |
|
210 |
if ( false === $result ) {
|
211 |
// unable to close the file
|
212 |
+
throw new Ai1wm_Not_Accesible_Exception( sprintf( __( 'Unable to close %s', AI1WM_PLUGIN_NAME ), $this->filename ) );
|
213 |
}
|
214 |
}
|
215 |
|
lib/vendor/servmask/archiver/class-ai1wm-extractor.php
CHANGED
@@ -116,7 +116,13 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
|
|
116 |
mkdir( $path, 0755, true );
|
117 |
}
|
118 |
|
119 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
}
|
121 |
|
122 |
/**
|
@@ -155,8 +161,13 @@ class Ai1wm_Extractor extends Ai1wm_Archiver {
|
|
155 |
|
156 |
// do we have a match?
|
157 |
if ( in_array( $filename, $files ) ) {
|
158 |
-
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
160 |
|
161 |
// let's unset the file from the files array
|
162 |
$key = array_search( $data['filename'], $files );
|
116 |
mkdir( $path, 0755, true );
|
117 |
}
|
118 |
|
119 |
+
try {
|
120 |
+
$this->extract_to( $path . DIRECTORY_SEPARATOR . $data['filename'], $data );
|
121 |
+
} catch ( Exception $e ) {
|
122 |
+
// we don't have file permissions, skip file content
|
123 |
+
$this->set_file_pointer( $this->file_handle, $data['size'], $this->filename );
|
124 |
+
return;
|
125 |
+
}
|
126 |
}
|
127 |
|
128 |
/**
|
161 |
|
162 |
// do we have a match?
|
163 |
if ( in_array( $filename, $files ) ) {
|
164 |
+
try {
|
165 |
+
// we have a match, let's extract the file and remove it from the array
|
166 |
+
$this->extract_to( $location . DIRECTORY_SEPARATOR . $data['filename'], $data );
|
167 |
+
} catch ( Exception $e ) {
|
168 |
+
// we don't have file permissions, skip file content
|
169 |
+
$this->set_file_pointer( $this->file_handle, $data['size'], $this->filename );
|
170 |
+
}
|
171 |
|
172 |
// let's unset the file from the files array
|
173 |
$key = array_search( $data['filename'], $files );
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: yani.iliev, bangelov, pimjitsawang
|
|
3 |
Tags: db migration, migration, wordpress migration, db backup, db restore, website backup, website restore, website migration, website deploy, wordpress deploy, db backup, database export, database serialization, database find replace
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 4.2
|
6 |
-
Stable tag:
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
All-in-One WP Migration is the only tool that you will ever need to migrate a WordPress site.
|
@@ -57,6 +57,9 @@ All in One WP Plugin is the first plugin to offer true mobile experience on Word
|
|
57 |
3. Plugin Menu
|
58 |
|
59 |
== Changelog ==
|
|
|
|
|
|
|
60 |
= 3.9 =
|
61 |
* Fix could not resolve domain name on export/import
|
62 |
|
3 |
Tags: db migration, migration, wordpress migration, db backup, db restore, website backup, website restore, website migration, website deploy, wordpress deploy, db backup, database export, database serialization, database find replace
|
4 |
Requires at least: 3.3
|
5 |
Tested up to: 4.2
|
6 |
+
Stable tag: 4.0
|
7 |
License: GPLv2 or later
|
8 |
|
9 |
All-in-One WP Migration is the only tool that you will ever need to migrate a WordPress site.
|
57 |
3. Plugin Menu
|
58 |
|
59 |
== Changelog ==
|
60 |
+
= 4.0 =
|
61 |
+
* Fix file permission checks
|
62 |
+
|
63 |
= 3.9 =
|
64 |
* Fix could not resolve domain name on export/import
|
65 |
|