Ticket #13662: 13662.patch
| File 13662.patch, 6.5 KB (added by SergeyBiryukov, 22 months ago) |
|---|
-
wp-admin/menu-header.php
48 48 $class[] = 'wp-first-item'; 49 49 $first = false; 50 50 } 51 51 52 if ( !empty($submenu[$item[2]]) ) { 53 $submenu_items = $submenu[$item[2]]; 52 54 $class[] = 'wp-has-submenu'; 53 55 $menu_setting_increment++; 54 56 } 55 57 56 58 if ( ( $parent_file && $item[2] == $parent_file ) || ( empty($typenow) && $self == $item[2] ) ) { 57 if ( !empty($submenu[$item[2]]) ) 58 $class[] = 'wp-has-current-submenu wp-menu-open'; 59 else 60 $class[] = 'current'; 59 $class[] = !empty($submenu_items) ? 'wp-has-current-submenu wp-menu-open' : 'current'; 61 60 } elseif ( ! empty( $submenu[ $item[2] ] ) && isset( $user_settings[ 'm' . $menu_setting_increment ] ) && 'o' == $user_settings[ 'm' . $menu_setting_increment ] ) { 62 $class[] = 'wp-menu-open';61 $class[] = 'wp-menu-open'; 63 62 } 64 63 65 64 if ( ! empty($item[4]) ) … … 70 69 $id = ! empty($item[5]) ? ' id="' . preg_replace( '|[^a-zA-Z0-9_:.]|', '-', $item[5] ) . '"' : ''; 71 70 $img = ''; 72 71 if ( ! empty($item[6]) ) { 73 if ( 'div' === $item[6] ) 74 $img = '<br />'; 75 else 76 $img = '<img src="' . $item[6] . '" alt="" />'; 72 $img = ( 'div' === $item[6] ) ? '<br />' : '<img src="' . $item[6] . '" alt="" />'; 77 73 } 78 74 $toggle = '<div class="wp-menu-toggle"><br /></div>'; 79 75 $arrow = '<div class="wp-menu-arrow"><div></div></div>'; … … 84 80 85 81 if ( false !== strpos( $class, 'wp-menu-separator' ) ) { 86 82 echo '<div class="separator"></div>'; 87 } elseif ( $submenu_as_parent && !empty($submenu [$item[2]]) ) {88 $submenu [$item[2]] = array_values($submenu[$item[2]]); // Re-index.89 $menu_hook = get_plugin_page_hook($submenu [$item[2]][0][2], $item[2]);90 $menu_file = $submenu [$item[2]][0][2];91 if ( false !== $pos = strpos($menu_file, '?') )83 } elseif ( $submenu_as_parent && !empty($submenu_items) ) { 84 $submenu_items = array_values($submenu_items); // Re-index. 85 $menu_hook = get_plugin_page_hook($submenu_items[0][2], $item[2]); 86 $menu_file = $submenu_items[0][2]; 87 if ( false !== ( $pos = strpos($menu_file, '?') ) ) 92 88 $menu_file = substr($menu_file, 0, $pos); 93 if ( ( ('index.php' != $submenu[$item[2]][0][2]) && file_exists(WP_PLUGIN_DIR . "/$menu_file") ) || !empty($menu_hook)) {89 if ( !empty($menu_hook) || ( ('index.php' != $submenu_items[0][2]) && file_exists(WP_PLUGIN_DIR . "/$menu_file") ) ) { 94 90 $admin_is_parent = true; 95 echo "<div class='wp-menu-image'><a href='admin.php?page={$submenu [$item[2]][0][2]}'>$img</a></div>$arrow$toggle<a href='admin.php?page={$submenu[$item[2]][0][2]}'$class$tabindex>$title</a>";91 echo "<div class='wp-menu-image'><a href='admin.php?page={$submenu_items[0][2]}'>$img</a></div>$arrow$toggle<a href='admin.php?page={$submenu_items[0][2]}'$class$tabindex>$title</a>"; 96 92 } else { 97 echo "\n\t<div class='wp-menu-image'><a href='{$submenu [$item[2]][0][2]}'>$img</a></div>$arrow$toggle<a href='{$submenu[$item[2]][0][2]}'$class$tabindex>$title</a>";93 echo "\n\t<div class='wp-menu-image'><a href='{$submenu_items[0][2]}'>$img</a></div>$arrow$toggle<a href='{$submenu_items[0][2]}'$class$tabindex>$title</a>"; 98 94 } 99 95 } else if ( !empty($item[2]) && current_user_can($item[1]) ) { 100 96 $menu_hook = get_plugin_page_hook($item[2], 'admin.php'); 101 97 $menu_file = $item[2]; 102 if ( false !== $pos = strpos($menu_file, '?') )98 if ( false !== ( $pos = strpos($menu_file, '?') ) ) 103 99 $menu_file = substr($menu_file, 0, $pos); 104 if ( ('index.php' != $item[2]) && file_exists(WP_PLUGIN_DIR . "/$menu_file") || !empty($menu_hook) ) {100 if ( !empty($menu_hook) || ('index.php' != $item[2]) && file_exists(WP_PLUGIN_DIR . "/$menu_file") ) { 105 101 $admin_is_parent = true; 106 102 echo "\n\t<div class='wp-menu-image'><a href='admin.php?page={$item[2]}'>$img</a></div>$arrow$toggle<a href='admin.php?page={$item[2]}'$class$tabindex>{$item[0]}</a>"; 107 103 } else { … … 109 105 } 110 106 } 111 107 112 if ( !empty($submenu [$item[2]]) ) {108 if ( !empty($submenu_items) ) { 113 109 echo "\n\t<div class='wp-submenu'><div class='wp-submenu-wrap'>"; 114 110 echo "<div class='wp-submenu-head'>{$item[0]}</div><ul>"; 115 111 $first = true; 116 foreach ( $submenu [$item[2]]as $sub_key => $sub_item ) {112 foreach ( $submenu_items as $sub_key => $sub_item ) { 117 113 if ( !current_user_can($sub_item[1]) ) 118 114 continue; 119 115 … … 125 121 126 122 $menu_file = $item[2]; 127 123 128 if ( false !== $pos = strpos($menu_file, '?') )124 if ( false !== ( $pos = strpos($menu_file, '?') ) ) 129 125 $menu_file = substr($menu_file, 0, $pos); 130 126 131 127 // Handle current for post_type=post|page|foo pages, which won't match $self. 132 if ( !empty($typenow) ) 133 $self_type = $self . '?post_type=' . $typenow; 134 else 135 $self_type = 'nothing'; 128 $self_type = ( !empty($typenow) ) ? $self . '?post_type=' . $typenow : 'nothing'; 136 129 137 130 if ( isset($submenu_file) ) { 138 131 if ( $submenu_file == $sub_item[2] ) 139 132 $class[] = 'current'; 140 133 // If plugin_page is set the parent must either match the current page or not physically exist. 141 134 // This allows plugin pages with the same hook to exist under different parents. 142 } else if ( (isset($plugin_page) && $plugin_page == $sub_item[2] && (!file_exists($menu_file) || ($item[2] == $self) || ($item[2] == $self_type))) || (!isset($plugin_page) && $self == $sub_item[2]) ) { 135 } elseif ( 136 ( ! isset($plugin_page) && $self == $sub_item[2] ) || 137 ( isset($plugin_page) && $plugin_page == $sub_item[2] && (($item[2] == $self_type) || ($item[2] == $self) || file_exists($menu_file) === false) ) 138 ) { 143 139 $class[] = 'current'; 144 140 } 145 141 … … 147 143 148 144 $menu_hook = get_plugin_page_hook($sub_item[2], $item[2]); 149 145 $sub_file = $sub_item[2]; 150 if ( false !== $pos = strpos($sub_file, '?') )146 if ( false !== ( $pos = strpos($sub_file, '?') ) ) 151 147 $sub_file = substr($sub_file, 0, $pos); 152 148 153 149 $title = wptexturize($sub_item[0]); 154 150 155 if ( ( ('index.php' != $sub_item[2]) && file_exists(WP_PLUGIN_DIR . "/$sub_file") ) || ! empty($menu_hook) ) {151 if ( ! empty($menu_hook) || ( ('index.php' != $sub_item[2]) && file_exists(WP_PLUGIN_DIR . "/$sub_file") ) ) { 156 152 // If admin.php is the current page or if the parent exists as a file in the plugins or admin dir 157 153 if ( (!$admin_is_parent && file_exists(WP_PLUGIN_DIR . "/$menu_file") && !is_dir(WP_PLUGIN_DIR . "/{$item[2]}")) || file_exists($menu_file) ) 158 154 $sub_item_url = add_query_arg( array('page' => $sub_item[2]), $item[2] );
