WordPress.org

Make WordPress Core

Changeset 12728


Ignore:
Timestamp:
01/15/2010 04:58:36 PM (10 years ago)
Author:
ryan
Message:

Merge edit-pages.php into edit.php. see #9674

Location:
trunk/wp-admin
Files:
1 deleted
20 edited

Legend:

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

    r12597 r12728  
    10041004    check_ajax_referer( 'autosave', 'autosavenonce' );
    10051005    $ID = (int) $_POST['post_ID'];
    1006     $post_type = ( 'page' == $_POST['post_type'] ) ? 'page' : 'post';
    1007     if ( current_user_can( "edit_{$post_type}", $ID ) )
     1006    $post_type = $_POST['post_type'];
     1007    $post_type_object = get_post_type_object($post_type);
     1008    if ( !$post_type_object )
     1009        die('0');
     1010    if ( current_user_can( $post_type_object->edit_cap, $ID ) )
    10081011        die( json_encode( array( 'updateNonce' => wp_create_nonce( "update-{$post_type}_{$ID}" ), 'deleteURL' => str_replace( '&', '&', wp_nonce_url( admin_url( $post_type . '.php?action=trash&post=' . $ID ), "trash-{$post_type}_{$ID}" ) ) ) ) );
    10091012    do_action('autosave_generate_nonces');
  • trunk/wp-admin/admin-header.php

    r12702 r12728  
    2929    wp_admin_css( 'css/ms' );
    3030wp_enqueue_script('utils');
    31 
    32 $hook_suffix = '';
    33 if ( isset($page_hook) )
    34     $hook_suffix = $page_hook;
    35 else if ( isset($plugin_page) )
    36     $hook_suffix = $plugin_page;
    37 else if ( isset($pagenow) )
    38     $hook_suffix = $pagenow;
    39 
    40 if ( isset($submenu_file) && (false !== $pos = strpos($submenu_file, 'post_type=')) )
    41     $typenow = substr($submenu_file, $pos + 10);
    42 elseif ( isset($parent_file) && (false !== $pos = strpos($parent_file, 'post_type=')) )
    43     $typenow = substr($parent_file, $pos + 10);
    44 else
    45     $typenow = '';
    4631
    4732$admin_body_class = preg_replace('/[^a-z0-9_-]+/i', '-', $hook_suffix);
     
    120105</div>
    121106
    122 <?php favorite_actions($hook_suffix); ?>
     107<?php favorite_actions($current_screen); ?>
    123108</div>
    124109</div>
    125110
    126111<div id="wpbody">
    127 <?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
     112<?php
     113require(ABSPATH . 'wp-admin/menu-header.php');
     114
     115$current_screen->parent_file = $parent_file;
     116$current_screen->parent_base = preg_replace('/\?.*$/', '', $parent_file);
     117$current_screen->parent_base = str_replace('.php', '', $current_screen->parent_base);
     118?>
    128119
    129120<div id="wpbody-content">
    130121<?php
    131 screen_meta($hook_suffix);
     122screen_meta($current_screen);
    132123
    133124do_action('admin_notices');
  • trunk/wp-admin/admin.php

    r12720 r12728  
    178178    do_action('admin_action_' . $_REQUEST['action']);
    179179
     180$hook_suffix = '';
     181if ( isset($page_hook) )
     182    $hook_suffix = $page_hook;
     183else if ( isset($plugin_page) )
     184    $hook_suffix = $plugin_page;
     185else if ( isset($pagenow) )
     186    $hook_suffix = $pagenow;
     187
     188if ( isset($_GET['post_type']) )
     189    $typenow = $_GET['post_type'];
     190else
     191    $typenow = '';
     192// @todo validate typenow against post types.
     193
     194/**
     195 * Global object containing info about the current screen.
     196 */
     197$current_screen = $hook_suffix;
     198$current_screen = str_replace('.php', '', $current_screen);
     199$current_screen = str_replace('-new', '', $current_screen);
     200$current_screen = str_replace('-add', '', $current_screen);
     201$current_screen = array('id' => $current_screen, 'base' => $current_screen);
     202$current_screen = (object) $current_screen;
     203if ( 'edit' == $current_screen->id ) {
     204    if ( empty($typenow) )
     205        $typenow = 'post';
     206    $current_screen->id .= '-' . $typenow;
     207    $current_screen->post_type = $typenow;
     208} elseif ( 'post' == $current_screen->id ) {
     209    if ( empty($typenow) )
     210        $typenow = 'post';
     211    $current_screen->id = $typenow;
     212    $current_screen->post_type = $typenow;
     213} else {
     214    $typenow = '';
     215}
     216
     217$current_screen = apply_filters('current_screen', $current_screen);
     218
    180219?>
  • trunk/wp-admin/edit-form-advanced.php

    r12710 r12728  
    143143do_action('do_meta_boxes', $post_type, 'side', $post);
    144144
     145add_contextual_help($current_screen, drag_drop_help());
     146
    145147require_once('admin-header.php');
    146148?>
  • trunk/wp-admin/edit-link-form.php

    r12546 r12728  
    3434do_action('do_meta_boxes', 'link', 'advanced', $link);
    3535do_action('do_meta_boxes', 'link', 'side', $link);
     36
     37add_contextual_help($current_screen, drag_drop_help());
    3638
    3739require_once ('admin-header.php');
  • trunk/wp-admin/edit-post-rows.php

    r11768 r12728  
    1414    <thead>
    1515    <tr>
    16 <?php print_column_headers('edit'); ?>
     16<?php print_column_headers( $current_screen ); ?>
    1717    </tr>
    1818    </thead>
     
    2020    <tfoot>
    2121    <tr>
    22 <?php print_column_headers('edit', false); ?>
     22<?php print_column_headers($current_screen, false); ?>
    2323    </tr>
    2424    </tfoot>
    2525
    2626    <tbody>
    27 <?php post_rows(); ?>
     27<?php
     28if ( $post_type_object->hierarchical )
     29    page_rows($posts, $pagenum, $per_page);
     30else
     31    post_rows();
     32?>
    2833    </tbody>
    2934</table>
  • trunk/wp-admin/edit.php

    r12719 r12728  
    2121}
    2222
    23 if ( isset($_GET['post_type']) && in_array( $_GET['post_type'], get_post_types( array('_show' => true) ) ) )
     23if ( isset($_GET['post_type']) && ( in_array( $_GET['post_type'], get_post_types( array('_show' => true ) ) ) || in_array( $_GET['post_type'], get_post_types( array('_builtin' => true ) ) ) ) )
    2424    $post_type = $_GET['post_type'];
    2525else
     
    2828
    2929$post_type_object = get_post_type_object($post_type);
     30$post_type_cap = $post_type_object->capability_type;
    3031
    3132if ( 'post' != $post_type ) {
     
    3839    $post_new_file = 'post-new.php';
    3940}
     41
     42$pagenum = isset( $_GET['paged'] ) ? absint( $_GET['paged'] ) : 0;
     43if ( empty($pagenum) )
     44    $pagenum = 1;
     45$per_page = 'edit_' . $post_type . '_per_page';
     46$per_page = (int) get_user_option( $per_page );
     47if ( empty( $per_page ) || $per_page < 1 )
     48    $per_page = 15;
     49// @todo filter based on type
     50$per_page = apply_filters( 'edit_posts_per_page', $per_page );
    4051
    4152// Handle bulk actions
     
    6273            $trashed = 0;
    6374            foreach( (array) $post_ids as $post_id ) {
    64                 if ( !current_user_can('delete_post', $post_id) )
    65                     wp_die( __('You are not allowed to move this post to the trash.') );
     75                if ( !current_user_can('delete_' . $post_type_cap, $post_id) )
     76                    wp_die( __('You are not allowed to move this item to the trash.') );
    6677
    6778                if ( !wp_trash_post($post_id) )
     
    7586            $untrashed = 0;
    7687            foreach( (array) $post_ids as $post_id ) {
    77                 if ( !current_user_can('delete_post', $post_id) )
    78                     wp_die( __('You are not allowed to restore this post from the trash.') );
     88                if ( !current_user_can('delete_' . $post_type_cap, $post_id) )
     89                    wp_die( __('You are not allowed to restore this item from the trash.') );
    7990
    8091                if ( !wp_untrash_post($post_id) )
     
    90101                $post_del = & get_post($post_id);
    91102
    92                 if ( !current_user_can('delete_post', $post_id) )
    93                     wp_die( __('You are not allowed to delete this post.') );
     103                if ( !current_user_can('delete_' .  $post_type_cap, $post_id) )
     104                    wp_die( __('You are not allowed to delete this item.') );
    94105
    95106                if ( $post_del->post_type == 'attachment' ) {
     
    131142
    132143$user_posts = false;
    133 if ( !current_user_can('edit_others_posts') ) {
     144if ( !current_user_can('edit_others_' . $post_type_cap . 's') ) {
    134145    $user_posts_count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(1) FROM $wpdb->posts WHERE post_type = '%s' AND post_status != 'trash' AND post_author = %d", $post_type, $current_user->ID) );
    135146    $user_posts = true;
     
    140151$avail_post_stati = wp_edit_posts_query();
    141152
     153if ( $post_type_object->hierarchical )
     154    $num_pages = ceil($wp_query->post_count / $per_page);
     155else
     156    $num_pages = $wp_query->max_num_pages;
     157
    142158require_once('admin-header.php');
    143 
    144 if ( !isset( $_GET['paged'] ) )
    145     $_GET['paged'] = 1;
    146159
    147160if ( empty($_GET['mode']) )
     
    159172<?php
    160173if ( isset($_GET['posted']) && $_GET['posted'] ) : $_GET['posted'] = (int) $_GET['posted']; ?>
    161 <div id="message" class="updated"><p><strong><?php _e('Your post has been saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View post'); ?></a> | <a href="<?php echo get_edit_post_link( $_GET['posted'] ); ?>"><?php _e('Edit post'); ?></a></p></div>
     174<div id="message" class="updated"><p><strong><?php _e('This has been saved.'); ?></strong> <a href="<?php echo get_permalink( $_GET['posted'] ); ?>"><?php _e('View post'); ?></a> | <a href="<?php echo get_edit_post_link( $_GET['posted'] ); ?>"><?php _e('Edit post'); ?></a></p></div>
    162175<?php $_SERVER['REQUEST_URI'] = remove_query_arg(array('posted'), $_SERVER['REQUEST_URI']);
    163176endif; ?>
     
    174187
    175188if ( isset($_GET['locked']) && (int) $_GET['locked'] ) {
    176     printf( _n( '%s post not updated, somebody is editing it.', '%s posts not updated, somebody is editing them.', $_GET['locked'] ), number_format_i18n( $_GET['locked'] ) );
     189    printf( _n( '%s item not updated, somebody is editing it.', '%s items not updated, somebody is editing them.', $_GET['locked'] ), number_format_i18n( $_GET['locked'] ) );
    177190    unset($_GET['locked']);
    178191}
    179192
    180193if ( isset($_GET['deleted']) && (int) $_GET['deleted'] ) {
    181     printf( _n( 'Post permanently deleted.', '%s posts permanently deleted.', $_GET['deleted'] ), number_format_i18n( $_GET['deleted'] ) );
     194    printf( _n( 'Item permanently deleted.', '%s items permanently deleted.', $_GET['deleted'] ), number_format_i18n( $_GET['deleted'] ) );
    182195    unset($_GET['deleted']);
    183196}
    184197
    185198if ( isset($_GET['trashed']) && (int) $_GET['trashed'] ) {
    186     printf( _n( 'Post moved to the trash.', '%s posts moved to the trash.', $_GET['trashed'] ), number_format_i18n( $_GET['trashed'] ) );
     199    printf( _n( 'Item moved to the trash.', '%s items moved to the trash.', $_GET['trashed'] ), number_format_i18n( $_GET['trashed'] ) );
    187200    $ids = isset($_GET['ids']) ? $_GET['ids'] : 0;
    188201    echo ' <a href="' . esc_url( wp_nonce_url( "edit.php?doaction=undo&action=untrash&ids=$ids", "bulk-posts" ) ) . '">' . __('Undo') . '</a><br />';
     
    191204
    192205if ( isset($_GET['untrashed']) && (int) $_GET['untrashed'] ) {
    193     printf( _n( 'Post restored from the trash.', '%s posts restored from the trash.', $_GET['untrashed'] ), number_format_i18n( $_GET['untrashed'] ) );
     206    printf( _n( 'Item restored from the trash.', '%s items restored from the trash.', $_GET['untrashed'] ), number_format_i18n( $_GET['untrashed'] ) );
    194207    unset($_GET['undeleted']);
    195208}
     
    213226    if ( isset( $_GET['author'] ) && ( $_GET['author'] == $current_user->ID ) )
    214227        $class = ' class="current"';
    215     $status_links[] = "<li><a href='edit.php?author=$current_user->ID'$class>" . sprintf( _nx( 'My Posts <span class="count">(%s)</span>', 'My Posts <span class="count">(%s)</span>', $user_posts_count, 'posts' ), number_format_i18n( $user_posts_count ) ) . '</a>';
     228    $status_links[] = "<li><a href='edit.php?author=$current_user->ID'$class>" . sprintf( _nx( 'Mine <span class="count">(%s)</span>', 'Mine <span class="count">(%s)</span>', $user_posts_count, 'posts' ), number_format_i18n( $user_posts_count ) ) . '</a>';
    216229    $allposts = '?all_posts=1';
    217230}
     
    262275    'prev_text' => __('&laquo;'),
    263276    'next_text' => __('&raquo;'),
    264     'total' => $wp_query->max_num_pages,
    265     'current' => $_GET['paged']
     277    'total' => $num_pages,
     278    'current' => $pagenum
    266279));
    267280
     
    319332
    320333<?php
    321 $dropdown_options = array('show_option_all' => __('View all categories'), 'hide_empty' => 0, 'hierarchical' => 1,
    322     'show_count' => 0, 'orderby' => 'name', 'selected' => $cat);
    323 wp_dropdown_categories($dropdown_options);
    324 do_action('restrict_manage_posts');
     334if ( is_object_in_taxonomy($post_type, 'category') ) {
     335    $dropdown_options = array('show_option_all' => __('View all categories'), 'hide_empty' => 0, 'hierarchical' => 1,
     336        'show_count' => 0, 'orderby' => 'name', 'selected' => $cat);
     337    wp_dropdown_categories($dropdown_options);
     338    do_action('restrict_manage_posts');
     339}
    325340?>
    326341<input type="submit" id="post-query-submit" value="<?php esc_attr_e('Filter'); ?>" class="button-secondary" />
    327342<?php }
    328343
    329 if ( $is_trash && current_user_can('edit_others_posts') ) { ?>
     344if ( $is_trash && current_user_can('edit_others_' . $post_type_cap .'s') ) { ?>
    330345<input type="submit" name="delete_all" id="delete_all" value="<?php esc_attr_e('Empty Trash'); ?>" class="button-secondary apply" />
    331346<?php } ?>
     
    334349<?php if ( $page_links ) { ?>
    335350<div class="tablenav-pages"><?php $page_links_text = sprintf( '<span class="displaying-num">' . __( 'Displaying %s&#8211;%s of %s' ) . '</span>%s',
    336     number_format_i18n( ( $_GET['paged'] - 1 ) * $wp_query->query_vars['posts_per_page'] + 1 ),
    337     number_format_i18n( min( $_GET['paged'] * $wp_query->query_vars['posts_per_page'], $wp_query->found_posts ) ),
     351    number_format_i18n( ( $pagenum - 1 ) * $per_page + 1 ),
     352    number_format_i18n( min( $pagenum * $per_page, $wp_query->found_posts ) ),
    338353    number_format_i18n( $wp_query->found_posts ),
    339354    $page_links
     
    374389</select>
    375390<input type="submit" value="<?php esc_attr_e('Apply'); ?>" name="doaction2" id="doaction2" class="button-secondary action" />
    376 <?php if ( $is_trash && current_user_can('edit_others_posts') ) { ?>
     391<?php if ( $is_trash && current_user_can('edit_others_' . $post_type_cap . 's') ) { ?>
    377392<input type="submit" name="delete_all2" id="delete_all2" value="<?php esc_attr_e('Empty Trash'); ?>" class="button-secondary apply" />
    378393<?php } ?>
     
    394409</form>
    395410
    396 <?php inline_edit_row( 'post' ); ?>
     411<?php inline_edit_row( $current_screen ); ?>
    397412
    398413<div id="ajax-response"></div>
  • trunk/wp-admin/includes/misc.php

    r12726 r12728  
    411411        switch ( $map_option ) {
    412412            case 'edit_per_page':
    413             case 'edit_pages_per_page':
    414413            case 'edit_comments_per_page':
    415414            case 'upload_per_page':
  • trunk/wp-admin/includes/post.php

    r12719 r12728  
    820820    $post_stati  = get_post_stati();
    821821
    822     if ( isset($q['post_type']) && in_array( $q['post_type'], get_post_types( array('_show' => true) ) ) )
     822    if ( isset($q['post_type']) && in_array( $q['post_type'], get_post_types() ) )
    823823        $post_type = $q['post_type'];
    824824    else
    825825        $post_type = 'post';
     826    $post_type_object = get_post_type_object($post_type);
    826827
    827828    $avail_post_stati = get_available_post_statuses($post_type);
     
    843844    }
    844845
    845     if ( 'post' != $post_type )
    846         $per_page = 'edit_' . $post_type . '_per_page';
    847     else
    848         $per_page = 'edit_per_page';
    849     $posts_per_page = (int) get_user_option( 'edit_per_page' );
     846    $per_page = 'edit_' . $post_type . '_per_page';
     847    $posts_per_page = (int) get_user_option( $per_page );
    850848    if ( empty( $posts_per_page ) || $posts_per_page < 1 )
    851849        $posts_per_page = 15;
    852     $posts_per_page = apply_filters( 'edit_posts_per_page', $posts_per_page );
    853 
    854     wp( compact('post_type', 'post_status', 'perm', 'order', 'orderby', 'posts_per_page') );
     850    $posts_per_page = apply_filters( $per_page, $posts_per_page );
     851
     852
     853    $query = compact('post_type', 'post_status', 'perm', 'order', 'orderby', 'posts_per_page');
     854
     855    // Hierarchical types require special args.
     856    if ( $post_type_object->hierarchical ) {
     857        $query['orderby'] = 'menu_order title';
     858        $query['order'] = 'asc';
     859        $query['posts_per_page'] = -1;
     860        $query['posts_per_archive_page'] = -1;
     861    }
     862
     863    wp( $query );
    855864
    856865    return $avail_post_stati;
  • trunk/wp-admin/includes/template.php

    r12726 r12728  
    749749 * @return unknown
    750750 */
    751 function wp_manage_posts_columns() {
    752     global $typenow;
     751function wp_manage_posts_columns( $screen = '') {
     752    if ( empty($screen) )
     753        $post_type = 'post';
     754    else
     755        $post_type = $screen->post_type;
    753756
    754757    $posts_columns = array();
    755758    $posts_columns['cb'] = '<input type="checkbox" />';
    756759    /* translators: manage posts column name */
    757     $posts_columns['title'] = _x('Post', 'column name');
     760    $posts_columns['title'] = _x('Title', 'column name');
    758761    $posts_columns['author'] = __('Author');
    759     if ( empty($typenow) || is_object_in_taxonomy($typenow, 'category') )
     762    if ( empty($post_type) || is_object_in_taxonomy($post_type, 'category') )
    760763        $posts_columns['categories'] = __('Categories');
    761     if ( empty($typenow) || is_object_in_taxonomy($typenow, 'category') )
     764    if ( empty($post_type) || is_object_in_taxonomy($post_type, 'category') )
    762765        $posts_columns['tags'] = __('Tags');
    763766    $post_status = !empty($_REQUEST['post_status']) ? $_REQUEST['post_status'] : 'all';
    764     if ( !in_array( $post_status, array('pending', 'draft', 'future') ) && ( empty($typenow) || post_type_supports($typenow, 'comments') ) )
     767    if ( !in_array( $post_status, array('pending', 'draft', 'future') ) && ( empty($post_type) || post_type_supports($post_type, 'comments') ) )
    765768        $posts_columns['comments'] = '<div class="vers"><img alt="Comments" src="images/comment-grey-bubble.png" /></div>';
    766769    $posts_columns['date'] = __('Date');
     770    // @todo filter per type
    767771    $posts_columns = apply_filters('manage_posts_columns', $posts_columns);
    768772
     
    805809 */
    806810function wp_manage_pages_columns() {
    807     $posts_columns = array();
    808     $posts_columns['cb'] = '<input type="checkbox" />';
    809     $posts_columns['title'] = __('Title');
    810     $posts_columns['author'] = __('Author');
    811     $post_status = !empty($_REQUEST['post_status']) ? $_REQUEST['post_status'] : 'all';
    812     if ( !in_array( $post_status, array('pending', 'draft', 'future') ) )
    813         $posts_columns['comments'] = '<div class="vers"><img alt="" src="images/comment-grey-bubble.png" /></div>';
    814     $posts_columns['date'] = __('Date');
    815     $posts_columns = apply_filters('manage_pages_columns', $posts_columns);
    816 
    817     return $posts_columns;
    818 }
    819 
    820 /**
    821  * {@internal Missing Short Description}}
    822  *
    823  * @since unknown
    824  *
    825  * @param unknown_type $page
     811    return wp_manage_posts_columns();
     812}
     813
     814/**
     815 * {@internal Missing Short Description}}
     816 *
     817 * @since unknown
     818 *
     819 * @param unknown_type $screen
    826820 * @return unknown
    827821 */
    828 function get_column_headers($page) {
     822function get_column_headers($screen) {
    829823    global $_wp_column_headers;
    830824
     
    832826        $_wp_column_headers = array();
    833827
    834     $map_screen = $page;
    835     $type = str_replace('edit-', '', $map_screen);
    836     if ( in_array($type, get_post_types()) )
    837         $map_screen = 'edit';
     828    if ( is_string($screen) )
     829        $screen = convert_to_screen($screen);
    838830
    839831    // Store in static to avoid running filters on each call
    840     if ( isset($_wp_column_headers[$page]) )
    841         return $_wp_column_headers[$page];
    842 
    843     switch ($map_screen) {
     832    if ( isset($_wp_column_headers[$screen->id]) )
     833        return $_wp_column_headers[$screen->id];
     834
     835    switch ($screen->base) {
    844836        case 'edit':
    845              $_wp_column_headers[$page] = wp_manage_posts_columns();
     837             $_wp_column_headers[$screen->id] = wp_manage_posts_columns( $screen );
    846838             break;
    847         case 'edit-pages':
    848             $_wp_column_headers[$page] = wp_manage_pages_columns();
    849             break;
    850839        case 'edit-comments':
    851             $_wp_column_headers[$page] = array(
     840            $_wp_column_headers[$screen->id] = array(
    852841                'cb' => '<input type="checkbox" />',
    853842                'author' => __('Author'),
     
    860849            break;
    861850        case 'link-manager':
    862             $_wp_column_headers[$page] = array(
     851            $_wp_column_headers[$screen->id] = array(
    863852                'cb' => '<input type="checkbox" />',
    864853                'name' => __('Name'),
     
    872861            break;
    873862        case 'upload':
    874             $_wp_column_headers[$page] = wp_manage_media_columns();
     863            $_wp_column_headers[$screen->id] = wp_manage_media_columns();
    875864            break;
    876865        case 'categories':
    877             $_wp_column_headers[$page] = array(
     866            $_wp_column_headers[$screen->id] = array(
    878867                'cb' => '<input type="checkbox" />',
    879868                'name' => __('Name'),
     
    885874            break;
    886875        case 'edit-link-categories':
    887             $_wp_column_headers[$page] = array(
     876            $_wp_column_headers[$screen->id] = array(
    888877                'cb' => '<input type="checkbox" />',
    889878                'name' => __('Name'),
     
    895884            break;
    896885        case 'edit-tags':
    897             $_wp_column_headers[$page] = array(
     886            $_wp_column_headers[$screen->id] = array(
    898887                'cb' => '<input type="checkbox" />',
    899888                'name' => __('Name'),
     
    905894            break;
    906895        case 'users':
    907             $_wp_column_headers[$page] = array(
     896            $_wp_column_headers[$screen->id] = array(
    908897                'cb' => '<input type="checkbox" />',
    909898                'username' => __('Username'),
     
    915904            break;
    916905        default :
    917             $_wp_column_headers[$page] = array();
    918     }
    919 
    920     $_wp_column_headers[$page] = apply_filters('manage_' . $page . '_columns', $_wp_column_headers[$page]);
    921     return $_wp_column_headers[$page];
    922 }
    923 
    924 /**
    925  * {@internal Missing Short Description}}
    926  *
    927  * @since unknown
    928  *
    929  * @param unknown_type $type
     906            $_wp_column_headers[$screen->id] = array();
     907    }
     908
     909    $_wp_column_headers[$screen->id] = apply_filters('manage_' . $screen->id . '_columns', $_wp_column_headers[$screen->id]);
     910    return $_wp_column_headers[$screen->id];
     911}
     912
     913/**
     914 * {@internal Missing Short Description}}
     915 *
     916 * @since unknown
     917 *
     918 * @param unknown_type $screen
    930919 * @param unknown_type $id
    931920 */
    932 function print_column_headers( $type, $id = true ) {
    933     $type = str_replace('.php', '', $type);
    934     $columns = get_column_headers( $type );
    935     $hidden = get_hidden_columns($type);
     921function print_column_headers( $screen, $id = true ) {
     922    if ( is_string($screen) )
     923        $screen = convert_to_screen($screen);
     924
     925    $columns = get_column_headers( $screen );
     926    $hidden = get_hidden_columns($screen);
    936927    $styles = array();
    937928
     
    952943            $style = 'display:none;';
    953944
    954         if ( isset($styles[$type]) && isset($styles[$type][$column_key]) )
    955             $style .= ' ' . $styles[$type][$column_key];
     945        if ( isset($styles[$screen->id]) && isset($styles[$screen->id][$column_key]) )
     946            $style .= ' ' . $styles[$screen>id][$column_key];
    956947        $style = ' style="' . $style . '"';
    957948?>
     
    972963    global $_wp_column_headers;
    973964
     965    if ( is_string($screen) )
     966        $screen = convert_to_screen($screen);
     967
    974968    if ( !isset($_wp_column_headers) )
    975969        $_wp_column_headers = array();
    976970
    977     $_wp_column_headers[$screen] = $columns;
    978 }
    979 
    980 /**
    981  * {@internal Missing Short Description}}
    982  *
    983  * @since unknown
    984  *
    985  * @param unknown_type $page
    986  */
    987 function get_hidden_columns($page) {
    988     $page = str_replace('.php', '', $page);
    989     return (array) get_user_option( 'manage-' . $page . '-columns-hidden' );
     971    $_wp_column_headers[$screen->id] = $columns;
     972}
     973
     974/**
     975 * {@internal Missing Short Description}}
     976 *
     977 * @since unknown
     978 *
     979 * @param unknown_type $screen
     980 */
     981function get_hidden_columns($screen) {
     982    if ( is_string($screen) )
     983        $screen = convert_to_screen($screen);
     984
     985    return (array) get_user_option( 'manage-' . $screen->id. '-columns-hidden' );
    990986}
    991987
     
    999995 * @param string $type 'post' or 'page'
    1000996 */
    1001 function inline_edit_row( $type ) {
     997function inline_edit_row( $screen ) {
    1002998    global $current_user, $mode;
    1003999
    1004     $is_page = 'page' == $type;
    1005     if ( $is_page ) {
    1006         $screen = 'edit-pages';
    1007         $post = get_default_page_to_edit();
    1008     } else {
    1009         $screen = 'edit';
    1010         $post = get_default_post_to_edit();
    1011     }
    1012 
    1013     $columns = $is_page ? wp_manage_pages_columns() : wp_manage_posts_columns();
     1000    if ( is_string($screen) ) {
     1001        $screen = array('id' => 'edit-' . $screen, 'base' => 'edit', 'post_type' => $screen );
     1002        $screen = (object) $screen;
     1003    }
     1004
     1005    $post = get_default_post_to_edit( $screen->post_type );
     1006    $post_type_object = get_post_type_object( $screen->post_type );
     1007
     1008    $columns = wp_manage_posts_columns($screen);
    10141009    $hidden = array_intersect( array_keys( $columns ), array_filter( get_hidden_columns($screen) ) );
    10151010    $col_count = count($columns) - count($hidden);
    10161011    $m = ( isset($mode) && 'excerpt' == $mode ) ? 'excerpt' : 'list';
    1017     $can_publish = current_user_can("publish_{$type}s");
     1012    // @todo use capability_type
     1013    $can_publish = current_user_can("publish_{$screen->post_type}s");
    10181014    $core_columns = array( 'cb' => true, 'date' => true, 'title' => true, 'categories' => true, 'tags' => true, 'comments' => true, 'author' => true );
    10191015
     
    10251021    while ( $bulk < 2 ) { ?>
    10261022
    1027     <tr id="<?php echo $bulk ? 'bulk-edit' : 'inline-edit'; ?>" class="inline-edit-row inline-edit-row-<?php echo "$type ";
    1028         echo $bulk ? "bulk-edit-row bulk-edit-row-$type" : "quick-edit-row quick-edit-row-$type";
     1023    <tr id="<?php echo $bulk ? 'bulk-edit' : 'inline-edit'; ?>" class="inline-edit-row inline-edit-row-<?php echo "$screen->post_type ";
     1024        echo $bulk ? "bulk-edit-row bulk-edit-row-$screen->post_type" : "quick-edit-row quick-edit-row-$screen->post_type";
    10291025    ?>" style="display: none"><td colspan="<?php echo $col_count; ?>">
    10301026
    10311027    <fieldset class="inline-edit-col-left"><div class="inline-edit-col">
    1032         <h4><?php echo $bulk ? ( $is_page ? __( 'Bulk Edit Pages' ) : __( 'Bulk Edit Posts' ) ) : __( 'Quick Edit' ); ?></h4>
     1028        <h4><?php echo $bulk ? ( __( 'Bulk Edit' ) ) : __( 'Quick Edit' ); ?></h4>
    10331029
    10341030
     
    10631059<?php endif; // $bulk
    10641060
    1065         $authors = get_editable_user_ids( $current_user->id, true, $type ); // TODO: ROLE SYSTEM
     1061        $authors = get_editable_user_ids( $current_user->id, true, $screen->post_type ); // TODO: ROLE SYSTEM
    10661062        $authors_dropdown = '';
    10671063        if ( $authors && count( $authors ) > 1 ) :
     
    10931089            <label class="alignleft inline-edit-private">
    10941090                <input type="checkbox" name="keep_private" value="private" />
    1095                 <span class="checkbox-title"><?php echo $is_page ? __('Private page') : __('Private post'); ?></span>
     1091                <span class="checkbox-title"><?php echo __('Private'); ?></span>
    10961092            </label>
    10971093        </div>
     
    11011097    </div></fieldset>
    11021098
    1103 <?php if ( !$is_page && !$bulk ) : ?>
     1099<?php if ( is_object_in_taxonomy($screen->post_type, 'categories') && !$bulk ) : ?>
    11041100
    11051101    <fieldset class="inline-edit-col-center inline-edit-categories"><div class="inline-edit-col">
     
    11131109    </div></fieldset>
    11141110
    1115 <?php endif; // !$is_page && !$bulk ?>
     1111<?php endif; // !hierarchical && !$bulk ?>
    11161112
    11171113    <fieldset class="inline-edit-col-right"><div class="inline-edit-col">
     
    11221118?>
    11231119
    1124 <?php if ( $is_page ) : ?>
     1120<?php if ( $post_type_object->hierarchical ) : ?>
    11251121
    11261122        <label>
     
    12221218            </label>
    12231219
    1224 <?php if ( !$is_page && $can_publish && current_user_can( 'edit_others_posts' ) ) : ?>
     1220<?php if ( 'post' == $screen->post_type && $can_publish && current_user_can( 'edit_others_posts' ) ) : ?>
    12251221
    12261222<?php   if ( $bulk ) : ?>
     
    12611257        <?php if ( ! $bulk ) {
    12621258            wp_nonce_field( 'inlineeditnonce', '_inline_edit', false );
    1263             $update_text = ( $is_page ) ? __( 'Update Page' ) : __( 'Update Post' );
     1259            $update_text = __( 'Update' );
    12641260            ?>
    12651261            <a accesskey="s" href="#inline-edit" title="<?php _e('Update'); ?>" class="button-primary save alignright"><?php echo esc_attr( $update_text ); ?></a>
    12661262            <img class="waiting" style="display:none;" src="images/wpspin_light.gif" alt="" />
    12671263        <?php } else {
    1268             $update_text = ( $is_page ) ? __( 'Update Pages' ) : __( 'Update Posts' );
     1264            $update_text = __( 'Update' );
    12691265        ?>
    12701266            <input accesskey="s" class="button-primary alignright" type="submit" name="bulk_edit" value="<?php echo esc_attr( $update_text ); ?>" />
     
    13701366 */
    13711367function _post_row($a_post, $pending_comments, $mode) {
    1372     global $post, $current_user;
     1368    global $post, $current_user, $current_screen;
    13731369    static $rowclass;
    13741370
     
    13841380    <tr id='post-<?php echo $post->ID; ?>' class='<?php echo trim( $rowclass . ' author-' . $post_owner . ' status-' . $post->post_status ); ?> iedit' valign="top">
    13851381<?php
    1386     $posts_columns = get_column_headers('edit');
    1387     $hidden = get_hidden_columns('edit');
     1382    $posts_columns = get_column_headers( $current_screen );
     1383    $hidden = get_hidden_columns( $current_screen );
    13881384    foreach ( $posts_columns as $column_name=>$column_display_name ) {
    13891385        $class = "class=\"$column_name column-$column_name\"";
     
    15801576 */
    15811577function display_page_row( $page, $level = 0 ) {
    1582     global $post;
     1578    global $post, $current_screen;
    15831579    static $rowclass;
    15841580
     
    16071603    $id = (int) $page->ID;
    16081604    $rowclass = 'alternate' == $rowclass ? '' : 'alternate';
    1609     $posts_columns = get_column_headers('edit-pages');
    1610     $hidden = get_hidden_columns('edit-pages');
     1605    $posts_columns = get_column_headers( $current_screen );
     1606    $hidden = get_hidden_columns(  $current_screen );
    16111607    $title = _draft_or_post_title();
    16121608?>
     
    30573053 * @since unknown
    30583054 *
    3059  * @param unknown_type $page
    3060  */
    3061 function meta_box_prefs($page) {
     3055 * @param unknown_type $screen
     3056 */
     3057function meta_box_prefs($screen) {
    30623058    global $wp_meta_boxes;
    30633059
    3064     if ( empty($wp_meta_boxes[$page]) )
     3060    if ( is_string($screen) )
     3061        $screen = convert_to_screen($screen);
     3062
     3063    if ( empty($wp_meta_boxes[$screen->id]) )
    30653064        return;
    30663065
    3067     $hidden = get_hidden_meta_boxes($page);
    3068 
    3069     foreach ( array_keys($wp_meta_boxes[$page]) as $context ) {
    3070         foreach ( array_keys($wp_meta_boxes[$page][$context]) as $priority ) {
    3071             foreach ( $wp_meta_boxes[$page][$context][$priority] as $box ) {
     3066    $hidden = get_hidden_meta_boxes($screen);
     3067
     3068    foreach ( array_keys($wp_meta_boxes[$screen->id]) as $context ) {
     3069        foreach ( array_keys($wp_meta_boxes[$screen->id][$context]) as $priority ) {
     3070            foreach ( $wp_meta_boxes[$screen->id][$context][$priority] as $box ) {
    30723071                if ( false == $box || ! $box['title'] )
    30733072                    continue;
     
    30843083}
    30853084
    3086 function get_hidden_meta_boxes($page) {
    3087     $hidden = (array) get_user_option( "meta-box-hidden_$page" );
     3085function get_hidden_meta_boxes($screen) {
     3086    if ( is_string($screen) )
     3087        $screen = convert_to_screen($screen);
     3088
     3089    $hidden = (array) get_user_option( "meta-box-hidden_$screen->id" );
    30883090
    30893091    // Hide slug boxes by default
     
    32803282 */
    32813283function favorite_actions( $screen = null ) {
    3282     switch ( $screen ) {
    3283         case 'post-new.php':
     3284    if ( is_string($screen) )
     3285        $screen = convert_to_screen($screen);
     3286
     3287    switch ( $screen->id ) {
     3288        case 'post':
    32843289            $default_action = array('edit.php' => array(__('Edit Posts'), 'edit_posts'));
    32853290            break;
    3286         case 'edit-pages.php':
    3287             $default_action = array('page-new.php' => array(__('New Page'), 'edit_pages'));
     3291        case 'edit-page':
     3292            $default_action = array('post-new.php?post_type=page' => array(__('New Page'), 'edit_pages'));
    32883293            break;
    3289         case 'page-new.php':
    3290             $default_action = array('edit-pages.php' => array(__('Edit Pages'), 'edit_pages'));
     3294        case 'page':
     3295            $default_action = array('edit.php?post_type=page' => array(__('Edit Pages'), 'edit_pages'));
    32913296            break;
    32923297        case 'upload.php':
    32933298            $default_action = array('media-new.php' => array(__('New Media'), 'upload_files'));
    32943299            break;
    3295         case 'media-new.php':
     3300        case 'media':
    32963301            $default_action = array('upload.php' => array(__('Edit Media'), 'upload_files'));
    32973302            break;
    3298         case 'link-manager.php':
     3303        case 'link-manager':
    32993304            $default_action = array('link-add.php' => array(__('New Link'), 'manage_links'));
    33003305            break;
    3301         case 'link-add.php':
     3306        case 'link-add':
    33023307            $default_action = array('link-manager.php' => array(__('Edit Links'), 'manage_links'));
    33033308            break;
    3304         case 'users.php':
     3309        case 'users':
    33053310            $default_action = array('user-new.php' => array(__('New User'), 'create_users'));
    33063311            break;
    3307         case 'user-new.php':
     3312        case 'user':
    33083313            $default_action = array('users.php' => array(__('Edit Users'), 'edit_users'));
    33093314            break;
    3310         case 'plugins.php':
     3315        case 'plugins':
    33113316            $default_action = array('plugin-install.php' => array(__('Install Plugins'), 'install_plugins'));
    33123317            break;
    3313         case 'plugin-install.php':
     3318        case 'plugin-install':
    33143319            $default_action = array('plugins.php' => array(__('Manage Plugins'), 'activate_plugins'));
    33153320            break;
    3316         case 'themes.php':
     3321        case 'themes':
    33173322            $default_action = array('theme-install.php' => array(__('Install Themes'), 'install_themes'));
    33183323            break;
    3319         case 'theme-install.php':
     3324        case 'theme-install':
    33203325            $default_action = array('themes.php' => array(__('Manage Themes'), 'switch_themes'));
    33213326            break;
     
    34853490}
    34863491
    3487 function screen_meta($screen) {
    3488     global $wp_meta_boxes, $_wp_contextual_help, $typenow;
    3489 
     3492// Convert a screen string to a screen object
     3493function convert_to_screen( $screen ) {
    34903494    $screen = str_replace('.php', '', $screen);
    34913495    $screen = str_replace('-new', '', $screen);
     
    34933497    $screen = apply_filters('screen_meta_screen', $screen);
    34943498
     3499    $screen = array('id' => $screen, 'base' => $screen);
     3500    return (object) $screen;
     3501}
     3502
     3503function screen_meta($screen) {
     3504    global $wp_meta_boxes, $_wp_contextual_help, $post_type;
     3505
     3506    if ( is_string($screen) )
     3507        $screen = convert_to_screen($screen);
     3508
    34953509    $column_screens = get_column_headers($screen);
    34963510    $meta_screens = array('index' => 'dashboard');
    34973511
    3498     // Give post_type pages their own screen
    3499     if ( 'post' == $screen ) {
    3500         if ( !empty($typenow) )
    3501             $screen = $typenow;
    3502     }
    3503     if ( 'edit' == $screen ) {
    3504         if ( !empty($typenow) )
    3505             $screen = 'edit-' . $typenow;
    3506     }
    3507 
    3508     if ( isset($meta_screens[$screen]) )
    3509         $screen = $meta_screens[$screen];
     3512    if ( isset($meta_screens[$screen->id]) ) {
     3513        $screen->id = $meta_screens[$screen->id];
     3514        $screen->base = $screen->id;
     3515    }
     3516
    35103517    $show_screen = false;
    35113518    $show_on_screen = false;
    3512     if ( !empty($wp_meta_boxes[$screen]) || !empty($column_screens) ) {
     3519    if ( !empty($wp_meta_boxes[$screen->id]) || !empty($column_screens) ) {
    35133520        $show_screen = true;
    35143521        $show_on_screen = true;
     
    35243531    $settings = '';
    35253532
    3526     switch ( $screen ) {
    3527         case 'post':
    3528             if ( !isset($_wp_contextual_help['post']) ) {
    3529                 $help = drag_drop_help();
    3530                 $help .= '<p>' . __('<a href="http://codex.wordpress.org/Writing_Posts" target="_blank">Writing Posts</a>') . '</p>';
    3531                 $_wp_contextual_help['post'] = $help;
    3532             }
    3533             break;
    3534         case 'page':
    3535             if ( !isset($_wp_contextual_help['page']) ) {
    3536                 $help = drag_drop_help();
    3537                 $_wp_contextual_help['page'] = $help;
    3538             }
    3539             break;
    3540         case 'dashboard':
    3541             if ( !isset($_wp_contextual_help['dashboard']) ) {
    3542                 $help = '<p>' . __('The modules on this screen can be arranged in several columns. You can select the number of columns from the Screen Options tab.') . "</p>\n";
    3543                 $help .= drag_drop_help();
    3544                 $_wp_contextual_help['dashboard'] = $help;
    3545             }
    3546             break;
    3547         case 'link':
    3548             if ( !isset($_wp_contextual_help['link']) ) {
    3549                 $help = drag_drop_help();
    3550                 $_wp_contextual_help['link'] = $help;
    3551             }
    3552             break;
    3553         case 'options-general':
    3554             if ( !isset($_wp_contextual_help['options-general']) )
    3555                 $_wp_contextual_help['options-general'] = __('<a href="http://codex.wordpress.org/Settings_General_SubPanel" target="_blank">General Settings</a>');
    3556             break;
    3557         case 'theme-install':
    3558         case 'plugin-install':
    3559             if ( ( !isset($_GET['tab']) || 'dashboard' == $_GET['tab'] ) && !isset($_wp_contextual_help[$screen]) ) {
    3560                 $help = plugins_search_help();
    3561                 $_wp_contextual_help[$screen] = $help;
    3562             }
    3563             break;
     3533    switch ( $screen->id ) {
    35643534        case 'widgets':
    3565             if ( !isset($_wp_contextual_help['widgets']) ) {
    3566                 $help = widgets_help();
    3567                 $_wp_contextual_help['widgets'] = $help;
    3568             }
    35693535            $settings = '<p><a id="access-on" href="widgets.php?widgets-access=on">' . __('Enable accessibility mode') . '</a><a id="access-off" href="widgets.php?widgets-access=off">' . __('Disable accessibility mode') . "</a></p>\n";
    35703536            $show_screen = true;
     
    36063572    <?php
    36073573    $contextual_help = '';
    3608     if ( isset($_wp_contextual_help[$screen]) ) {
     3574    if ( isset($_wp_contextual_help[$screen->id]) ) {
    36093575        if ( !empty($title) )
    36103576            $contextual_help .= '<h5>' . sprintf(__('Get help with &#8220;%s&#8221;'), $title) . '</h5>';
    36113577        else
    36123578            $contextual_help .= '<h5>' . __('Get help with this page') . '</h5>';
    3613         $contextual_help .= '<div class="metabox-prefs">' . $_wp_contextual_help[$screen] . "</div>\n";
     3579        $contextual_help .= '<div class="metabox-prefs">' . $_wp_contextual_help[$screen->id] . "</div>\n";
    36143580
    36153581        $contextual_help .= '<h5>' . __('Other Help') . '</h5>';
     
    36533619    global $_wp_contextual_help;
    36543620
     3621    if ( is_string($screen) )
     3622        $screen = convert_to_screen($screen);
     3623
    36553624    if ( !isset($_wp_contextual_help) )
    36563625        $_wp_contextual_help = array();
    36573626
    3658     $_wp_contextual_help[$screen] = $help;
     3627    $_wp_contextual_help[$screen->id] = $help;
    36593628}
    36603629
     
    36763645}
    36773646
    3678 function widgets_help() {
    3679     return '
    3680     <p>' . __('Widgets are added and arranged by simple drag &#8217;n&#8217; drop. If you hover your mouse over the titlebar of a widget, you&#8217;ll see a 4-arrow cursor which indicates that the widget is movable.  Click on the titlebar, hold down the mouse button and drag the widget to a sidebar. As you drag, you&#8217;ll see a dotted box that also moves. This box shows where the widget will go once you drop it.') . '</p>
    3681     <p>' . __('To remove a widget from a sidebar, drag it back to Available Widgets or click on the arrow on its titlebar to reveal its settings, and then click Remove.') . '</p>
    3682     <p>' . __('To remove a widget from a sidebar <em>and keep its configuration</em>, drag it to Inactive Widgets.') . '</p>
    3683     <p>' . __('The Inactive Widgets area stores widgets that are configured but not curently used. If you change themes and the new theme has fewer sidebars than the old, all extra widgets will be stored to Inactive Widgets automatically.') . '</p>
    3684 ';
    3685 }
    3686 
    36873647function screen_layout($screen) {
    36883648    global $screen_layout_columns;
     3649
     3650    if ( is_string($screen) )
     3651        $screen = convert_to_screen($screen);
    36893652
    36903653    $columns = array('dashboard' => 4, 'post' => 2, 'page' => 2, 'link' => 2);
     
    36943657        $columns[$post_type] = 2;
    36953658
    3696     $columns = apply_filters('screen_layout_columns', $columns, $screen);
    3697 
    3698     if ( !isset($columns[$screen]) ) {
     3659    $columns = apply_filters('screen_layout_columns', $columns, $screen->id, $screen);
     3660
     3661    if ( !isset($columns[$screen->id]) ) {
    36993662        $screen_layout_columns = 0;
    37003663        return '';
    37013664    }
    37023665
    3703     $screen_layout_columns = get_user_option("screen_layout_$screen");
    3704     $num = $columns[$screen];
     3666    $screen_layout_columns = get_user_option("screen_layout_$screen->id");
     3667    $num = $columns[$screen->id];
    37053668
    37063669    if ( ! $screen_layout_columns )
     
    37183681
    37193682function screen_options($screen) {
    3720     $map_screen = $screen;
    3721     $type = str_replace('edit-', '', $map_screen);
    3722     if ( in_array($type, get_post_types()) )
    3723         $map_screen = 'edit';
    3724 
    3725     switch ( $map_screen ) {
     3683    if ( is_string($screen) )
     3684        $screen = convert_to_screen($screen);
     3685
     3686    switch ( $screen->base ) {
    37263687        case 'edit':
    37273688            $per_page_label = __('Posts per page:');
     
    37493710    }
    37503711
    3751     $option = str_replace( '-', '_', "${screen}_per_page" );
     3712    $option = str_replace( '-', '_', "{$screen->id}_per_page" );
    37523713    $per_page = (int) get_user_option( $option );
    37533714    if ( empty( $per_page ) || $per_page < 1 ) {
    3754         if ( 'plugins' == $screen )
     3715        if ( 'plugins' == $screen->id )
    37553716            $per_page = 999;
    37563717        else
     
    37743735}
    37753736
    3776 function screen_icon($name = '') {
    3777     global $parent_file, $hook_suffix;
     3737function screen_icon($screen = '') {
     3738    global $current_screen;
     3739
     3740    if ( empty($screen) )
     3741        $screen = $current_screen;
     3742    elseif ( is_string($screen) )
     3743        $name = $screen;
    37783744
    37793745    if ( empty($name) ) {
    3780         if ( isset($parent_file) && !empty($parent_file) ) {
    3781             $name = $parent_file;
    3782             if ( false !== $pos = strpos($name, '?post_type=') )
    3783                 $name = substr($name, 0, $pos);
    3784             $name = substr($name, 0, -4);
    3785         }
     3746        if ( !empty($screen->parent_base) )
     3747            $name = $screen->parent_base;
    37863748        else
    3787             $name = str_replace(array('.php', '-new', '-add'), '', $hook_suffix);
     3749            $name = $screen->base;
    37883750    }
    37893751?>
  • trunk/wp-admin/index.php

    r11380 r12728  
    2424$title = __('Dashboard');
    2525$parent_file = 'index.php';
     26
     27add_contextual_help($current_screen, '<p>' . __('The modules on this screen can be arranged in several columns. You can select the number of columns from the Screen Options tab.') . "</p>\n" . drag_drop_help() );
     28
    2629require_once('admin-header.php');
    2730
  • trunk/wp-admin/menu.php

    r12702 r12728  
    6969    $submenu['link-manager.php'][15] = array( __('Link Categories'), 'manage_categories', 'edit-link-categories.php' );
    7070
    71 $menu[20] = array( __('Pages'), 'edit_pages', 'edit-pages.php', '', 'menu-top', 'menu-pages', 'div' );
    72     $submenu['edit-pages.php'][5] = array( __('Edit'), 'edit_pages', 'edit-pages.php' );
     71$menu[20] = array( __('Pages'), 'edit_pages', 'edit.php?post_type=page', '', 'menu-top', 'menu-pages', 'div' );
     72    $submenu['edit.php?post_type=page'][5] = array( __('Edit'), 'edit_pages', 'edit.php?post_type=page' );
    7373    /* translators: add new page */
    74     $submenu['edit-pages.php'][10] = array( _x('Add New', 'page'), 'edit_pages', 'post-new.php?post_type=page' );
     74    $submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), 'edit_pages', 'post-new.php?post_type=page' );
    7575
    7676$menu[25] = array( sprintf( __('Comments %s'), "<span id='awaiting-mod' class='count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n($awaiting_mod) . "</span></span>" ), 'edit_posts', 'edit-comments.php', '', 'menu-top', 'menu-comments', 'div' );
  • trunk/wp-admin/options-general.php

    r12712 r12728  
    5050}
    5151add_filter('admin_head', 'add_js');
     52
     53add_contextual_help($current_screen, __('<a href="http://codex.wordpress.org/Settings_General_SubPanel" target="_blank">General Settings</a>'));
    5254
    5355include('./admin-header.php');
  • trunk/wp-admin/plugin-install.php

    r12103 r12728  
    5353do_action('install_plugins_pre_' . $tab); //Used to override the general interface, Eg, install or plugin information.
    5454
     55add_contextual_help($current_screen, plugins_search_help());
     56
    5557include('admin-header.php');
    5658?>
  • trunk/wp-admin/plugins.php

    r12722 r12728  
    237237}
    238238
    239 add_contextual_help('plugins', $help);
     239add_contextual_help($current_screen, $help);
    240240
    241241if ( is_multisite() && is_super_admin() ) {
  • trunk/wp-admin/post-new.php

    r12702 r12728  
    1818    $parent_file = "edit.php?post_type=$post_type";
    1919    $submenu_file = "post-new.php?post_type=$post_type";
    20     if ( 'page' == $post_type )
    21         $parent_file = 'edit-pages.php';
    2220} else {
    2321    $parent_file = 'edit.php';
  • trunk/wp-admin/post.php

    r12708 r12728  
    2424    $post_id = 0;
    2525$post_ID = $post_id;
    26 
    2726$post = null;
    2827$post_type_object = null;
    2928$post_type_cap = null;
     29$post_type = null;
    3030if ( $post_id ) {
    3131    $post = get_post($post_id);
    3232    if ( $post ) {
    3333        $post_type_object = get_post_type_object($post->post_type);
    34         if ( $post_type_object )
     34        if ( $post_type_object ) {
     35            $post_type = $post->post_type;
     36            $current_screen->post_type = $post->post_type;
     37            $current_screen->id = $current_screen->post_type;
    3538            $post_type_cap = $post_type_object->capability_type;
     39        }
     40    }
     41} elseif ( isset($_POST['post_type']) ) {
     42    $post_type_object = get_post_type_object($_POST['post_type']);
     43    if ( $post_type_object ) {
     44        $post_type = $post_type_object->name;
     45        $current_screen->post_type = $post_type;
     46        $current_screen->id = $current_screen->post_type;
     47        $post_type_cap = $post_type_object->capability_type;
    3648    }
    3749}
     
    109121case 'post-quickpress-publish':
    110122case 'post-quickpress-save':
    111     check_admin_referer('add-post');
     123    check_admin_referer('add-' . $post_type);
    112124
    113125    if ( 'post-quickpress-publish' == $action )
     
    164176        $parent_file = "edit.php";
    165177        $submenu_file = "edit.php";
    166     } elseif ( 'page' == $post_type ) {
    167         $parent_file = "edit-pages.php";
    168         $submenu_file = "edit-pages.php";
    169     } else {
    170         if ( $post_type_object->hierarchical ) {
    171             $parent_file = "edit-pages.php?post_type=$post_type";
    172             $submenu_file = "edit-pages.php?post_type=$post_type";
    173         } else {
    174             $parent_file = "edit.php?post_type=$post_type";
    175             $submenu_file = "edit.php?post_type=$post_type";
    176         }
     178    } else {
     179        $parent_file = "edit.php?post_type=$post_type";
     180        $submenu_file = "edit.php?post_type=$post_type";
    177181    }
    178182
     
    214218
    215219case 'editpost':
    216     check_admin_referer('update-' . $post->post_type . '_' . $post_id);
     220    check_admin_referer('update-' . $post_type . '_' . $post_id);
    217221
    218222    $post_id = edit_post();
     
    224228
    225229case 'trash':
    226     check_admin_referer('trash-post_' . $post_id);
     230    check_admin_referer('trash-' . $post_type . '_' . $post_id);
    227231
    228232    $post = & get_post($post_id);
     
    239243
    240244case 'untrash':
    241     check_admin_referer('untrash-post_' . $post_id);
     245    check_admin_referer('untrash-' . $post_type . '_' . $post_id);
    242246
    243247    if ( !current_user_can('delete_' . $post_type_cap, $post_id) )
     
    252256
    253257case 'delete':
    254     check_admin_referer('delete-post_' . $post_id);
     258    check_admin_referer('delete-' . $post_type . '_' . $post_id);
    255259
    256260    if ( !current_user_can('delete_' . $post_type_cap, $post_id) )
     
    281285
    282286default:
    283     if ( $post_type_object->hierarchical )
    284         wp_redirect('edit-pages.php');
    285     else
    286287        wp_redirect('edit.php');
    287288    exit();
  • trunk/wp-admin/theme-install.php

    r12103 r12728  
    5353do_action('install_themes_pre_' . $tab); //Used to override the general interface, Eg, install or theme information.
    5454
     55add_contextual_help($current_screen, plugins_search_help());
     56
    5557include('admin-header.php');
    5658?>
  • trunk/wp-admin/themes.php

    r12724 r12728  
    6262}
    6363
    64 add_contextual_help('themes', $help);
     64add_contextual_help($current_screen, $help);
    6565
    6666add_thickbox();
  • trunk/wp-admin/widgets.php

    r12546 r12728  
    3333$title = __( 'Widgets' );
    3434$parent_file = 'themes.php';
     35
     36$help = '
     37    <p>' . __('Widgets are added and arranged by simple drag &#8217;n&#8217; drop. If you hover your mouse over the titlebar of a widget, you&#8217;ll see a 4-arrow cursor which indicates that the widget is movable.  Click on the titlebar, hold down the mouse button and drag the widget to a sidebar. As you drag, you&#8217;ll see a dotted box that also moves. This box shows where the widget will go once you drop it.') . '</p>
     38    <p>' . __('To remove a widget from a sidebar, drag it back to Available Widgets or click on the arrow on its titlebar to reveal its settings, and then click Remove.') . '</p>
     39    <p>' . __('To remove a widget from a sidebar <em>and keep its configuration</em>, drag it to Inactive Widgets.') . '</p>
     40    <p>' . __('The Inactive Widgets area stores widgets that are configured but not curently used. If you change themes and the new theme has fewer sidebars than the old, all extra widgets will be stored to Inactive Widgets automatically.') . '</p>
     41';
     42add_contextual_help($current_screen, $help);
    3543
    3644// register the inactive_widgets area as sidebar
Note: See TracChangeset for help on using the changeset viewer.