X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/41578db67d72562346e4dbb2a14889b23d522813..e3ff8f35458a959c1879c0a4976701ed8dcfe651:/wp-admin/import.php diff --git a/wp-admin/import.php b/wp-admin/import.php index e6f05e0e..1aa682ae 100644 --- a/wp-admin/import.php +++ b/wp-admin/import.php @@ -11,8 +11,9 @@ define('WP_LOAD_IMPORTERS', true); /** Load WordPress Bootstrap */ require_once( dirname( __FILE__ ) . '/admin.php' ); -if ( !current_user_can('import') ) - wp_die(__('You do not have sufficient permissions to import content in this site.')); +if ( ! current_user_can( 'import' ) ) { + wp_die( __( 'Sorry, you are not allowed to import content.' ) ); +} $title = __('Import'); @@ -25,14 +26,16 @@ get_current_screen()->add_help_tab( array( get_current_screen()->set_help_sidebar( '

' . __('For more information:') . '

' . - '

' . __('Documentation on Import') . '

' . - '

' . __('Support Forums') . '

' + '

' . __('Documentation on Import') . '

' . + '

' . __('Support Forums') . '

' ); -if ( current_user_can( 'install_plugins' ) ) +if ( current_user_can( 'install_plugins' ) ) { + // List of popular importer plugins from the WordPress.org API. $popular_importers = wp_get_popular_importers(); -else - $popular_importers = array(); +} else { + $popular_importers = array(); +} // Detect and redirect invalid importers like 'movabletype', which is registered as 'mt' if ( ! empty( $_GET['invalid'] ) && isset( $popular_importers[ $_GET['invalid'] ] ) ) { @@ -46,20 +49,26 @@ if ( ! empty( $_GET['invalid'] ) && isset( $popular_importers[ $_GET['invalid'] add_thickbox(); wp_enqueue_script( 'plugin-install' ); +wp_enqueue_script( 'updates' ); require_once( ABSPATH . 'wp-admin/admin-header.php' ); $parent_file = 'tools.php'; ?>
-

+

-

%s importer is invalid or is not installed.'), esc_html( $_GET['invalid'] ) ); ?>

+
+

' . esc_html( $_GET['invalid'] ) . '' ); + ?>

+

$pop_data ) { continue; if ( isset( $importers[ $pop_data['importer-id'] ] ) ) continue; + + // Fill the array of registered (already installed) importers with data of the popular importers from the WordPress.org API. $importers[ $pop_data['importer-id'] ] = array( $pop_data['name'], $pop_data['description'], 'install' => $pop_data['plugin-slug'] ); } @@ -76,47 +87,108 @@ if ( empty( $importers ) ) { } else { uasort( $importers, '_usort_by_first_member' ); ?> - +
+ + $data ) { + $plugin_slug = $action = ''; + $is_plugin_installed = false; - $data) { - $action = ''; if ( isset( $data['install'] ) ) { $plugin_slug = $data['install']; + if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_slug ) ) { - // Looks like Importer is installed, But not active + // Looks like an importer is installed, but not active. $plugins = get_plugins( '/' . $plugin_slug ); - if ( !empty($plugins) ) { - $keys = array_keys($plugins); + if ( ! empty( $plugins ) ) { + $keys = array_keys( $plugins ); $plugin_file = $plugin_slug . '/' . $keys[0]; - $action = '' . $data[0] . ''; + $url = wp_nonce_url( add_query_arg( array( + 'action' => 'activate', + 'plugin' => $plugin_file, + 'from' => 'import', + ), admin_url( 'plugins.php' ) ), 'activate-plugin_' . $plugin_file ); + $action = sprintf( + '%s', + esc_url( $url ), + /* translators: %s: Importer name */ + esc_attr( sprintf( __( 'Run %s' ), $data[0] ) ), + __( 'Run Importer' ) + ); + + $is_plugin_installed = true; } } - if ( empty($action) ) { + + if ( empty( $action ) ) { if ( is_main_site() ) { - $action = '' . $data[0] . ''; + $url = wp_nonce_url( add_query_arg( array( + 'action' => 'install-plugin', + 'plugin' => $plugin_slug, + 'from' => 'import', + ), self_admin_url( 'update.php' ) ), 'install-plugin_' . $plugin_slug ); + $action = sprintf( + '%5$s', + esc_url( $url ), + esc_attr( $plugin_slug ), + esc_attr( $data[0] ), + /* translators: %s: Importer name */ + esc_attr( sprintf( __( 'Install %s' ), $data[0] ) ), + __( 'Install Now' ) + ); } else { - $action = $data[0]; - $data[1] = sprintf( __( 'This importer is not installed. Please install importers from the main site.' ), get_admin_url( $current_site->blog_id, 'import.php' ) ); + $action = sprintf( + /* translators: URL to wp-admin/import.php */ + __( 'This importer is not installed. Please install importers from the main site.' ), + get_admin_url( get_current_network_id(), 'import.php' ) + ); } } } else { - $action = "{$data[0]}"; + $url = add_query_arg( array( + 'import' => $importer_id, + ), self_admin_url( 'admin.php' ) ); + $action = sprintf( + '%3$s', + esc_url( $url ), + /* translators: %s: Importer name */ + esc_attr( sprintf( __( 'Run %s' ), $data[0] ) ), + __( 'Run Importer' ) + ); + + $is_plugin_installed = true; + } + + if ( ! $is_plugin_installed && is_main_site() ) { + $url = add_query_arg( array( + 'tab' => 'plugin-information', + 'plugin' => $plugin_slug, + 'from' => 'import', + 'TB_iframe' => 'true', + 'width' => 600, + 'height' => 550, + ), network_admin_url( 'plugin-install.php' ) ); + $action .= sprintf( + ' | %3$s', + esc_url( $url ), + /* translators: %s: Importer name */ + esc_attr( sprintf( __( 'More information about %s' ), $data[0] ) ), + __( 'Details' ) + ); } - $alt = $alt ? '' : ' class="alternate"'; echo " - - - + + + "; } -?> - + ?>
$action{$data[1]}
+ {$data[0]} + {$action} + + {$data[1]} +