Make WordPress Core

Changeset 12753


Ignore:
Timestamp:
01/18/2010 10:21:36 PM (17 years ago)
Author:
ryan
Message:

Use cap checks instead of multisite and super admin checks. Add some new caps. Merge cleanup. see #11644.

Location:
trunk
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/admin.php

    r12736 r12753  
    199199
    200200        define('WP_IMPORTING', true);
    201         if ( is_multisite() ) {
     201
     202        if ( is_multisite() )
    202203                kses_init_filters();  // Always filter imported data with kses.
    203         }
    204204
    205205        call_user_func($wp_importers[$importer][2]);
  • trunk/wp-admin/includes/schema.php

    r12733 r12753  
    370370        populate_roles_270();
    371371        populate_roles_280();
     372        populate_roles_300();
    372373}
    373374
    … …  
    591592}
    592593
     594/**
     595 * Create and modify WordPress roles for WordPress 2.8.
     596 *
     597 * @since 2.8.0
     598 */
     599function populate_roles_300() {
     600        $role =& get_role( 'administrator' );
     601
     602        if ( !empty( $role ) ) {
     603                $role->add_cap( 'update_core' );
     604                $role->add_cap( 'remove_user' );
     605                $role->add_cap( 'remove_users' );
     606        }
     607}
     608
    593609?>
  • trunk/wp-admin/includes/update.php

    r12752 r12753  
    8383
    8484function core_update_footer( $msg = '' ) {
    85         if ( is_multisite() && !is_super_admin() )
    86                 return false;
    87 
    88         if ( !current_user_can('manage_options') )
     85        if ( is_multisite() && !current_user_can('update_core') )
     86                return false;
     87
     88        if ( !current_user_can('update_core') )
    8989                return sprintf( __( 'Version %s' ), $GLOBALS['wp_version'] );
    9090
    … …  
    105105
    106106        case 'upgrade' :
    107                 if ( current_user_can('manage_options') ) {
    108                         return sprintf( '<strong>'.__( '<a href="%1$s">Get Version %2$s</a>' ).'</strong>', 'update-core.php', $cur->current);
    109                         break;
    110                 }
     107                return sprintf( '<strong>'.__( '<a href="%1$s">Get Version %2$s</a>' ).'</strong>', 'update-core.php', $cur->current);
     108        break;
    111109
    112110        case 'latest' :
    … …  
    119117
    120118function update_nag() {
    121         if ( is_multisite() && !is_super_admin() )
     119        if ( is_multisite() && !current_user_can('update_core') )
    122120                return false;
    123121
    … …  
    132130                return false;
    133131
    134         if ( current_user_can('manage_options') )
     132        if ( current_user_can('update_core') )
    135133                $msg = sprintf( __('WordPress %1$s is available! <a href="%2$s">Please update now</a>.'), $cur->current, 'update-core.php' );
    136134        else
    … …  
    143141// Called directly from dashboard
    144142function update_right_now_message() {
    145         if ( is_multisite() && !is_super_admin() )
     143        if ( is_multisite() && !current_user_can('update_core') )
    146144                return false;
    147145
    … …  
    149147
    150148        $msg = sprintf( __('You are using <span class="b">WordPress %s</span>.'), $GLOBALS['wp_version'] );
    151         if ( isset( $cur->response ) && $cur->response == 'upgrade' && current_user_can('manage_options') )
     149        if ( isset( $cur->response ) && $cur->response == 'upgrade' && current_user_can('update_core') )
    152150                $msg .= " <a href='update-core.php' class='button'>" . sprintf( __('Update to %s'), $cur->current ? $cur->current : __( 'Latest' ) ) . '</a>';
    153151
    … …  
    170168
    171169function wp_plugin_update_rows() {
     170        if ( !current_user_can('update_plugins' ) )
     171                return;
     172
    172173        $plugins = get_site_transient( 'update_plugins' );
    173174        if ( isset($plugins->response) && is_array($plugins->response) ) {
    … …  
    206207
    207208function wp_update_plugin($plugin, $feedback = '') {
    208         if ( is_multisite() && !is_super_admin() )
    209                 return false;
    210 
    211 
    212209        if ( !empty($feedback) )
    213210                add_filter('update_feedback', $feedback);
    … …  
    235232
    236233function wp_update_theme($theme, $feedback = '') {
    237 
    238234        if ( !empty($feedback) )
    239235                add_filter('update_feedback', $feedback);
    … …  
    246242
    247243function wp_update_core($current, $feedback = '') {
    248 
    249244        if ( !empty($feedback) )
    250245                add_filter('update_feedback', $feedback);
    … …  
    261256                return false;
    262257
    263         if ( current_user_can('manage_options') )
     258        if ( current_user_can('update_core') )
    264259                $msg = sprintf( __('An automated WordPress update has failed to complete - <a href="%s">please attempt the update again now</a>.'), 'update-core.php' );
    265260        else
  • trunk/wp-admin/includes/upgrade.php

    r12752 r12753  
    260260 */
    261261function wp_upgrade() {
    262         global $wp_current_db_version, $wp_db_version;
     262        global $wp_current_db_version, $wp_db_version, $wpdb;
    263263
    264264        $wp_current_db_version = __get_option('db_version');
    … …  
    277277        upgrade_all();
    278278        wp_cache_flush();
     279
     280        if ( is_multisite() ) {
     281                if ( $wpdb->get_row( "SELECT blog_id FROM {$wpdb->blog_versions} WHERE blog_id = '{$wpdb->blogid}'" ) ) {
     282                        $wpdb->query( "UPDATE {$wpdb->blog_versions} SET db_version = '{$wp_db_version}' WHERE blog_id = '{$wpdb->blogid}'" );
     283                } else {
     284                        $wpdb->query( "INSERT INTO {$wpdb->blog_versions} ( `blog_id` , `db_version` , `last_updated` ) VALUES ( '{$wpdb->blogid}', '{$wp_db_version}', NOW());" );
     285                }
     286        }
    279287}
    280288endif;
    … …  
    352360        if ( $wp_current_db_version < 11958 )
    353361                upgrade_290();
     362
     363        if ( $wp_current_db_version < 12751 )
     364                upgrade_300();
    354365
    355366        maybe_disable_automattic_widgets();
    … …  
    10071018}
    10081019
     1020/**
     1021 * Execute changes made in WordPress 3.0.
     1022 *
     1023 * @since 3.0
     1024 */
     1025function upgrade_300() {
     1026        populate_roles_300();
     1027}
    10091028
    10101029// The functions we use to actually do stuff
  • trunk/wp-admin/menu.php

    r12738 r12753  
    3131        $menu[1] = array( '', 'read', 'separator0', '', 'wp-menu-separator' );
    3232        $menu[2] = array(__('Site Admin'), '10', 'ms-admin.php', '', 'menu-top menu-top-first', 'menu-site', 'div');
    33         $submenu[ 'ms-admin.php' ][1] = array( __('Admin'), 'delete_users', 'ms-admin.php' );
    34         $submenu[ 'ms-admin.php' ][5] = array( __('Blogs'), 'delete_users', 'ms-sites.php' );
    35         $submenu[ 'ms-admin.php' ][10] = array( __('Users'), 'delete_users', 'ms-users.php' );
    36         $submenu[ 'ms-admin.php' ][20] = array( __('Themes'), 'delete_users', 'ms-themes.php' );
    37         $submenu[ 'ms-admin.php' ][25] = array( __('Options'), 'delete_users', 'ms-options.php' );
    38         $submenu[ 'ms-admin.php' ][30] = array( __('Upgrade'), 'delete_users', 'ms-upgrade-site.php' );
     33        $submenu[ 'ms-admin.php' ][1] = array( __('Admin'), 'super_admin', 'ms-admin.php' );
     34        $submenu[ 'ms-admin.php' ][5] = array( __('Blogs'), 'super_admin', 'ms-sites.php' );
     35        $submenu[ 'ms-admin.php' ][10] = array( __('Users'), 'super_admin', 'ms-users.php' );
     36        $submenu[ 'ms-admin.php' ][20] = array( __('Themes'), 'super_admin', 'ms-themes.php' );
     37        $submenu[ 'ms-admin.php' ][25] = array( __('Options'), 'super_admin', 'ms-options.php' );
     38        $submenu[ 'ms-admin.php' ][30] = array( __('Upgrade'), 'super_admin', 'ms-upgrade-site.php' );
    3939}
    4040
    … …  
    106106        if ( !is_multisite() )
    107107                $submenu['themes.php'][10] = array(__('Editor'), 'edit_themes', 'theme-editor.php');
    108         if ( is_super_admin() )
    109                 $submenu['themes.php'][15] = array(__('Add New Themes'), 'install_themes', 'theme-install.php');
     108        $submenu['themes.php'][15] = array(__('Add New Themes'), 'install_themes', 'theme-install.php');
    110109
    111110$update_plugins = get_site_transient( 'update_plugins' );
    … …  
    118117        $menu[65] = array( sprintf( __('Plugins %s'), "<span class='update-plugins count-$update_count'><span class='plugin-count'>" . number_format_i18n($update_count) . "</span></span>" ), 'activate_plugins', 'plugins.php', '', 'menu-top', 'menu-plugins', 'div' );
    119118                $submenu['plugins.php'][5]  = array( __('Installed'), 'activate_plugins', 'plugins.php' );
    120                 if ( is_super_admin() ) {
    121                         /* translators: add new plugin */
    122                         $submenu['plugins.php'][10] = array(_x('Add New', 'plugin'), 'install_plugins', 'plugin-install.php');
    123                 }
     119                /* translators: add new plugin */
     120                $submenu['plugins.php'][10] = array(_x('Add New', 'plugin'), 'install_plugins', 'plugin-install.php');
    124121                if ( !is_multisite() )
    125122                        $submenu['plugins.php'][15] = array( __('Editor'), 'edit_plugins', 'plugin-editor.php' );
  • trunk/wp-admin/options-general.php

    r12752 r12753  
    293293<?php do_settings_fields('general', 'default'); ?>
    294294<?php
    295 if ( is_multisite() && is_dir( ABSPATH . LANGDIR ) && $dh = opendir( ABSPATH . LANGDIR ) )
    296         while( ( $lang_file = readdir( $dh ) ) !== false )
     295
     296$lang_files = array();
     297if ( is_multisite() && is_dir( ABSPATH . LANGDIR ) && $dh = opendir( ABSPATH . LANGDIR ) ) {
     298        while ( ( $lang_file = readdir( $dh ) ) !== false ) {
    297299                if ( substr( $lang_file, -3 ) == '.mo' )
    298300                        $lang_files[] = $lang_file;
    299 $lang = get_option('WPLANG');
    300 
    301 if ( is_array($lang_files) && !empty($lang_files) ) {
    302         ?>
     301        }
     302}
     303
     304if ( !empty($lang_files) ) {
     305?>
    303306        <tr valign="top">
    304307                <th width="33%" scope="row"><?php _e('Blog language:') ?></th>
    … …  
    309312                </td>
    310313        </tr>
    311         <?php
     314<?php
    312315} // languages
    313316?>
  • trunk/wp-admin/options.php

    r12752 r12753  
    119119  <input type="hidden" name="action" value="update" />
    120120  <input type='hidden' name='option_page' value='options' />
    121 <?php if ( is_multisite() ) { ?>
    122 <p class="submit submit-top">
    123         <input type="submit" name="Submit" value="<?php _e('Save Changes') ?>" class="button-primary" />
    124 </p>
    125 <?php } ?>
    126121  <table class="form-table">
    127122<?php
  • trunk/wp-admin/plugins.php

    r12752 r12753  
    232232
    233233$help = '<p>' . __('Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here.') . '</p>';
    234 if ( !is_multisite() || is_super_admin() ) {
     234if ( current_user_can('edit_plugins') ) {
    235235$help .= '<p>' . sprintf(__('If something goes wrong with a plugin and you can&#8217;t use WordPress, delete or rename that file in the <code>%s</code> directory and it will be automatically deactivated.'), WP_PLUGIN_DIR) . '</p>';
    236236$help .= '<p>' . sprintf(__('You can find additional plugins for your site by using the new <a href="%1$s">Plugin Browser/Installer</a> functionality or by browsing the <a href="http://wordpress.org/extend/plugins/">WordPress Plugin Directory</a> directly and installing manually.  To <em>manually</em> install a plugin you generally just need to upload the plugin file into your <code>%2$s</code> directory.  Once a plugin has been installed, you may activate it here.'), 'plugin-install.php', WP_PLUGIN_DIR) . '</p>';
    … …  
    285285<div class="wrap">
    286286<?php screen_icon(); ?>
    287 <h2><?php echo esc_html( $title ); if ( !is_multisite() || is_super_admin() ) { ?> <a href="plugin-install.php" class="button add-new-h2"><?php echo esc_html_x('Add New', 'plugin'); ?></a><?php } ?></h2>
     287<h2><?php echo esc_html( $title ); if ( current_user_can('install_plugins') ) { ?> <a href="plugin-install.php" class="button add-new-h2"><?php echo esc_html_x('Add New', 'plugin'); ?></a><?php } ?></h2>
    288288
    289289<?php
    … …  
    326326}
    327327
    328 if ( is_multisite() && !is_super_admin() ) {
    329         $upgrade_plugins = false;
    330 }
     328if ( !current_user_can('update_plugins') )
     329        $upgrade_plugins = array();
    331330
    332331$total_all_plugins = count($all_plugins);
  • trunk/wp-admin/themes.php

    r12752 r12753  
    6868
    6969require_once('admin-header.php');
    70 if ( is_multisite() && is_super_admin() ) {
     70if ( is_multisite() && current_user_can('edit_themes') ) {
    7171        ?><div id="message0" class="updated fade"><p><?php _e('Administrator: new themes must be activated in the <a href="wpmu-themes.php">Themes Admin</a> page before they appear here.'); ?></p></div><?php
    7272}
    … …  
    127127        static $themes_update;
    128128
    129         if ( is_multisite() && !is_super_admin() )
     129        if ( !current_user_can('update_themes' ) )
    130130                return;
    131131
    … …  
    160160<div class="wrap">
    161161<?php screen_icon(); ?>
    162 <h2><?php echo esc_html( $title ); if ( !is_multisite() || is_super_admin() ) { ?> <a href="theme-install.php" class="button add-new-h2"><?php echo esc_html_x('Add New', 'theme'); ?></a><?php } ?></h2>
     162<h2><?php echo esc_html( $title ); if ( !current_user_can('install_themes') ) { ?> <a href="theme-install.php" class="button add-new-h2"><?php echo esc_html_x('Add New', 'theme'); ?></a><?php } ?></h2>
    163163
    164164<h3><?php _e('Current Theme'); ?></h3>
    … …  
    171171        printf(__('%1$s %2$s by %3$s'), $ct->title, $ct->version, $ct->author) ; ?></h4>
    172172<p class="theme-description"><?php echo $ct->description; ?></p>
    173 <?php if ( ( !is_multisite() || is_super_admin() ) && $ct->parent_theme ) { ?>
     173<?php if ( current_user_can('edit_themes') && $ct->parent_theme ) { ?>
    174174        <p><?php printf(__('The template files are located in <code>%2$s</code>.  The stylesheet files are located in <code>%3$s</code>.  <strong>%4$s</strong> uses templates from <strong>%5$s</strong>.  Changes made to the templates will affect both themes.'), $ct->title, str_replace( WP_CONTENT_DIR, '', $ct->template_dir ), str_replace( WP_CONTENT_DIR, '', $ct->stylesheet_dir ), $ct->title, $ct->parent_theme); ?></p>
    175175<?php } else { ?>
    … …  
    266266<p class="description"><?php echo $description; ?></p>
    267267<span class='action-links'><?php echo $actions ?></span>
    268         <?php if ( ( !is_multisite() || is_super_admin() ) && $parent_theme ) {
     268        <?php if ( current_user_can('edit_themes') && $parent_theme ) {
    269269        /* translators: 1: theme title, 2:  template dir, 3: stylesheet_dir, 4: theme title, 5: parent_theme */ ?>
    270270        <p><?php printf(__('The template files are located in <code>%2$s</code>.  The stylesheet files are located in <code>%3$s</code>.  <strong>%4$s</strong> uses templates from <strong>%5$s</strong>.  Changes made to the templates will affect both themes.'), $title, str_replace( WP_CONTENT_DIR, '', $template_dir ), str_replace( WP_CONTENT_DIR, '', $stylesheet_dir ), $title, $parent_theme); ?></p>
    … …  
    299299// List broken themes, if any.
    300300$broken_themes = get_broken_themes();
    301 if ( ( !is_multisite() || is_super_admin() ) && count( $broken_themes ) ) {
     301if ( current_user_can('edit_themes') && count( $broken_themes ) ) {
    302302?>
    303303
  • trunk/wp-admin/upgrade.php

    r12752 r12753  
    8686                        $backto = esc_url_raw( $backto );
    8787                        $backto = wp_validate_redirect($backto, __get_option( 'home' ) . '/');
    88                 if ( $wpdb->get_row( "SELECT blog_id FROM {$wpdb->blog_versions} WHERE blog_id = '{$wpdb->blogid}'" ) ) {
    89                         $wpdb->query( "UPDATE {$wpdb->blog_versions} SET db_version = '{$wp_db_version}' WHERE blog_id = '{$wpdb->blogid}'" );
    90                 } else {
    91                         $wpdb->query( "INSERT INTO {$wpdb->blog_versions} ( `blog_id` , `db_version` , `last_updated` ) VALUES ( '{$wpdb->blogid}', '{$wp_db_version}', NOW());" );
    92                 }
    9388?>
    9489<h2><?php _e( 'Upgrade Complete' ); ?></h2>
  • trunk/wp-admin/users.php

    r12752 r12753  
    1515if ( !current_user_can('edit_users') )
    1616        wp_die(__('Cheatin&#8217; uh?'));
     17
     18$del_cap_type = 'remove';
     19if ( !is_multisite() && current_user_can('delete_users') )
     20        $del_cap_type = 'delete';
    1721
    1822$title = __('Users');
    … …  
    4448        check_admin_referer('bulk-users');
    4549
    46         if (empty($_REQUEST['users'])) {
     50        if ( empty($_REQUEST['users']) ) {
    4751                wp_redirect($redirect);
    4852                exit();
    … …  
    5054
    5155        $editable_roles = get_editable_roles();
    52         if (!$editable_roles[$_REQUEST['new_role']])
     56        if ( !$editable_roles[$_REQUEST['new_role']] )
    5357                wp_die(__('You can&#8217;t give users that role.'));
    5458
    5559        $userids = $_REQUEST['users'];
    5660        $update = 'promote';
    57         foreach($userids as $id) {
     61        foreach ( $userids as $id ) {
    5862                if ( ! current_user_can('edit_user', $id) )
    5963                        wp_die(__('You can&#8217;t edit that user.'));
    6064                // The new role of the current user must also have edit_users caps
    61                 if($id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST['new_role']]->has_cap('edit_users')) {
     65                if ( $id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST['new_role']]->has_cap('edit_users') ) {
    6266                        $update = 'err_admin_role';
    6367                        continue;
    … …  
    8286        }
    8387
    84         if ( !current_user_can('delete_users') )
     88        if ( !current_user_can($del_cap_type . '_users') )
    8589                wp_die(__('You can&#8217;t delete users.'));
    8690
    … …  
    9094
    9195        foreach ( (array) $userids as $id) {
    92                 if ( ! current_user_can('delete_user', $id) )
     96                if ( ! current_user_can($del_cap_type . '_user', $id) )
    9397                        wp_die(__('You can&#8217;t delete that user.'));
    9498
    95                 if ($id == $current_user->ID) {
     99                if ( $id == $current_user->ID ) {
    96100                        $update = 'err_admin_del';
    97101                        continue;
    98102                }
    99                 switch($_REQUEST['delete_option']) {
     103                switch ( $_REQUEST['delete_option'] ) {
    100104                case 'delete':
    101                         if ( !is_multisite() ) {
     105                        if ( !is_multisite() && current_user_can('delete_user', $id) )
    102106                                wp_delete_user($id);
    103                         } else {
     107                        else
    104108                                remove_user_from_blog($id, $blog_id); // WPMU only remove user from blog
    105                         }
    106109                        break;
    107110                case 'reassign':
    108                         if ( !is_multisite() ) {
     111                        if ( !is_multisite() && current_user_can('delete_user', $id) )
    109112                                wp_delete_user($id, $_REQUEST['reassign_user']);
    110                         } else {
     113                        else
    111114                                remove_user_from_blog($id, $blog_id, $_REQUEST['reassign_user']);
    112                         }
    113115                        break;
    114116                }
    … …  
    131133        }
    132134
    133         if ( !current_user_can('delete_users') )
     135        if ( !current_user_can($del_cap_type . '_users') )
    134136                $errors = new WP_Error('edit_users', __('You can&#8217;t delete users.'));
    135137
  • trunk/wp-includes/capabilities.php

    r12733 r12753  
    717717                        $cap = $this->translate_level_to_cap( $cap );
    718718                }
     719
     720                // Multisite super admin has all caps by definition.
     721                if ( is_multisite() && is_super_admin() )
     722                        return true;
    719723
    720724                $args = array_slice( func_get_args(), 1 );
    … …  
    963967        case 'install_themes':
    964968        case 'edit_themes':
     969        case 'update_core':
     970        case 'delete_user':
     971        case 'delete_users':
    965972                // If multisite these caps are allowed only for super admins.
    966973                if ( is_multisite() && !is_super_admin() )
  • trunk/wp-includes/post.php

    r12751 r12753  
    32523252                        if ( 0 === strpos($file, $uploads['basedir']) ) //Check that the upload base exists in the file location
    32533253                                $url = str_replace($uploads['basedir'], $uploads['baseurl'], $file); //replace file location with url location
    3254                         elseif ( !is_multisite() ) {
    3255                                 if ( false !== strpos($file, 'wp-content/uploads') )
    3256                                         $url = $uploads['baseurl'] . substr( $file, strpos($file, 'wp-content/uploads') + 18 );
    3257                                 else
    3258                                         $url = $uploads['baseurl'] . "/$file"; //Its a newly uploaded file, therefor $file is relative to the basedir.
    3259                         }
     3254            elseif ( false !== strpos($file, 'wp-content/uploads') )
     3255                $url = $uploads['baseurl'] . substr( $file, strpos($file, 'wp-content/uploads') + 18 );
     3256            else
     3257                $url = $uploads['baseurl'] . "/$file"; //Its a newly uploaded file, therefor $file is relative to the basedir.
    32603258                }
    32613259        }
  • trunk/wp-includes/version.php

    r12456 r12753  
    1616 * @global int $wp_db_version
    1717 */
    18 $wp_db_version = 12329;
     18$wp_db_version = 12751;
    1919
    2020/**
  • trunk/wp-includes/wp-db.php

    r12733 r12753  
    371371                        $this->show_errors();
    372372
    373                 if( is_multisite() ) {
    374                         $this->charset = 'utf8';
    375                         if( defined( 'DB_COLLATE' ) && constant( 'DB_COLLATE' ) != '' ) {
    376                                 $this->collate = constant( 'DB_COLLATE' );
    377                         } else {
    378                                 $this->collate = 'utf8_general_ci';
    379                         }
    380                 }
     373                if ( is_multisite() ) {
     374                        $this->charset = 'utf8';
     375                        if ( defined( 'DB_COLLATE' ) && constant( 'DB_COLLATE' ) != '' )
     376                                $this->collate = constant( 'DB_COLLATE' );
     377                        else
     378                                $this->collate = 'utf8_general_ci';
     379                }
    381380
    382381                if ( defined('DB_CHARSET') )
    … …  
    447446                        return new WP_Error('invalid_db_prefix', /*WP_I18N_DB_BAD_PREFIX*/'Invalid database prefix'/*/WP_I18N_DB_BAD_PREFIX*/);
    448447
    449                 if( is_multisite() ) {
    450                         $old_prefix = '';
    451                 } else {
    452                         $old_prefix = $prefix;
    453                 }
    454                 if( isset( $this->base_prefix ) )
     448                if ( is_multisite() )
     449                        $old_prefix = '';
     450                else
     451                        $old_prefix = $prefix;
     452
     453                if ( isset( $this->base_prefix ) )
    455454                        $old_prefix = $this->base_prefix;
    456455                $this->base_prefix = $prefix;
    … …  
    665664                        return false;
    666665
    667                 // If there is an error then take note of it
    668                 if( is_multisite() ) {
    669                         $msg = "WordPress database error: [$str]\n{$this->last_query}\n";
    670                         if( defined( 'ERRORLOGFILE' ) )
    671                                 error_log( $msg, 3, CONSTANT( 'ERRORLOGFILE' ) );
    672                         if( defined( 'DIEONDBERROR' ) )
    673                                 die( $msg );
    674                 } else {
    675                         $str = htmlspecialchars($str, ENT_QUOTES);
    676                         $query = htmlspecialchars($this->last_query, ENT_QUOTES);
    677 
    678                         print "<div id='error'>
    679                         <p class='wpdberror'><strong>WordPress database error:</strong> [$str]<br />
    680                         <code>$query</code></p>
    681                         </div>";
    682                 }
     666                // If there is an error then take note of it
     667                if ( is_multisite() ) {
     668                        $msg = "WordPress database error: [$str]\n{$this->last_query}\n";
     669                        if ( defined( 'ERRORLOGFILE' ) )
     670                                error_log( $msg, 3, CONSTANT( 'ERRORLOGFILE' ) );
     671                        if ( defined( 'DIEONDBERROR' ) )
     672                                die( $msg );
     673                } else {
     674                        $str = htmlspecialchars($str, ENT_QUOTES);
     675                        $query = htmlspecialchars($this->last_query, ENT_QUOTES);
     676
     677                        print "<div id='error'>
     678                        <p class='wpdberror'><strong>WordPress database error:</strong> [$str]<br />
     679                        <code>$query</code></p>
     680                        </div>";
     681                }
    683682        }
    684683
    … …  
    740739        function db_connect( $query = "SELECT" ) {
    741740                global $db_list, $global_db_list;
    742                 if( is_array( $db_list ) == false )
     741                if ( is_array( $db_list ) == false )
    743742                        return true;
    744743
    745                 if( $this->blogs != '' && preg_match("/(" . $this->blogs . "|" . $this->users . "|" . $this->usermeta . "|" . $this->site . "|" . $this->sitemeta . "|" . $this->sitecategories . ")/i",$query) ) {
     744                if ( $this->blogs != '' && preg_match("/(" . $this->blogs . "|" . $this->users . "|" . $this->usermeta . "|" . $this->site . "|" . $this->sitemeta . "|" . $this->sitecategories . ")/i",$query) ) {
    746745                        $action = 'global';
    747746                        $details = $global_db_list[ mt_rand( 0, count( $global_db_list ) -1 ) ];
Note: See TracChangeset for help on using the changeset viewer.