Ensure we have MS global tables defined during network install. See #11644

git-svn-id: http://svn.automattic.com/wordpress/trunk@13337 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
nacin 2010-02-23 19:58:53 +00:00
parent e35199deb6
commit 7aa43e9c8b
2 changed files with 9 additions and 3 deletions

View File

@ -16,6 +16,10 @@ require_once( './admin.php' );
if ( ! is_super_admin() ) if ( ! is_super_admin() )
wp_die( __( 'You do not have sufficient permissions to manage options for this blog.' ) ); wp_die( __( 'You do not have sufficient permissions to manage options for this blog.' ) );
// We need to create references to ms global tables to enable Network.
foreach ( $wpdb->tables( 'ms_global' ) as $table => $prefixed_table )
$wpdb->$table = $prefixed_table;
$title = __( 'Network Settings' ); $title = __( 'Network Settings' );
$parent_file = 'tools.php'; $parent_file = 'tools.php';

View File

@ -625,13 +625,12 @@ class wpdb {
* @uses wpdb::ms_global_tables * @uses wpdb::ms_global_tables
* @uses is_multisite() * @uses is_multisite()
* *
* @param string $scope Can be all, global, blog, or old tables. Default all. * @param string $scope Can be all, global, ms_global, blog, or old tables. Default all.
* All returns the blog tables for the queried blog and all global tables. * All returns the blog tables for the queried blog and all global tables.
* @param bool $prefix Whether to include table prefixes. Default true. If blog * @param bool $prefix Whether to include table prefixes. Default true. If blog
* prefix is requested, then the custom users and usermeta tables will be mapped. * prefix is requested, then the custom users and usermeta tables will be mapped.
* @param int $blog_id The blog_id to prefix. Defaults to main blog. Used only when prefix is requested. * @param int $blog_id The blog_id to prefix. Defaults to main blog. Used only when prefix is requested.
* @return array Table names. When a prefix is requested, the key is the * @return array Table names. When a prefix is requested, the key is the unprefixed table name.
* unprefixed table name.
*/ */
function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) { function tables( $scope = 'all', $prefix = true, $blog_id = 0 ) {
switch ( $scope ) { switch ( $scope ) {
@ -641,6 +640,9 @@ class wpdb {
case 'blog' : case 'blog' :
$tables = $this->tables; $tables = $this->tables;
break; break;
case 'ms_global' :
$tables = $this->ms_global_tables;
break;
case 'global' : case 'global' :
$tables = $this->global_tables; $tables = $this->global_tables;
if ( is_multisite() ) if ( is_multisite() )