Changeset 1279

Show
Ignore:
Timestamp:
05/09/08 12:26:31 (3 months ago)
Author:
donncha
Message:

Added set_blog_id(), props rboren
Use set_blog_id() when switching blogs

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-includes/wp-db.php

    r1218 r1279  
    4444        var $charset; 
    4545        var $collate; 
     46        var $blog_tables = array('posts', 'categories', 'post2cat', 'comments', 'links', 'link2cat', 'options', 'postmeta', 'terms', 'term_taxonomy', 'term_relationships'); 
     47 
    4648 
    4749        /** 
     
    123125                return $old_prefix; 
    124126        } 
     127 
     128        function set_blog_id($blog_id, $site_id = '') { 
     129                if ( !empty($site_id) ) 
     130                        $this->siteid = $site_id; 
     131 
     132                $old_blog_id = $this->blogid; 
     133                $this->blogid = $blog_id; 
     134 
     135                $this->prefix = $this->base_prefix . $this->blogid . '_'; 
     136 
     137                foreach ( $this->blog_tables as $table ) 
     138                        $this->$table = $this->prefix . $table; 
     139 
     140                return $old_blog_id; 
     141        } 
     142 
    125143 
    126144        /** 
  • trunk/wp-includes/wpmu-functions.php

    r1274 r1279  
    333333        $switched_stack[] = $blog_id; 
    334334 
    335         // backup 
    336         $tmpoldblogdetails['blogid']         = $wpdb->blogid; 
    337         $tmpoldblogdetails['posts']          = $wpdb->posts; 
    338         $tmpoldblogdetails['categories']     = $wpdb->categories; 
    339         $tmpoldblogdetails['post2cat']       = $wpdb->post2cat; 
    340         $tmpoldblogdetails['comments']       = $wpdb->comments; 
    341         $tmpoldblogdetails['links']          = $wpdb->links; 
    342         $tmpoldblogdetails['link2cat']       = $wpdb->link2cat; 
    343         $tmpoldblogdetails['linkcategories'] = $wpdb->linkcategories; 
    344         $tmpoldblogdetails['options']        = $wpdb->options; 
    345         $tmpoldblogdetails['postmeta']       = $wpdb->postmeta; 
    346         $tmpoldblogdetails['terms']          = $wpdb->terms; 
    347         $tmpoldblogdetails['term_taxonomy']  = $wpdb->term_taxonomy; 
    348         $tmpoldblogdetails['term_relationships'] = $wpdb->term_relationships; 
    349         $tmpoldblogdetails['prefix']         = $wpdb->prefix; 
    350         $tmpoldblogdetails['table_prefix']   = $table_prefix; 
    351         $tmpoldblogdetails['blog_id']        = $blog_id; 
    352  
    353         // fix the new prefix. 
    354         $table_prefix = $wpdb->base_prefix . $new_blog . "_"; 
    355         $wpdb->prefix                   = $table_prefix; 
    356         $wpdb->blogid           = $new_blog; 
    357         $wpdb->posts            = $table_prefix . 'posts'; 
    358         $wpdb->categories       = $table_prefix . 'categories'; 
    359         $wpdb->post2cat         = $table_prefix . 'post2cat'; 
    360         $wpdb->comments         = $table_prefix . 'comments'; 
    361         $wpdb->links            = $table_prefix . 'links'; 
    362         $wpdb->link2cat         = $table_prefix . 'link2cat'; 
    363         $wpdb->linkcategories   = $table_prefix . 'linkcategories'; 
    364         $wpdb->options          = $table_prefix . 'options'; 
    365         $wpdb->postmeta         = $table_prefix . 'postmeta'; 
    366         $wpdb->terms            = $table_prefix . 'terms'; 
    367         $wpdb->term_taxonomy    = $table_prefix . 'term_taxonomy'; 
    368         $wpdb->term_relationships = $table_prefix . 'term_relationships'; 
     335        $wpdb->set_blog_id($new_blog); 
     336        $table_prefix = $wpdb->prefix; 
    369337        $blog_id = $new_blog; 
    370338 
     
    374342                $wpdb->suppress_errors( false ); 
    375343        } 
    376         if ( is_object( $current_user ) ) { 
     344 
     345        if ( is_object( $current_user ) ) 
    377346                $current_user->_init_caps(); 
    378         } 
    379  
    380         do_action('switch_blog', $blog_id, $tmpoldblogdetails['blog_id']); 
     347 
     348        do_action('switch_blog', $blog_id, array()); 
    381349        $switched = true; 
    382350} 
     
    389357 
    390358        $blog = array_pop($switched_stack); 
    391  
    392359        if ( $blog_id == $blog ) 
    393360                return; 
    394361 
    395         // backup 
    396         $wpdb->blogid = $tmpoldblogdetails['blogid']; 
    397         $wpdb->posts = $tmpoldblogdetails['posts']; 
    398         $wpdb->categories = $tmpoldblogdetails['categories']; 
    399         $wpdb->post2cat = $tmpoldblogdetails['post2cat']; 
    400         $wpdb->comments = $tmpoldblogdetails['comments']; 
    401         $wpdb->links = $tmpoldblogdetails['links']; 
    402         $wpdb->link2cat = $tmpoldblogdetails['link2cat']; 
    403         $wpdb->linkcategories = $tmpoldblogdetails['linkcategories']; 
    404         $wpdb->options = $tmpoldblogdetails['options']; 
    405         $wpdb->postmeta = $tmpoldblogdetails['postmeta']; 
    406         $wpdb->terms = $tmpoldblogdetails['terms']; 
    407         $wpdb->term_taxonomy = $tmpoldblogdetails['term_taxonomy']; 
    408         $wpdb->term_relationships = $tmpoldblogdetails['term_relationships']; 
    409         $wpdb->prefix = $tmpoldblogdetails['prefix']; 
    410         $table_prefix = $tmpoldblogdetails['table_prefix']; 
     362        $wpdb->set_blog_id($blog); 
    411363        $prev_blog_id = $blog_id; 
    412         $blog_id = $tmpoldblogdetails['blog_id']
    413         unset( $tmpoldblogdetails )
     364        $blog_id = $blog
     365        $table_prefix = $wpdb->prefix
    414366 
    415367        if( is_object( $wp_roles ) ) { 
     
    418370                $wpdb->suppress_errors( false ); 
    419371        } 
    420         if ( is_object( $current_user ) ) { 
     372 
     373        if ( is_object( $current_user ) ) 
    421374                $current_user->_init_caps(); 
    422         } 
     375 
    423376        do_action('switch_blog', $blog_id, $prev_blog_id); 
    424377