Make WordPress Core


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.8/wp-admin/includes/plugin.php

    r11450 r11629  
    586586
    587587function add_menu_page( $page_title, $menu_title, $access_level, $file, $function = '', $icon_url = '' ) {
    588     global $menu, $admin_page_hooks;
     588    global $menu, $admin_page_hooks, $_registered_pages;
    589589
    590590    $file = plugin_basename( $file );
     
    603603    $menu[] = array ( $menu_title, $access_level, $file, $page_title, 'menu-top ' . $hookname, $hookname, $icon_url );
    604604
     605    $_registered_pages[$hookname] = true;
     606
    605607    return $hookname;
    606608}
    607609
    608610function add_object_page( $page_title, $menu_title, $access_level, $file, $function = '', $icon_url = '') {
    609     global $menu, $admin_page_hooks, $_wp_last_object_menu;
     611    global $menu, $admin_page_hooks, $_wp_last_object_menu, $_registered_pages;
    610612
    611613    $file = plugin_basename( $file );
     
    624626    $menu[$_wp_last_object_menu] = array ( $menu_title, $access_level, $file, $page_title, 'menu-top ' . $hookname, $hookname, $icon_url );
    625627
     628    $_registered_pages[$hookname] = true;
     629
    626630    return $hookname;
    627631}
    628632
    629633function add_utility_page( $page_title, $menu_title, $access_level, $file, $function = '', $icon_url = '') {
    630     global $menu, $admin_page_hooks, $_wp_last_utility_menu;
     634    global $menu, $admin_page_hooks, $_wp_last_utility_menu, $_registered_pages;
    631635
    632636    $file = plugin_basename( $file );
     
    646650
    647651    $menu[$_wp_last_utility_menu] = array ( $menu_title, $access_level, $file, $page_title, 'menu-top ' . $hookname, $hookname, $icon_url );
     652
     653    $_registered_pages[$hookname] = true;
    648654
    649655    return $hookname;
     
    655661    global $_wp_real_parent_file;
    656662    global $_wp_submenu_nopriv;
     663    global $_registered_pages;
    657664
    658665    $file = plugin_basename( $file );
     
    683690    if (!empty ( $function ) && !empty ( $hookname ))
    684691        add_action( $hookname, $function );
     692
     693    $_registered_pages[$hookname] = true;
     694    // backwards-compatibility for plugins using add_management page.  See wp-admin/admin.php for redirect from edit.php to tools.php
     695    if ( 'tools.php' == $parent )
     696        $_registered_pages[get_plugin_page_hookname( $file, 'edit.php')] = true;
    685697
    686698    return $hookname;
     
    920932    global $_wp_submenu_nopriv;
    921933    global $plugin_page;
     934    global $_registered_pages;
    922935
    923936    $parent = get_admin_page_parent();
     
    926939        return false;
    927940
    928     if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) )
    929         return false;
     941    if ( isset( $plugin_page ) ) {
     942        if ( isset( $_wp_submenu_nopriv[$parent][$plugin_page] ) )
     943            return false;
     944
     945        $hookname = get_plugin_page_hookname($plugin_page, $parent);
     946        if ( !isset($_registered_pages[$hookname]) )
     947            return false;
     948    }
    930949
    931950    if ( empty( $parent) ) {
     
    936955        if ( isset( $plugin_page ) && isset( $_wp_submenu_nopriv[$pagenow][$plugin_page] ) )
    937956            return false;
     957        if ( isset( $plugin_page ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
     958            return false;
    938959        foreach (array_keys( $_wp_submenu_nopriv ) as $key ) {
    939960            if ( isset( $_wp_submenu_nopriv[$key][$pagenow] ) )
     
    944965        return true;
    945966    }
     967
     968    if ( isset( $plugin_page ) && ( $plugin_page == $parent ) && isset( $_wp_menu_nopriv[$plugin_page] ) )
     969        return false;
    946970
    947971    if ( isset( $submenu[$parent] ) ) {
Note: See TracChangeset for help on using the changeset viewer.