Make WordPress Core


Ignore:
Timestamp:
02/17/2006 12:57:10 AM (20 years ago)
Author:
ryan
Message:

Dynamic menu reparenting. fixes #2257

File:
1 edited

Legend:

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

    r3520 r3536  
    12321232    global $menu;
    12331233    global $submenu;
     1234    global $menu_nopriv;
    12341235
    12351236    $parent = get_admin_page_parent();
     1237   
     1238    if ( isset($menu_nopriv[$pagenow]) )
     1239        return false;
     1240
     1241    if ( empty($parent) )
     1242        return true;
     1243
     1244    if (isset ($submenu[$parent])) {
     1245        foreach ($submenu[$parent] as $submenu_array) {
     1246            if ($submenu_array[2] == $pagenow) {
     1247                if (current_user_can($submenu_array[1]))
     1248                    return true;
     1249                else
     1250                    return false;
     1251            }
     1252        }
     1253    }
    12361254
    12371255    foreach ($menu as $menu_array) {
    12381256        //echo "parent array: " . $menu_array[2];
    12391257        if ($menu_array[2] == $parent) {
    1240             if (!current_user_can($menu_array[1])) {
     1258            if (current_user_can($menu_array[1]))
     1259                return true;
     1260            else
    12411261                return false;
    1242             } else {
    1243                 break;
    1244             }
    1245         }
    1246     }
    1247 
    1248     if (isset ($submenu[$parent])) {
    1249         foreach ($submenu[$parent] as $submenu_array) {
    1250             if ($submenu_array[2] == $pagenow) {
    1251                 if (!current_user_can($submenu_array[1])) {
    1252                     return false;
    1253                 } else {
    1254                     return true;
    1255                 }
    1256             }
    1257         }
    1258     }
    1259 
     1262        }
     1263    }
     1264   
    12601265    return true;
    12611266}
     
    13141319    global $pagenow;
    13151320    global $plugin_page;
    1316 
    1317     if (isset ($parent_file) && !empty ($parent_file)) {
     1321    global $real_parent_file;
     1322
     1323    if ( !empty ($parent_file) ) {
     1324        if ( isset($real_parent_file[$parent_file]) )
     1325            $parent_file = $real_parent_file[$parent_file];
     1326
    13181327        return $parent_file;
    13191328    }
     
    13231332            if ($parent_menu[2] == $plugin_page) {
    13241333                $parent_file = $plugin_page;
    1325                 return $plugin_page;
     1334                if ( isset($real_parent_file[$parent_file]) )
     1335                    $parent_file = $real_parent_file[$parent_file];
     1336                   
     1337                return $parent_file;
    13261338            }
    13271339        }
     
    13301342    foreach (array_keys($submenu) as $parent) {
    13311343        foreach ($submenu[$parent] as $submenu_array) {
     1344            if ( isset($real_parent_file[$parent]) )
     1345                $parent = $real_parent_file[$parent];
    13321346            if ($submenu_array[2] == $pagenow) {
    13331347                $parent_file = $parent;
     
    13641378    global $submenu;
    13651379    global $menu;
     1380    global $real_parent_file;
    13661381
    13671382    $parent = plugin_basename($parent);
     1383    if ( isset($real_parent_file[$parent]) )
     1384        $parent = $real_parent_file[$parent];
     1385
    13681386    $file = plugin_basename($file);
    13691387
Note: See TracChangeset for help on using the changeset viewer.