WordPress.org

Make WordPress Core

Ticket #30483: 30483.3.diff

File 30483.3.diff, 9.5 KB (added by dustyf, 7 years ago)

Third crack, with changes proposed by cfoellmann

  • wp-admin/includes/ms.php

     
    4848 *
    4949 * @since 3.0.0
    5050 *
    51  * @param int $blog_id Blog ID
    52  * @param bool $drop True if blog's table should be dropped. Default is false.
     51 * @param int  $blog_id Blog ID
     52 * @param bool $drop    True if blog's table should be dropped. Default is false.
    5353 * @return void
    5454 */
    5555function wpmu_delete_blog( $blog_id, $drop = false ) {
     
    169169                restore_current_blog();
    170170}
    171171
    172 // @todo Merge with wp_delete_user() ?
     172/**
     173 * Delete a user from the network and remove from all sites.
     174 *
     175 * @since 3.0.0
     176 * @todo Merge with wp_delete_user() ?
     177 *
     178 * @param int $id The ID of the user.
     179 * @return bool True if the user was deleted, otherwise false.
     180 */
    173181function wpmu_delete_user( $id ) {
    174182        global $wpdb;
    175183
     
    225233        return true;
    226234}
    227235
     236/**
     237 * Sends an email when a site administrator email address is changed.
     238 *
     239 * @since 3.0.0
     240 *
     241 * @param string $old_value The old email address. Not currently used.
     242 * @param string $value     The new email address.
     243 */
    228244function update_option_new_admin_email( $old_value, $value ) {
    229245        if ( $value == get_option( 'admin_email' ) || !is_email( $value ) )
    230246                return;
     
    278294add_action( 'update_option_new_admin_email', 'update_option_new_admin_email', 10, 2 );
    279295add_action( 'add_option_new_admin_email', 'update_option_new_admin_email', 10, 2 );
    280296
     297/**
     298 * Sends an email when an email address change is requested.
     299 *
     300 * @since 3.0.0
     301 *
     302 * @global object $errors WP_Error object.
     303 * @global object $wpdb   WordPress database object.
     304 */
    281305function send_confirmation_on_profile_email() {
    282306        global $errors, $wpdb;
    283307        $current_user = wp_get_current_user();
     
    348372}
    349373add_action( 'personal_options_update', 'send_confirmation_on_profile_email' );
    350374
     375/**
     376 * Adds an admin notice alterting the user to check for confirmation email after email address change.
     377 *
     378 * @since 3.0.0
     379 */
    351380function new_user_email_admin_notice() {
    352381        if ( strpos( $_SERVER['PHP_SELF'], 'profile.php' ) && isset( $_GET['updated'] ) && $email = get_option( get_current_user_id() . '_new_email' ) )
    353382                echo "<div class='update-nag'>" . sprintf( __( "Your email address has not been updated yet. Please check your inbox at %s for a confirmation email." ), $email['newemail'] ) . "</div>";
     
    360389 * @since MU
    361390 *
    362391 * @param bool $echo Optional. If $echo is set and the quota is exceeded, a warning message is echoed. Default is true.
    363  * @return int
     392 * @return bool True if user is over upload space quota, otherwise false.
    364393 */
    365394function upload_is_user_over_quota( $echo = true ) {
    366395        if ( get_site_option( 'upload_space_check_disabled' ) )
     
    422451        return min( $size, $available );
    423452}
    424453
    425 // Edit blog upload space setting on Edit Blog page
     454/**
     455 * Displays the edit blog upload space setting form on Edit Blog page.
     456 *
     457 * @since 3.0.0
     458 *
     459 * @param int $id The ID of the blog to display the setting for.
     460 */
    426461function upload_space_setting( $id ) {
    427462        switch_to_blog( $id );
    428463        $quota = get_option( 'blog_upload_space' );
     
    440475}
    441476add_action( 'wpmueditblogaction', 'upload_space_setting' );
    442477
     478/**
     479 * Update the status of a user in the database.
     480 *
     481 * Used in core to mark a user as spam or "ham" (not spam) on multisite installs.
     482 *
     483 * @since 3.0.0
     484 *
     485 * @param int    $id         The ID of the user.
     486 * @param string $pref       The column in the wp_users table to update the user's status in (presumably
     487 *                           user_status, spam, or deleted).
     488 * @param int    $value      The new status for the user.
     489 * @param null   $deprecated Deprecated as of 3.0.2 and should not be used.
     490 * @return int   The initially passed $value.
     491 */
    443492function update_user_status( $id, $pref, $value, $deprecated = null ) {
    444493        global $wpdb;
    445494
     
    476525        return $value;
    477526}
    478527
     528/**
     529 * Cleans the user cache for a specific user.
     530 *
     531 * @since 3.0.0
     532 *
     533 * @param int $id The user ID.
     534 * @return bool|int The ID of the refreshed user or false if user does not exist.
     535 */
    479536function refresh_user_details( $id ) {
    480537        $id = (int) $id;
    481538
     
    487544        return $id;
    488545}
    489546
     547/**
     548 * Returns the language for a language code.
     549 *
     550 * @since 3.0.0
     551 *
     552 * @param string $code Optional. The two-letter language code.
     553 * @return string The language corresponding to $code if it exists. If it does not exist, then the first
     554 *                two letters of $code is returned.
     555 */
    490556function format_code_lang( $code = '' ) {
    491557        $code = strtolower( substr( $code, 0, 2 ) );
    492558        $lang_codes = array(
     
    514580        return strtr( $code, $lang_codes );
    515581}
    516582
     583/**
     584 * Synchronize category and post tag slugs when global terms are enabled.
     585 *
     586 * @since 3.0.0
     587 *
     588 * @param $term     The term.
     589 * @param $taxonomy The taxonomy for $term. Should be 'category' or 'post_tag', as these are the only
     590 *                  taxonomies which are processed by this function; anything else will be returned untouched.
     591 * @return object|array Returns $term, after filtering the 'slug' field with sanitize_title() if $taxonomy
     592 *                      is 'category' or 'post_tag'.
     593 */
    517594function sync_category_tag_slugs( $term, $taxonomy ) {
    518595        if ( global_terms_enabled() && ( $taxonomy == 'category' || $taxonomy == 'post_tag' ) ) {
    519596                if ( is_object( $term ) ) {
     
    526603}
    527604add_filter( 'get_term', 'sync_category_tag_slugs', 10, 2 );
    528605
     606/**
     607 * Displays an access denied message when a user tries to view a site's dashboard they do not have access to.
     608 *
     609 * @since 3.2.0
     610 * @access private
     611 */
    529612function _access_denied_splash() {
    530613        if ( ! is_user_logged_in() || is_network_admin() )
    531614                return;
     
    560643}
    561644add_action( 'admin_page_access_denied', '_access_denied_splash', 99 );
    562645
     646/**
     647 * Checks if the current user has permissions to import new users.
     648 *
     649 * @since 3.0.0
     650 *
     651 * @param string $permission A permission to be checked. Currently not used.
     652 * @return bool True if the user has proper permissions, false if they do not.
     653 */
    563654function check_import_new_users( $permission ) {
    564655        if ( !is_super_admin() )
    565656                return false;
     
    568659add_filter( 'import_allow_create_users', 'check_import_new_users' );
    569660// See "import_allow_fetch_attachments" and "import_attachment_size_limit" filters too.
    570661
     662/**
     663 * Display a dropdown of available languages.
     664 *
     665 * @since 3.0.0
     666 *
     667 * @param array  $lang_files An array of the language files.
     668 * @param string $current    The current language code.
     669 */
    571670function mu_dropdown_languages( $lang_files = array(), $current = '' ) {
    572671        $flag = false;
    573672        $output = array();
     
    608707        echo implode( "\n\t", $output );
    609708}
    610709
     710/**
     711 * Displays an admin notice to upgrade all sites after a WordPress Core Upgrade.
     712 *
     713 * @since 3.0.0
     714 *
     715 * $global int The version number of the database.
     716 */
    611717function site_admin_notice() {
    612718        global $wp_db_version;
    613719        if ( !is_super_admin() )
     
    618724add_action( 'admin_notices', 'site_admin_notice' );
    619725add_action( 'network_admin_notices', 'site_admin_notice' );
    620726
     727/**
     728 * Avoids a collision between a site slug and a permalink slug.
     729 *
     730 * In a subdirectory install this will make sure that a site and a post do not use the same subdirectory by checking
     731 * for a site with the same name as a new post.
     732 *
     733 * @since 3.0.0
     734 *
     735 * @param array $data    An array of post data.
     736 * @param array $postarr An array of posts. Not currently used.
     737 * @return array The new array of post data after checking for collisions.
     738 */
    621739function avoid_blog_page_permalink_collision( $data, $postarr ) {
    622740        if ( is_subdomain_install() )
    623741                return $data;
     
    641759}
    642760add_filter( 'wp_insert_post_data', 'avoid_blog_page_permalink_collision', 10, 2 );
    643761
     762/**
     763 * Handles the display of choosing a users primary site.
     764 *
     765 * This displays the user's primary site and allows the user to choose which site is primary.
     766 * Used in wp-admin/my-sites.php.
     767 *
     768 * @since 3.0.0
     769 */
    644770function choose_primary_blog() {
    645771        ?>
    646772        <table class="form-table">
     
    696822 * Grants Super Admin privileges.
    697823 *
    698824 * @since 3.0.0
     825 *
    699826 * @param int $user_id ID of the user to be granted Super Admin privileges.
    700827 * @return bool True on success, false on failure. This can fail when the user is
    701828 *              already a super admin or when the $super_admins global is defined.
     
    740867 * Revokes Super Admin privileges.
    741868 *
    742869 * @since 3.0.0
     870 *
    743871 * @param int $user_id ID of the user Super Admin privileges to be revoked from.
    744872 * @return bool True on success, false on failure. This can fail when the user's email
    745873 *              is the network admin email or when the $super_admins global is defined.
     
    783911}
    784912
    785913/**
    786  * Whether or not we can edit this network from this page
     914 * Whether or not we can edit this network from this page.
    787915 *
    788  * By default editing of network is restricted to the Network Admin for that site_id this allows for this to be overridden
     916 * By default editing of network is restricted to the Network Admin for that site_id this allows for this to be overridden.
    789917 *
    790918 * @since 3.1.0
    791  * @param integer $site_id The network/site ID to check.
     919 *
     920 * @param int $site_id The network/site ID to check.
     921 * @return bool True if network can be edited, otherwise false.
    792922 */
    793923function can_edit_network( $site_id ) {
    794924        global $wpdb;
     
    813943 * Thickbox image paths for Network Admin.
    814944 *
    815945 * @since 3.1.0
     946 *
    816947 * @access private
    817948 */
    818949function _thickbox_path_admin_subfolder() {