Make WordPress Core

Changeset 4097


Ignore:
Timestamp:
08/15/2006 09:03:11 PM (18 years ago)
Author:
ryan
Message:

More menu fixes. #2257

Location:
trunk/wp-admin
Files:
3 edited

Legend:

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

    r4093 r4097  
    13391339    global $menu;
    13401340    global $submenu;
    1341     global $menu_nopriv;
     1341    global $_wp_menu_nopriv;
     1342    global $_wp_submenu_nopriv;
    13421343    global $plugin_page;
    13431344
    13441345    $parent = get_admin_page_parent();
    1345    
    1346     if ( isset($menu_nopriv[$pagenow]) )
     1346
     1347    if ( isset($_wp_submenu_nopriv[$parent][$pagenow]) )
    13471348        return false;
    13481349
    1349     if ( isset($plugin_page) && isset($menu_nopriv[$plugin_page]) )
     1350    if ( isset($plugin_page) && isset($_wp_submenu_nopriv[$parent][$plugin_page]) )
    13501351        return false;
    13511352   
    13521353    if ( empty($parent) )
    1353         return true;
     1354        return false;
    13541355
    13551356    if (isset ($submenu[$parent])) {
     
    13651366
    13661367    foreach ($menu as $menu_array) {
    1367         //echo "parent array: " . $menu_array[2];
    13681368        if ($menu_array[2] == $parent) {
    13691369            if (current_user_can($menu_array[1]))
     
    14301430    global $pagenow;
    14311431    global $plugin_page;
    1432     global $real_parent_file;
     1432    global $_wp_real_parent_file;
     1433    global $_wp_menu_nopriv;
     1434    global $_wp_submenu_nopriv;
    14331435
    14341436    if ( !empty ($parent_file) ) {
    1435         if ( isset($real_parent_file[$parent_file]) )
    1436             $parent_file = $real_parent_file[$parent_file];
     1437        if ( isset($_wp_real_parent_file[$parent_file]) )
     1438            $parent_file = $_wp_real_parent_file[$parent_file];
    14371439
    14381440        return $parent_file;
     
    14431445            if ($parent_menu[2] == $plugin_page) {
    14441446                $parent_file = $plugin_page;
    1445                 if ( isset($real_parent_file[$parent_file]) )
    1446                     $parent_file = $real_parent_file[$parent_file];
    1447                    
     1447                if ( isset($_wp_real_parent_file[$parent_file]) )
     1448                    $parent_file = $_wp_real_parent_file[$parent_file];
    14481449                return $parent_file;
    14491450            }
    14501451        }
     1452        if ( isset($_wp_menu_nopriv[$plugin_page]) ) {
     1453            $parent_file = $plugin_page;
     1454            if ( isset($_wp_real_parent_file[$parent_file]) )
     1455                    $parent_file = $_wp_real_parent_file[$parent_file];
     1456            return $parent_file;
     1457        }           
     1458    }
     1459
     1460    if ( isset($plugin_page) && isset($_wp_submenu_nopriv[$pagenow][$plugin_page]) ) {
     1461        $parent_file = $pagenow;
     1462        if ( isset($_wp_real_parent_file[$parent_file]) )
     1463            $parent_file = $_wp_real_parent_file[$parent_file];
     1464        return $parent_file;       
    14511465    }
    14521466
    14531467    foreach (array_keys($submenu) as $parent) {
    14541468        foreach ($submenu[$parent] as $submenu_array) {
    1455             if ( isset($real_parent_file[$parent]) )
    1456                 $parent = $real_parent_file[$parent];
     1469            if ( isset($_wp_real_parent_file[$parent]) )
     1470                $parent = $_wp_real_parent_file[$parent];
    14571471            if ($submenu_array[2] == $pagenow) {
    14581472                $parent_file = $parent;
     
    14891503    global $submenu;
    14901504    global $menu;
    1491     global $real_parent_file;
    1492     global $menu_nopriv;
     1505    global $_wp_real_parent_file;
     1506    global $_wp_submenu_nopriv;
     1507    global $_wp_menu_nopriv;
    14931508
    14941509    $file = plugin_basename($file);
    1495     //echo "Adding $parent $file $access_level<br />";
     1510
     1511    $parent = plugin_basename($parent);
     1512    if ( isset($_wp_real_parent_file[$parent]) )
     1513        $parent = $_wp_real_parent_file[$parent];
     1514
    14961515    if ( !current_user_can($access_level) ) {
    1497         $menu_nopriv[$file] = true;
     1516        $_wp_submenu_nopriv[$parent][$file] = true;
    14981517        return false;
    14991518    }
    1500 
    1501     $parent = plugin_basename($parent);
    1502     if ( isset($real_parent_file[$parent]) )
    1503         $parent = $real_parent_file[$parent];
    15041519
    15051520    // If the parent doesn't already have a submenu, add a link to the parent
     
    15071522    // parent file someone is trying to link back to the parent manually.  In
    15081523    // this case, don't automatically add a link back to avoid duplication.
    1509     if (!isset ($submenu[$parent]) && $file != $parent) {
     1524    if (!isset ($submenu[$parent]) && $file != $parent  ) {
    15101525        foreach ($menu as $parent_menu) {
    1511             if ($parent_menu[2] == $parent) {
     1526            if ( $parent_menu[2] == $parent && current_user_can($parent_menu[1]) ) {
    15121527                $submenu[$parent][] = $parent_menu;
    15131528            }
  • trunk/wp-admin/index.php

    r3954 r4097  
    22require_once('admin.php');
    33$title = __('Dashboard');
     4$parent_file = 'index.php';
    45require_once('admin-header.php');
    56require_once (ABSPATH . WPINC . '/rss.php');
  • trunk/wp-admin/menu.php

    r4093 r4097  
    4444
    4545if ( current_user_can('edit_users') ) {
    46     $real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php.
     46    $_wp_real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php.
    4747    $submenu['users.php'][5] = array(__('Authors &amp; Users'), 'edit_users', 'users.php');
    4848    $submenu['users.php'][10] = array(__('Your Profile'), 'read', 'profile.php');
     
    7474    foreach ($sub as $index => $data) {
    7575        if ( ! current_user_can($data[1]) ) {
    76             $menu_nopriv[$data[2]] = true;
    7776            unset($submenu[$parent][$index]);
    7877        }
     
    9695    // make the first submenu the new parent.
    9796    if ( $new_parent != $old_parent ) {
    98         $real_parent_file[$old_parent] = $new_parent;
     97        $_wp_real_parent_file[$old_parent] = $new_parent;
    9998        $menu[$id][2] = $new_parent;
    10099       
     
    103102            unset($submenu[$old_parent][$index]);
    104103        }
    105         unset($submenu[$old_parent]);   
     104        unset($submenu[$old_parent]);
     105        $_wp_submenu_nopriv[$new_parent] = $_wp_submenu_nopriv[$old_parent];
    106106    }
    107107}
     
    110110
    111111// Remove menus that have no accessible submenus and require privs that the user does not have.
     112// Run re-parent loop again.
    112113foreach ( $menu as $id => $data ) {
    113114    // If submenu is empty...
     
    115116        // And user doesn't have privs, remove menu.
    116117        if ( ! current_user_can($data[1]) ) {
    117             $menu_nopriv[$data[2]] = true;
     118            $_wp_menu_nopriv[$data[2]] = true;
    118119            unset($menu[$id]);
    119120        }
    120     }
     121    } else {
     122    /*  $subs = $submenu[$data[2]];
     123        $first_sub = array_shift($subs);
     124        $old_parent = $data[2];
     125        $new_parent = $first_sub[2];
     126        // If the first submenu is not the same as the assigned parent,
     127        // make the first submenu the new parent.
     128        if ( $new_parent != $old_parent ) {
     129            $_wp_real_parent_file[$old_parent] = $new_parent;
     130            $menu[$id][2] = $new_parent;
     131       
     132            foreach ($submenu[$old_parent] as $index => $data) {
     133                $submenu[$new_parent][$index] = $submenu[$old_parent][$index];
     134                unset($submenu[$old_parent][$index]);
     135            }
     136            unset($submenu[$old_parent]);
     137            $_wp_submenu_nopriv[$new_parent] = $_wp_submenu_nopriv[$old_parent];
     138        } */
     139    }
    121140}
    122141
Note: See TracChangeset for help on using the changeset viewer.