X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/3f5685912e89eb3b0534acd85aa0946b1ca2bbe3..58f607a1de715c9bca69340a4d6fb9e1b9c2bed2:/wp-admin/admin.php diff --git a/wp-admin/admin.php b/wp-admin/admin.php index 4d321576..998ff1ff 100644 --- a/wp-admin/admin.php +++ b/wp-admin/admin.php @@ -14,10 +14,10 @@ if ( !defined('WP_ADMIN') ) define('WP_ADMIN', TRUE); -if ( defined('ABSPATH') ) - require_once(ABSPATH . 'wp-load.php'); -else - require_once('../wp-load.php'); +if ( isset($_GET['import']) && !defined('WP_LOAD_IMPORTERS') ) + define('WP_LOAD_IMPORTERS', true); + +require_once(dirname(dirname(__FILE__)) . '/wp-load.php'); if ( get_option('db_upgraded') ) { $wp_rewrite->flush_rules(); @@ -30,8 +30,25 @@ if ( get_option('db_upgraded') ) { */ do_action('after_db_upgrade'); } elseif ( get_option('db_version') != $wp_db_version ) { - wp_redirect(admin_url('upgrade.php?_wp_http_referer=' . urlencode(stripslashes($_SERVER['REQUEST_URI'])))); - exit; + if ( !is_multisite() ) { + wp_redirect(admin_url('upgrade.php?_wp_http_referer=' . urlencode(stripslashes($_SERVER['REQUEST_URI'])))); + exit; + } elseif ( apply_filters( 'do_mu_upgrade', true ) ) { + /** + * On really small MU installs run the upgrader every time, + * else run it less often to reduce load. + * + * @since 2.8.4b + */ + $c = get_blog_count(); + if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) { + require_once( ABSPATH . WPINC . '/http.php' ); + $response = wp_remote_get( admin_url( 'upgrade.php?step=1' ), array( 'timeout' => 120, 'httpversion' => '1.1' ) ); + do_action( 'after_mu_upgrade', $response ); + unset($response); + } + unset($c); + } } require_once(ABSPATH . 'wp-admin/includes/admin.php'); @@ -48,32 +65,44 @@ if ( !wp_next_scheduled('wp_scheduled_delete') && !defined('WP_INSTALLING') ) set_screen_options(); -$posts_per_page = get_option('posts_per_page'); $date_format = get_option('date_format'); $time_format = get_option('time_format'); wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'text', 'trackback', 'pingback')); -wp_admin_css_color('classic', __('Blue'), admin_url("css/colors-classic.css"), array('#073447', '#21759B', '#EAF3FA', '#BBD8E7')); -wp_admin_css_color('fresh', __('Gray'), admin_url("css/colors-fresh.css"), array('#464646', '#6D6D6D', '#F1F1F1', '#DFDFDF')); - wp_enqueue_script( 'common' ); wp_enqueue_script( 'jquery-color' ); $editing = false; -if (isset($_GET['page'])) { +if ( isset($_GET['page']) ) { $plugin_page = stripslashes($_GET['page']); $plugin_page = plugin_basename($plugin_page); } +if ( isset($_GET['post_type']) ) + $typenow = sanitize_key($_GET['post_type']); +else + $typenow = ''; + +if ( isset($_GET['taxonomy']) ) + $taxnow = sanitize_key($_GET['taxonomy']); +else + $taxnow = ''; + require(ABSPATH . 'wp-admin/menu.php'); +if ( current_user_can( 'manage_options' ) ) + @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', '256M' ) ); + do_action('admin_init'); -// Handle plugin admin pages. -if (isset($plugin_page)) { - if( ! $page_hook = get_plugin_page_hook($plugin_page, $pagenow) ) { +if ( isset($plugin_page) ) { + if ( !empty($typenow) ) + $the_parent = $pagenow . '?post_type=' . $typenow; + else + $the_parent = $pagenow; + if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) { $page_hook = get_plugin_page_hook($plugin_page, $plugin_page); // backwards compatibility for plugins using add_management_page if ( empty( $page_hook ) && 'edit.php' == $pagenow && '' != get_plugin_page_hook($plugin_page, 'tools.php') ) { @@ -86,7 +115,21 @@ if (isset($plugin_page)) { exit; } } + unset($the_parent); +} + +$hook_suffix = ''; +if ( isset($page_hook) ) + $hook_suffix = $page_hook; +else if ( isset($plugin_page) ) + $hook_suffix = $plugin_page; +else if ( isset($pagenow) ) + $hook_suffix = $pagenow; + +set_current_screen(); +// Handle plugin admin pages. +if ( isset($plugin_page) ) { if ( $page_hook ) { do_action('load-' . $page_hook); if (! isset($_GET['noheader'])) @@ -94,19 +137,22 @@ if (isset($plugin_page)) { do_action($page_hook); } else { - if ( validate_file($plugin_page) ) { + if ( validate_file($plugin_page) ) wp_die(__('Invalid plugin page')); - } - if (! ( file_exists(WP_PLUGIN_DIR . "/$plugin_page") && is_file(WP_PLUGIN_DIR . "/$plugin_page") ) ) + + if ( !( file_exists(WP_PLUGIN_DIR . "/$plugin_page") && is_file(WP_PLUGIN_DIR . "/$plugin_page") ) && !( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") && is_file(WPMU_PLUGIN_DIR . "/$plugin_page") ) ) wp_die(sprintf(__('Cannot load %s.'), htmlentities($plugin_page))); do_action('load-' . $plugin_page); - if (! isset($_GET['noheader'])) + if ( !isset($_GET['noheader'])) require_once(ABSPATH . 'wp-admin/admin-header.php'); - include(WP_PLUGIN_DIR . "/$plugin_page"); + if ( file_exists(WPMU_PLUGIN_DIR . "/$plugin_page") ) + include(WPMU_PLUGIN_DIR . "/$plugin_page"); + else + include(WP_PLUGIN_DIR . "/$plugin_page"); } include(ABSPATH . 'wp-admin/admin-footer.php'); @@ -119,17 +165,13 @@ if (isset($plugin_page)) { if ( ! current_user_can('import') ) wp_die(__('You are not allowed to import.')); - if ( validate_file($importer) ) { - wp_die(__('Invalid importer.')); - } + if ( validate_file($importer) ) + wp_redirect( admin_url( 'import.php?invalid=' . $importer ) ); // Allow plugins to define importers as well - if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2])) - { + if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2])) { if (! file_exists(ABSPATH . "wp-admin/import/$importer.php")) - { - wp_die(__('Cannot load importer.')); - } + wp_redirect( admin_url( 'import.php?invalid=' . $importer ) ); include(ABSPATH . "wp-admin/import/$importer.php"); } @@ -144,6 +186,9 @@ if (isset($plugin_page)) { define('WP_IMPORTING', true); + if ( is_multisite() ) + kses_init_filters(); // Always filter imported data with kses. + call_user_func($wp_importers[$importer][2]); include(ABSPATH . 'wp-admin/admin-footer.php'); @@ -155,6 +200,16 @@ if (isset($plugin_page)) { exit(); } else { do_action("load-$pagenow"); + // Backwards compatibility with old load-page-new.php, load-page.php, + // and load-categories.php actions. + if ( $typenow == 'page' ) { + if ( $pagenow == 'post-new.php' ) + do_action( 'load-page-new.php' ); + elseif ( $pagenow == 'post.php' ) + do_action( 'load-page.php' ); + } elseif ( $taxnow == 'category' && $pagenow == 'edit-tags.php' ) { + do_action( 'load-categories.php' ); + } } if ( !empty($_REQUEST['action']) )