XPressME Integration Kit

Trac

source: trunk/xpressme_integration_kit/wp-content/plugins/xpressme/include/class-xpress-upgrader.php

Last change on this file was 808, checked in by toemon, 12 years ago

FTPモードでの自動更新エラー対策 fixed #413

File size: 2.7 KB
Line 
1<?php
2include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
3
4class Xpress_Upgrader extends WP_Upgrader {
5
6        function upgrade_strings() {
7                $this->strings['up_to_date'] = __('XPressME Integration Kit is at the latest version.', 'xpressme');
8                $this->strings['no_package'] = __('Upgrade package not available.', 'xpressme');
9                $this->strings['downloading_package'] = __('Downloading update from <span class="code">%s</span>&#8230;', 'xpressme');
10                $this->strings['unpack_package'] = __('Unpacking the update&#8230;', 'xpressme');
11                $this->strings['copy_failed'] = __('Could not copy files.', 'xpressme');
12                $this->strings['make_config'] = __('Delete source wp-config.php.', 'xpressme');
13                $this->strings['delete_failed'] = __('Could not delete files.', 'xpressme');
14                $this->strings['package_wrong'] = __('The structure of the package is wrong. ', 'xpressme');
15        }
16
17        function upgrade($current) {
18                global $wp_filesystem;
19
20                $this->init();
21                $this->upgrade_strings();
22
23                if ( !empty($feedback) )
24                        add_filter('update_feedback', $feedback);
25
26                // Is an update available?
27                if ( !isset( $current->response ) || $current->response == 'latest' )
28                        return new WP_Error('up_to_date', $this->strings['up_to_date']);
29
30                $res = $this->fs_connect( array(ABSPATH, WP_CONTENT_DIR) );
31                if ( is_wp_error($res) )
32                        return $res;
33
34                $wp_dir = trailingslashit($wp_filesystem->abspath());
35
36                $download = $this->download_package( $current->package );
37                if ( is_wp_error($download) )
38                        return $download;
39
40                $working_dir = $this->unpack_package( $download );
41                if ( is_wp_error($working_dir) )
42                        return $working_dir;
43                $kit_dir = $working_dir .'/xpressme_integration_kit/';
44                if (!$wp_filesystem->exists($kit_dir)){ // search sub dir.
45                        $kit_dir = '';
46                        $subdirs = $wp_filesystem->dirlist($working_dir,false);
47                        foreach($subdirs as $subdir){
48                                if ($wp_filesystem->exists($working_dir .'/' .$subdir['name'] .'/xpressme_integration_kit/')){
49                                        $kit_dir = $working_dir .'/' .$subdir['name'] .'/xpressme_integration_kit/';
50                                        continue;
51                                }
52                        }
53                        if (empty($kit_dir)){
54                                $wp_filesystem->delete($working_dir, true);
55                                return new WP_Error('package_wrong', $this->strings['package_wrong']);
56                        }
57                }
58                // Copy update-core.php from the new version into place.
59                $update_xpress_file = 'wp-content/plugins/xpressme/include/update_xpress.php';
60                if ( !$wp_filesystem->copy($kit_dir . $update_xpress_file, $wp_dir . $update_xpress_file, true) ) {
61                        $wp_filesystem->delete($working_dir, true);
62                        return new WP_Error('copy_failed', $this->strings['copy_failed']);
63                }
64                $wp_filesystem->chmod($wp_dir . $update_xpress_file, FS_CHMOD_FILE);
65
66                require(ABSPATH . $update_xpress_file);
67                return update_xpress($kit_dir, $wp_dir);
68        }
69}
70?>
Note: See TracBrowser for help on using the repository browser.