Changeset 4481

Show
Ignore:
Timestamp:
11/18/06 16:24:31 (2 years ago)
Author:
ryan
Message:

Menu reparenting fixes. Now even more complex and incomprehensible.

Files:

Legend:

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

    r4478 r4481  
    13421342 
    13431343    $parent = get_admin_page_parent(); 
    1344     /*echo "pa: $parent pn: $pagenow pp: $plugin_page<br/>"; 
    1345     echo "<pre>"; 
    1346     print_r( $_wp_menu_nopriv ); 
    1347     print_r( $_wp_submenu_nopriv ); 
    1348     echo "</pre>";*/ 
     1344 
    13491345    if ( isset( $_wp_submenu_nopriv[$parent][$pagenow] ) ) 
    13501346        return false; 
     
    13711367    if ( isset( $submenu[$parent] ) ) { 
    13721368        foreach ( $submenu[$parent] as $submenu_array ) { 
    1373             if ( $submenu_array[2] == $pagenow ) { 
     1369            if ( isset( $plugin_page ) && ( $submenu_array[2] == $plugin_page ) ) { 
     1370                if ( current_user_can( $submenu_array[1] )) 
     1371                    return true; 
     1372                else 
     1373                    return false; 
     1374            } else if ( $submenu_array[2] == $pagenow ) { 
    13741375                if ( current_user_can( $submenu_array[1] )) 
    13751376                    return true; 
     
    15501551    if (!isset( $submenu[$parent] ) && $file != $parent  ) { 
    15511552        foreach ( $menu as $parent_menu ) { 
    1552             if ( $parent_menu[2] == $parent && current_user_can( $parent_menu[1] ) ) { 
     1553            if ( $parent_menu[2] == $parent && current_user_can( $parent_menu[1] ) ) 
    15531554                $submenu[$parent][] = $parent_menu; 
    1554             } 
    15551555        } 
    15561556    } 
  • trunk/wp-admin/menu-header.php

    r4480 r4481  
    1111    // 0 = name, 1 = capability, 2 = file 
    1212    if (( strcmp($self, $item[2]) == 0 && empty($parent_file)) || ($parent_file && ($item[2] == $parent_file))) $class = ' class="current"'; 
    13      
    14     if ( !empty($submenu[$item[2]]) || current_user_can($item[1]) ) { 
     13 
     14    if ( !empty($submenu[$item[2]]) ) { 
     15        $submenu[$item[2]] = array_values($submenu[$item[2]]);  // Re-index. 
     16        $menu_hook = get_plugin_page_hook($submenu[$item[2]][0][2], $item[2]); 
     17        if ( file_exists(ABSPATH . PLUGINDIR . "/{$submenu[$item[2]][0][2]}") || !empty($menu_hook)) 
     18            echo "\n\t<li><a href='admin.php?page={$submenu[$item[2]][0][2]}'$class>{$item[0]}</a></li>"; 
     19        else 
     20            echo "\n\t<li><a href='{$submenu[$item[2]][0][2]}'$class>{$item[0]}</a></li>"; 
     21    } else if ( current_user_can($item[1]) ) { 
    1522        if ( file_exists(ABSPATH . PLUGINDIR . "/{$item[2]}") ) 
    1623            echo "\n\t<li><a href='admin.php?page={$item[2]}'$class>{$item[0]}</a></li>";