~canonical-sysadmins/wordpress/4.8.1

« back to all changes in this revision

Viewing changes to wp-admin/import.php

  • Committer: Barry Price
  • Date: 2016-08-17 04:50:12 UTC
  • mfrom: (1.1.18 upstream)
  • Revision ID: barry.price@canonical.com-20160817045012-qfui81zhqnqv2ba9
Merge WP4.6 from upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
/** Load WordPress Bootstrap */
12
12
require_once( dirname( __FILE__ ) . '/admin.php' );
13
13
 
14
 
if ( !current_user_can('import') )
15
 
        wp_die(__('You do not have sufficient permissions to import content in this site.'));
 
14
if ( ! current_user_can( 'import' ) ) {
 
15
        wp_die( __( 'Sorry, you are not allowed to import content.' ) );
 
16
}
16
17
 
17
18
$title = __('Import');
18
19
 
29
30
        '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
30
31
);
31
32
 
32
 
if ( current_user_can( 'install_plugins' ) )
 
33
if ( current_user_can( 'install_plugins' ) ) {
 
34
        // List of popular importer plugins from the WordPress.org API.
33
35
        $popular_importers = wp_get_popular_importers();
34
 
else
35
 
        $popular_importers = array();
 
36
} else {
 
37
        $popular_importers = array();
 
38
}
36
39
 
37
40
// Detect and redirect invalid importers like 'movabletype', which is registered as 'mt'
38
41
if ( ! empty( $_GET['invalid'] ) && isset( $popular_importers[ $_GET['invalid'] ] ) ) {
46
49
 
47
50
add_thickbox();
48
51
wp_enqueue_script( 'plugin-install' );
 
52
wp_enqueue_script( 'updates' );
49
53
 
50
54
require_once( ABSPATH . 'wp-admin/admin-header.php' );
51
55
$parent_file = 'tools.php';
64
68
<p><?php _e('If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:'); ?></p>
65
69
 
66
70
<?php
67
 
 
 
71
// Registered (already installed) importers. They're stored in the global $wp_importers.
68
72
$importers = get_importers();
69
73
 
70
74
// If a popular importer is not registered, create a dummy registration that links to the plugin installer.
73
77
                continue;
74
78
        if ( isset( $importers[ $pop_data['importer-id'] ] ) )
75
79
                continue;
 
80
 
 
81
        // Fill the array of registered (already installed) importers with data of the popular importers from the WordPress.org API.
76
82
        $importers[ $pop_data['importer-id'] ] = array( $pop_data['name'], $pop_data['description'], 'install' => $pop_data['plugin-slug'] );
77
83
}
78
84
 
83
89
?>
84
90
<table class="widefat importers striped">
85
91
 
86
 
