diff --git a/wp-includes/load.php b/wp-includes/load.php index 67c7041f5c..b086ff7d69 100644 --- a/wp-includes/load.php +++ b/wp-includes/load.php @@ -1,5 +1,4 @@ @@ -92,41 +95,52 @@ text-align: center; endif; /** - * @deprecated 3.0 + * @since MU + * @deprecated 3.0.0 + * @deprecated Use $GLOBALS['current_user']->ID */ function get_current_user_id() { - _deprecated_function( __FUNCTION__, '3.0', '' ); - - global $current_user; - return $current_user->ID; + _deprecated_function( __FUNCTION__, '3.0', '$GLOBALS\'current_user\']->ID' ); + return $GLOBALS['current_user']->ID; } /** - * @deprecated 3.0 + * @since MU + * @deprecated 3.0.0 + * @deprecated Use get_user_by() + * @see get_user_by() */ function get_user_details( $username ) { _deprecated_function( __FUNCTION__, '3.0', 'get_user_by()' ); - return get_user_by('login', $username); } /** - * @deprecated 3.0 + * @since MU + * @deprecated 3.0.0 + * @deprecated Use clean_post_cache() + * @see clean_post_cache() */ function clear_global_post_cache( $post_id ) { - _deprecated_function( __FUNCTION__, '3.0', 'clean_post_cache' ); + _deprecated_function( __FUNCTION__, '3.0', 'clean_post_cache()' ); } /** - * @deprecated 3.0 + * @since MU + * @deprecated 3.0.0 + * @deprecated Use is_main_site() + * @see is_main_site() */ function is_main_blog() { - _deprecated_function( __FUNCTION__, '3.0', 'is_main_site' ); + _deprecated_function( __FUNCTION__, '3.0', 'is_main_site()' ); return is_main_site(); } /** - * @deprecated 3.0 + * @since MU + * @deprecated 3.0.0 + * @deprecated Use is_email() + * @see is_email() */ function validate_email( $email, $check_domain = true) { _deprecated_function( __FUNCTION__, '3.0', 'is_email()' ); diff --git a/wp-includes/ms-load.php b/wp-includes/ms-load.php index ec6c205779..3395e4b0f8 100644 --- a/wp-includes/ms-load.php +++ b/wp-includes/ms-load.php @@ -1,44 +1,27 @@ blogid = $current_blog->blog_id; -$wpdb->siteid = $current_blog->site_id; -$wpdb->set_prefix($table_prefix); // set up blog tables -$table_prefix = $wpdb->get_blog_prefix(); - -// Fix empty PHP_SELF -$PHP_SELF = $_SERVER['PHP_SELF']; -if ( empty($PHP_SELF) || ( empty($PHP_SELF) && !is_subdomain_install() && $current_blog->path != '/' ) ) - $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]); - -wp_cache_init(); // need to init cache again after blog_id is set -if ( function_exists('wp_cache_add_global_groups') ) { // need to add these again. Yes, it's an ugly hack - wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss')); - wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' )); + return false; } -if ( !defined( 'UPLOADBLOGSDIR' ) ) - define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' ); - -if ( !defined( 'UPLOADS' ) ) - define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" ); - -if ( !defined( 'BLOGUPLOADDIR' ) ) - define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" ); - function ms_network_settings() { global $wpdb, $current_site, $cookiehash; @@ -112,38 +95,130 @@ function ms_site_check() { return true; } -function ms_network_cookies() { - global $current_site; - /** - * It is possible to define this in wp-config.php - * @since 1.2.0 - */ - if ( !defined( 'COOKIEPATH' ) ) - define( 'COOKIEPATH', $current_site->path ); - - /** - * It is possible to define this in wp-config.php - * @since 1.5.0 - */ - if ( !defined( 'SITECOOKIEPATH' ) ) - define( 'SITECOOKIEPATH', $current_site->path ); - - /** - * It is possible to define this in wp-config.php - * @since 2.6.0 - */ - if ( !defined( 'ADMIN_COOKIE_PATH' ) ) { - if( !is_subdomain_install() ) { - define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH ); - } else { - define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' ); - } +function get_current_site_name( $current_site ) { + global $wpdb; + $current_site->site_name = wp_cache_get( $current_site->id . ':current_site_name', "site-options" ); + if ( !$current_site->site_name ) { + $current_site->site_name = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM $wpdb->sitemeta WHERE site_id = %d AND meta_key = 'site_name'", $current_site->id ) ); + if ( $current_site->site_name == null ) + $current_site->site_name = ucfirst( $current_site->domain ); + wp_cache_set( $current_site->id . ':current_site_name', $current_site->site_name, 'site-options'); } - /** - * It is possible to define this in wp-config.php - * @since 2.0.0 - */ - if ( !defined('COOKIE_DOMAIN') ) - define('COOKIE_DOMAIN', '.' . $current_site->cookie_domain); + return $current_site; } + +function wpmu_current_site() { + global $wpdb, $current_site, $domain, $path, $sites, $cookie_domain; + if ( defined( 'DOMAIN_CURRENT_SITE' ) && defined( 'PATH_CURRENT_SITE' ) ) { + $current_site->id = (defined( 'SITE_ID_CURRENT_SITE' ) ? constant('SITE_ID_CURRENT_SITE') : 1); + $current_site->domain = DOMAIN_CURRENT_SITE; + $current_site->path = $path = PATH_CURRENT_SITE; + if ( defined( 'BLOGID_CURRENT_SITE' ) ) + $current_site->blog_id = BLOGID_CURRENT_SITE; + if ( DOMAIN_CURRENT_SITE == $domain ) + $current_site->cookie_domain = $cookie_domain; + elseif ( substr( $current_site->domain, 0, 4 ) == 'www.' ) + $current_site->cookie_domain = substr( $current_site->domain, 4 ); + else + $current_site->cookie_domain = $current_site->domain; + + return $current_site; + } + + $current_site = wp_cache_get( "current_site", "site-options" ); + if ( $current_site ) + return $current_site; + + $wpdb->suppress_errors(); + $sites = $wpdb->get_results( "SELECT * FROM $wpdb->site" ); // usually only one site + if ( count( $sites ) == 1 ) { + $current_site = $sites[0]; + $path = $current_site->path; + $current_site->blog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domain='{$current_site->domain}' AND path='{$current_site->path}'" ); + $current_site = get_current_site_name( $current_site ); + if ( substr( $current_site->domain, 0, 4 ) == 'www.' ) + $current_site->cookie_domain = substr( $current_site->domain, 4 ); + wp_cache_set( "current_site", $current_site, "site-options" ); + return $current_site; + } + $path = substr( $_SERVER[ 'REQUEST_URI' ], 0, 1 + strpos( $_SERVER[ 'REQUEST_URI' ], '/', 1 ) ); + + if ( $domain == $cookie_domain ) + $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path = %s", $domain, $path ) ); + else + $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain IN ( %s, %s ) AND path = %s ORDER BY CHAR_LENGTH( domain ) DESC LIMIT 1", $domain, $cookie_domain, $path ) ); + if ( $current_site == null ) { + if ( $domain == $cookie_domain ) + $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path='/'", $domain ) ); + else + $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain IN ( %s, %s ) AND path = '/' ORDER BY CHAR_LENGTH( domain ) DESC LIMIT 1", $domain, $cookie_domain, $path ) ); + } + if ( $current_site != null ) { + $path = $current_site->path; + $current_site->cookie_domain = $cookie_domain; + return $current_site; + } elseif ( is_subdomain_install() ) { + $sitedomain = substr( $domain, 1 + strpos( $domain, '.' ) ); + $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path = %s", $sitedomain, $path) ); + if ( $current_site != null ) { + $current_site->cookie_domain = $current_site->domain; + return $current_site; + } + $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path='/'", $sitedomain) ); + if ( $current_site == null && defined( "WP_INSTALLING" ) == false ) { + if ( count( $sites ) == 1 ) { + $current_site = $sites[0]; + die( "That blog does not exist. Please try http://{$current_site->domain}{$current_site->path}" ); + } else { + die( "No WPMU site defined on this host. If you are the owner of this site, please check Debugging WPMU for further assistance." ); + } + } else { + $path = '/'; + } + } elseif ( defined( "WP_INSTALLING" ) == false ) { + if ( count( $sites ) == 1 ) { + $current_site = $sites[0]; + die( "That blog does not exist. Please try http://{$current_site->domain}{$current_site->path}" ); + } else { + die( "No WPMU site defined on this host. If you are the owner of this site, please check Debugging WPMU for further assistance." ); + } + } else { + $path = '/'; + } + return $current_site; +} + +function is_installed() { + global $wpdb, $domain, $path; + $base = stripslashes( $base ); + if ( defined( "WP_INSTALLING" ) == false ) { + $check = $wpdb->get_results( "SELECT * FROM $wpdb->site" ); + $msg = "If your blog does not display, please contact the owner of this site.

If you are the owner of this site please check that MySQL is running properly and all tables are error free.

"; + if ( $check == false ) { + $msg .= "Database Tables Missing.
Database tables are missing. This means that MySQL is either not running, WPMU was not installed properly, or someone deleted {$wpdb->site}. You really should look at your database now.
"; + } else { + $msg .= 'Could Not Find Blog!
'; + $msg .= "Searched for " . $domain . $path . " in " . DB_NAME . "::" . $wpdb->blogs . " table. Is that right?
"; + } + $msg .= "
\n

What do I do now?

"; + $msg .= "Read the bug report page. Some of the guidelines there may help you figure out what went wrong.
"; + $msg .= "If you're still stuck with this message, then check that your database contains the following tables:"; + $msg .= "If you suspect a problem please report it to the support forums but you must include the information asked for in the WPMU bug reporting guidelines!

"; + if ( is_file( 'release-info.txt' ) ) { + $msg .= 'Your bug report must include the following text: "'; + $info = file( 'release-info.txt' ); + $msg .= $info[ 4 ] . '"'; + } + + die( "

Fatal Error

" . $msg ); + } +} + ?> diff --git a/wp-includes/ms-settings.php b/wp-includes/ms-settings.php index f631d02ea4..e3be06ccd1 100644 --- a/wp-includes/ms-settings.php +++ b/wp-includes/ms-settings.php @@ -1,25 +1,24 @@ site_name = wp_cache_get( $current_site->id . ':current_site_name', "site-options" ); - if ( !$current_site->site_name ) { - $current_site->site_name = $wpdb->get_var( $wpdb->prepare( "SELECT meta_value FROM $wpdb->sitemeta WHERE site_id = %d AND meta_key = 'site_name'", $current_site->id ) ); - if ( $current_site->site_name == null ) - $current_site->site_name = ucfirst( $current_site->domain ); - wp_cache_set( $current_site->id . ':current_site_name', $current_site->site_name, 'site-options'); - } - return $current_site; -} - -function wpmu_current_site() { - global $wpdb, $current_site, $domain, $path, $sites, $cookie_domain; - if ( defined( 'DOMAIN_CURRENT_SITE' ) && defined( 'PATH_CURRENT_SITE' ) ) { - $current_site->id = (defined( 'SITE_ID_CURRENT_SITE' ) ? constant('SITE_ID_CURRENT_SITE') : 1); - $current_site->domain = DOMAIN_CURRENT_SITE; - $current_site->path = $path = PATH_CURRENT_SITE; - if ( defined( 'BLOGID_CURRENT_SITE' ) ) - $current_site->blog_id = BLOGID_CURRENT_SITE; - if ( DOMAIN_CURRENT_SITE == $domain ) - $current_site->cookie_domain = $cookie_domain; - elseif ( substr( $current_site->domain, 0, 4 ) == 'www.' ) - $current_site->cookie_domain = substr( $current_site->domain, 4 ); - else - $current_site->cookie_domain = $current_site->domain; - - return $current_site; - } - - $current_site = wp_cache_get( "current_site", "site-options" ); - if ( $current_site ) - return $current_site; - - $wpdb->suppress_errors(); - $sites = $wpdb->get_results( "SELECT * FROM $wpdb->site" ); // usually only one site - if ( count( $sites ) == 1 ) { - $current_site = $sites[0]; - $path = $current_site->path; - $current_site->blog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domain='{$current_site->domain}' AND path='{$current_site->path}'" ); - $current_site = get_current_site_name( $current_site ); - if ( substr( $current_site->domain, 0, 4 ) == 'www.' ) - $current_site->cookie_domain = substr( $current_site->domain, 4 ); - wp_cache_set( "current_site", $current_site, "site-options" ); - return $current_site; - } - $path = substr( $_SERVER[ 'REQUEST_URI' ], 0, 1 + strpos( $_SERVER[ 'REQUEST_URI' ], '/', 1 ) ); - - if ( $domain == $cookie_domain ) - $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path = %s", $domain, $path ) ); - else - $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain IN ( %s, %s ) AND path = %s ORDER BY CHAR_LENGTH( domain ) DESC LIMIT 1", $domain, $cookie_domain, $path ) ); - if ( $current_site == null ) { - if ( $domain == $cookie_domain ) - $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path='/'", $domain ) ); - else - $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain IN ( %s, %s ) AND path = '/' ORDER BY CHAR_LENGTH( domain ) DESC LIMIT 1", $domain, $cookie_domain, $path ) ); - } - if ( $current_site != null ) { - $path = $current_site->path; - $current_site->cookie_domain = $cookie_domain; - return $current_site; - } elseif ( is_subdomain_install() ) { - $sitedomain = substr( $domain, 1 + strpos( $domain, '.' ) ); - $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path = %s", $sitedomain, $path) ); - if ( $current_site != null ) { - $current_site->cookie_domain = $current_site->domain; - return $current_site; - } - $current_site = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->site WHERE domain = %s AND path='/'", $sitedomain) ); - if ( $current_site == null && defined( "WP_INSTALLING" ) == false ) { - if ( count( $sites ) == 1 ) { - $current_site = $sites[0]; - die( "That blog does not exist. Please try http://{$current_site->domain}{$current_site->path}" ); - } else { - die( "No WPMU site defined on this host. If you are the owner of this site, please check Debugging WPMU for further assistance." ); - } - } else { - $path = '/'; - } - } elseif ( defined( "WP_INSTALLING" ) == false ) { - if ( count( $sites ) == 1 ) { - $current_site = $sites[0]; - die( "That blog does not exist. Please try http://{$current_site->domain}{$current_site->path}" ); - } else { - die( "No WPMU site defined on this host. If you are the owner of this site, please check Debugging WPMU for further assistance." ); - } - } else { - $path = '/'; - } - return $current_site; -} - $current_site = wpmu_current_site(); if ( !isset( $current_site->blog_id ) ) $current_site->blog_id = $wpdb->get_var( "SELECT blog_id FROM {$wpdb->blogs} WHERE domain='{$current_site->domain}' AND path='{$current_site->path}'" ); @@ -170,7 +76,8 @@ if ( is_subdomain_install() ) { } } -if ( defined( "WP_INSTALLING" ) == false && is_subdomain_install() && !is_object( $current_blog ) ) { +if ( ! defined( 'WP_INSTALLING' ) && is_subdomain_install() && !is_object( $current_blog ) ) { + if ( defined( 'NOBLOGREDIRECT' ) ) { $destination = constant( 'NOBLOGREDIRECT' ); if ( $destination == '%siteurl%' ) @@ -184,7 +91,7 @@ if ( defined( "WP_INSTALLING" ) == false && is_subdomain_install() && !is_object } -if ( defined( "WP_INSTALLING" ) == false ) { +if ( ! defined( 'WP_INSTALLING' ) ) { if ( $current_site && $current_blog == null ) { if ( $current_site->domain != $_SERVER[ 'HTTP_HOST' ] ) { header( "Location: http://" . $current_site->domain . $current_site->path ); @@ -235,37 +142,22 @@ if ( '0' == $current_blog->public ) { // This just means the blog shouldn't show up in google, etc. Only to registered members } -function is_installed() { - global $wpdb, $domain, $path; - $base = stripslashes( $base ); - if ( defined( "WP_INSTALLING" ) == false ) { - $check = $wpdb->get_results( "SELECT * FROM $wpdb->site" ); - $msg = "If your blog does not display, please contact the owner of this site.

If you are the owner of this site please check that MySQL is running properly and all tables are error free.

"; - if ( $check == false ) { - $msg .= "Database Tables Missing.
Database tables are missing. This means that MySQL is either not running, WPMU was not installed properly, or someone deleted {$wpdb->site}. You really should look at your database now.
"; - } else { - $msg .= 'Could Not Find Blog!
'; - $msg .= "Searched for " . $domain . $path . " in " . DB_NAME . "::" . $wpdb->blogs . " table. Is that right?
"; - } - $msg .= "
\n

What do I do now?

"; - $msg .= "Read the bug report page. Some of the guidelines there may help you figure out what went wrong.
"; - $msg .= "If you're still stuck with this message, then check that your database contains the following tables:"; - $msg .= "If you suspect a problem please report it to the support forums but you must include the information asked for in the WPMU bug reporting guidelines!

"; - if ( is_file( 'release-info.txt' ) ) { - $msg .= 'Your bug report must include the following text: "'; - $info = file( 'release-info.txt' ); - $msg .= $info[ 4 ] . '"'; - } +$wpdb->blogid = $current_blog->blog_id; +$wpdb->siteid = $current_blog->site_id; +$wpdb->set_prefix($table_prefix); // set up blog tables +$table_prefix = $wpdb->get_blog_prefix(); - die( "

Fatal Error

" . $msg ); - } +// Fix empty PHP_SELF +$PHP_SELF = $_SERVER['PHP_SELF']; +if ( empty($PHP_SELF) || ( empty($PHP_SELF) && !is_subdomain_install() && $current_blog->path != '/' ) ) + $_SERVER['PHP_SELF'] = $PHP_SELF = preg_replace("/(\?.*)?$/",'',$_SERVER["REQUEST_URI"]); + +wp_cache_init(); // need to init cache again after blog_id is set +if ( function_exists('wp_cache_add_global_groups') ) { // need to add these again. Yes, it's an ugly hack + wp_cache_add_global_groups(array ('users', 'userlogins', 'usermeta', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss')); + wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' )); } +ms_default_constants( 'uploads' ); + ?> diff --git a/wp-settings.php b/wp-settings.php index e34bfea7e2..e41ce87fa1 100644 --- a/wp-settings.php +++ b/wp-settings.php @@ -75,7 +75,7 @@ wp_start_object_cache(); // Initialize multisite if enabled. if ( is_multisite() ) - require( ABSPATH . WPINC . '/ms-load.php' ); + require( ABSPATH . WPINC . '/ms-settings.php' ); // Load early WordPress files. require( ABSPATH . WPINC . '/plugin.php' ); @@ -162,7 +162,7 @@ if ( is_multisite() ) { die(); } unset($file); - ms_network_cookies(); + ms_default_constants( 'cookies' ); } // Define constants after multisite is loaded. Cookie-related constants may be overridden in ms_network_cookies().