WordPress.org

Make WordPress Core


Ignore:
Timestamp:
10/07/2010 07:34:18 PM (11 years ago)
Author:
ryan
Message:

First pass of user admin. Network admin and screen cleanups. see #14696

File:
1 edited

Legend:

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

    r15718 r15746  
    1717    global $wp_registered_widgets, $wp_registered_widget_controls, $wp_dashboard_control_callbacks;
    1818    $wp_dashboard_control_callbacks = array();
     19    $screen = get_current_screen();
    1920
    2021    $update = false;
     
    2627
    2728    // Right Now
    28     wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );
     29    if ( is_blog_admin() && current_user_can('edit_posts') )
     30        wp_add_dashboard_widget( 'dashboard_right_now', __( 'Right Now' ), 'wp_dashboard_right_now' );
    2931
    3032    // Recent Comments Widget
    31     if ( !isset( $widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {
    32         $update = true;
    33         $widget_options['dashboard_recent_comments'] = array(
    34             'items' => 5,
    35         );
    36     }
    37     $recent_comments_title = __( 'Recent Comments' );
    38     wp_add_dashboard_widget( 'dashboard_recent_comments', $recent_comments_title, 'wp_dashboard_recent_comments', 'wp_dashboard_recent_comments_control' );
     33    if ( is_blog_admin() && current_user_can('moderate_comments') ) {
     34        if ( !isset( $widget_options['dashboard_recent_comments'] ) || !isset( $widget_options['dashboard_recent_comments']['items'] ) ) {
     35            $update = true;
     36            $widget_options['dashboard_recent_comments'] = array(
     37                'items' => 5,
     38            );
     39        }
     40        $recent_comments_title = __( 'Recent Comments' );
     41        wp_add_dashboard_widget( 'dashboard_recent_comments', $recent_comments_title, 'wp_dashboard_recent_comments', 'wp_dashboard_recent_comments_control' );
     42    }
    3943
    4044    // Incoming Links Widget
    41     if ( !isset( $widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {
    42         $update = true;
    43         $num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;
    44         $widget_options['dashboard_incoming_links'] = array(
    45             'home' => get_option('home'),
    46             'link' => apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),
    47             'url' => isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] ) : apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=' . $num_items . '&output=rss&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),
    48             'items' => $num_items,
    49             'show_date' => isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false
    50         );
    51     }
    52     wp_add_dashboard_widget( 'dashboard_incoming_links', __( 'Incoming Links' ), 'wp_dashboard_incoming_links', 'wp_dashboard_incoming_links_control' );
     45    if ( is_blog_admin() && current_user_can('publish_posts') ) {
     46        if ( !isset( $widget_options['dashboard_incoming_links'] ) || !isset( $widget_options['dashboard_incoming_links']['home'] ) || $widget_options['dashboard_incoming_links']['home'] != get_option('home') ) {
     47            $update = true;
     48            $num_items = isset($widget_options['dashboard_incoming_links']['items']) ? $widget_options['dashboard_incoming_links']['items'] : 10;
     49            $widget_options['dashboard_incoming_links'] = array(
     50                'home' => get_option('home'),
     51                'link' => apply_filters( 'dashboard_incoming_links_link', 'http://blogsearch.google.com/blogsearch?scoring=d&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),
     52                'url' => isset($widget_options['dashboard_incoming_links']['url']) ? apply_filters( 'dashboard_incoming_links_feed', $widget_options['dashboard_incoming_links']['url'] ) : apply_filters( 'dashboard_incoming_links_feed', 'http://blogsearch.google.com/blogsearch_feeds?scoring=d&ie=utf-8&num=' . $num_items . '&output=rss&partner=wordpress&q=link:' . trailingslashit( get_option('home') ) ),
     53                'items' => $num_items,
     54                'show_date' => isset($widget_options['dashboard_incoming_links']['show_date']) ? $widget_options['dashboard_incoming_links']['show_date'] : false
     55            );
     56        }
     57        wp_add_dashboard_widget( 'dashboard_incoming_links', __( 'Incoming Links' ), 'wp_dashboard_incoming_links', 'wp_dashboard_incoming_links_control' );
     58    }
    5359
    5460    // WP Plugins Widget
    55     if ( current_user_can( 'install_plugins' ) )
     61    if ( is_blog_admin() && current_user_can( 'install_plugins' ) )
    5662        wp_add_dashboard_widget( 'dashboard_plugins', __( 'Plugins' ), 'wp_dashboard_plugins' );
    5763
    5864    // QuickPress Widget
    59     if ( current_user_can('edit_posts') )
     65    if ( is_blog_admin() && current_user_can('edit_posts') )
    6066        wp_add_dashboard_widget( 'dashboard_quick_press', __( 'QuickPress' ), 'wp_dashboard_quick_press' );
    6167
    6268    // Recent Drafts
    63     if ( current_user_can('edit_posts') )
     69    if ( is_blog_admin() && current_user_can('edit_posts') )
    6470        wp_add_dashboard_widget( 'dashboard_recent_drafts', __('Recent Drafts'), 'wp_dashboard_recent_drafts' );
    6571
     
    116122        update_option( 'dashboard_widget_options', $widget_options );
    117123
    118     do_action('do_meta_boxes', 'dashboard', 'normal', '');
    119     do_action('do_meta_boxes', 'dashboard', 'side', '');
     124    do_action('do_meta_boxes', $screen->id, 'normal', '');
     125    do_action('do_meta_boxes', $screen->id, 'side', '');
    120126}
    121127
    122128function wp_add_dashboard_widget( $widget_id, $widget_name, $callback, $control_callback = null ) {
     129    $screen = get_current_screen();
    123130    global $wp_dashboard_control_callbacks;
    124131    if ( $control_callback && current_user_can( 'edit_dashboard' ) && is_callable( $control_callback ) ) {
     
    127134            list($url) = explode( '#', add_query_arg( 'edit', false ), 2 );
    128135            $widget_name .= ' <span class="postbox-title-action"><a href="' . esc_url( $url ) . '">' . __( 'Cancel' ) . '</a></span>';
    129             add_meta_box( $widget_id, $widget_name, '_wp_dashboard_control_callback', 'dashboard', 'normal', 'core' );
     136            add_meta_box( $widget_id, $widget_name, '_wp_dashboard_control_callback', $screen->id, 'normal', 'core' );
    130137            return;
    131138        }
     
    133140        $widget_name .= ' <span class="postbox-title-action"><a href="' . esc_url( "$url#$widget_id" ) . '" class="edit-box open-box">' . __( 'Configure' ) . '</a></span>';
    134141    }
    135     $side_widgets = array('dashboard_quick_press', 'dashboard_recent_drafts', 'dashboard_primary', 'dashboard_secondary');
     142    if ( is_user_admin() )
     143        $side_widgets = array();
     144    else
     145        $side_widgets = array('dashboard_quick_press', 'dashboard_recent_drafts', 'dashboard_primary', 'dashboard_secondary');
    136146    $location = 'normal';
    137147    if ( in_array($widget_id, $side_widgets) )
    138148        $location = 'side';
    139     add_meta_box( $widget_id, $widget_name , $callback, 'dashboard', $location, 'core' );
     149    add_meta_box( $widget_id, $widget_name , $callback, $screen->id, $location, 'core' );
    140150}
    141151
     
    155165function wp_dashboard() {
    156166    global $screen_layout_columns;
     167
     168    $screen = get_current_screen();
    157169
    158170    $hide2 = $hide3 = $hide4 = '';
     
    177189<?php
    178190    echo "\t<div class='postbox-container' style='$width'>\n";
    179     do_meta_boxes( 'dashboard', 'normal', '' );
     191    do_meta_boxes( $screen->id, 'normal', '' );
    180192
    181193    echo "\t</div><div class='postbox-container' style='{$hide2}$width'>\n";
    182     do_meta_boxes( 'dashboard', 'side', '' );
     194    do_meta_boxes( $screen->id, 'side', '' );
    183195
    184196    echo "\t</div><div class='postbox-container' style='{$hide3}$width'>\n";
    185     do_meta_boxes( 'dashboard', 'column3', '' );
     197    do_meta_boxes( $screen->id, 'column3', '' );
    186198
    187199    echo "\t</div><div class='postbox-container' style='{$hide4}$width'>\n";
    188     do_meta_boxes( 'dashboard', 'column4', '' );
     200    do_meta_boxes( $screen->id, 'column4', '' );
    189201?>
    190202</div></div>
Note: See TracChangeset for help on using the changeset viewer.