<?php
87
 
        foreach ($importers as $importer_id => $data) {
88
 
                $action = '';
 
92
        <?php
 
93
        foreach ( $importers as $importer_id => $data ) {
 
94
                $plugin_slug = $action = '';
 
95
                $is_plugin_installed = false;
 
96
 
89
97
                if ( isset( $data['install'] ) ) {
90
98
                        $plugin_slug = $data['install'];
 
99
 
91
100
                        if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_slug ) ) {
92
 
                                // Looks like Importer is installed, But not active
 
101
                                // Looks like an importer is installed, but not active.
93
102
                                $plugins = get_plugins( '/' . $plugin_slug );
94
 
                                if ( !empty($plugins) ) {
95
 
                                        $keys = array_keys($plugins);
 
103
                                if ( ! empty( $plugins ) ) {
 
104
                                        $keys = array_keys( $plugins );
96
105
                                        $plugin_file = $plugin_slug . '/' . $keys[0];
97
 
                                        $action = '<a href="' . esc_url(wp_nonce_url(admin_url('plugins.php?action=activate&plugin=' . $plugin_file . '&from=import'), 'activate-plugin_' . $plugin_file)) .
98
 
                                                                                        '"title="' . esc_attr__('Activate importer') . '"">' . $data[0] . '</a>';
 
106
                                        $url = wp_nonce_url( add_query_arg( array(
 
107
                                                'action' => 'activate',
 
108
                                                'plugin' => $plugin_file,
 
109
                                                'from'   => 'import',
 
110
                                        ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $plugin_file );
 
111
                                        $action = sprintf(
 
112
                                                '<a href="%s" aria-label="%s">%s</a>',
 
113
                                                esc_url( $url ),
 
114
                                                /* translators: %s: Importer name */
 
115
                                                esc_attr( sprintf( __( 'Run %s' ), $data[0] ) ),
 
116
                                                __( 'Run Importer' )
 
117
                                        );
 
118
 
 
119
                                        $is_plugin_installed = true;
99
120
                                }
100
121
                        }
101
 
                        if ( empty($action) ) {
 
122
 
 
123
                        if ( empty( $action ) ) {
102
124
                                if ( is_main_site() ) {
103
 
                                        $action = '<a href="' . esc_url( network_admin_url( 'plugin-install.php?tab=plugin-information&plugin=' . $plugin_slug .
104
 
                                                                                '&from=import&TB_iframe=true&width=600&height=550' ) ) . '" class="thickbox open-plugin-details-modal" title="' .
105
 
                                                                                esc_attr__('Install importer') . '">' . $data[0] . '</a>';
 
125
                                        $url = wp_nonce_url( add_query_arg( array(
 
126
                                                'action' => 'install-plugin',
 
127
                                                'plugin' => $plugin_slug,
 
128
                                                'from'   => 'import',
 
129
                                        ), self_admin_url( 'update.php' ) ), 'install-plugin_' . $plugin_slug );
 
130
                                        $action = sprintf(
 
131
                                                '<a href="%1$s" class="install-now" data-slug="%2$s" data-name="%3$s" aria-label="%4$s">%5$s</a>',
 
132
                                                esc_url( $url ),
 
133
                                                esc_attr( $plugin_slug ),
 
134
                                                esc_attr( $data[0] ),
 
135
                                                /* translators: %s: Importer name */
 
136
                                                esc_attr( sprintf( __( 'Install %s' ), $data[0] ) ),
 
137
                                                __( 'Install Now' )
 
138
                                        );
106
139
                                } else {
107
 
                                        $action = $data[0];
108
 
                                        $data[1] = sprintf( __( 'This importer is not installed. Please install importers from <a href="%s">the main site</a>.' ), get_admin_url( $current_site->blog_id, 'import.php' ) );
 
140
                                        $action = sprintf(
 
141
                                                /* translators: URL to wp-admin/import.php */
 
142
                                                __( 'This importer is not installed. Please install importers from <a href="%s">the main site</a>.' ),
 
143
                                                get_admin_url( get_current_network_id(), 'import.php' )
 
144
                                        );
109
145
                                }
110
146
                        }
111
147
                } else {
112
 
                        $action = "<a href='" . esc_url( "admin.php?import=$importer_id" ) . "' title='" . esc_attr( wptexturize( strip_tags( $data[1] ) ) ) ."'>{$data[0]}</a>";
 
148
                        $url = add_query_arg( array(
 
149
                                'import' => $importer_id,
 
150
                        ), self_admin_url( 'admin.php' ) );
 
151
                        $action = sprintf(
 
152
                                '<a href="%1$s" aria-label="%2$s">%3$s</a>',
 
153
                                esc_url( $url ),
 
154
                                /* translators: %s: Importer name */
 
155
                                esc_attr( sprintf( __( 'Run %s' ), $data[0] ) ),
 
156
                                __( 'Run Importer' )
 
157
                        );
 
158
 
 
159
                        $is_plugin_installed = true;
 
160
                }
 
161
 
 
162
                if ( ! $is_plugin_installed && is_main_site() ) {
 
163
                        $url = add_query_arg( array(
 
164
                                'tab'       => 'plugin-information',
 
165
                                'plugin'    => $plugin_slug,
 
166
                                'from'      => 'import',
 
167
                                'TB_iframe' => 'true',
 
168
                                'width'     => 600,
 
169
                                'height'    => 550,
 
170
                        ), network_admin_url( 'plugin-install.php' ) );
 
171
                        $action .= sprintf(
 
172
                                ' | <a href="%1$s" class="thickbox open-plugin-details-modal" aria-label="%2$s">%3$s</a>',
 
173
                                esc_url( $url ),
 
174
                                /* translators: %s: Importer name */
 
175
                                esc_attr( sprintf( __( 'More information about %s' ), $data[0] ) ),
 
176
                                __( 'Details' )
 
177
                        );
113
178
                }
114
179
 
115
180
                echo "
116
 
                        <tr>
117
 
                                <td class='import-system row-title'>$action</td>
118
 
                                <td class='desc'>{$data[1]}</td>
 
181
                        <tr class='importer-item'>
 
182
                                <td class='import-system'>
 
183
                                        <span class='importer-title'>{$data[0]}</span>
 
184
                                        <span class='importer-action'>{$action}</span>
 
185
                                </td>
 
186
                                <td class='desc'>
 
187
                                        <span class='importer-desc'>{$data[1]}</span>
 
188
                                </td>
119
189
                        </tr>";
120
190
        }
121
 
?>
122
 
 
 
191
        ?>
123
192
</table>
124
193
<?php
125
194
}
131
200
</div>
132
201
 
133
202
<?php
 
203
wp_print_request_filesystem_credentials_modal();
 
204
wp_print_admin_notice_templates();
134
205
 
135
206
include( ABSPATH . 'wp-admin/admin-footer.php' );