Version Description
- Fixed a
TypeError: invalid 'in' operand a
error that caused compatibility issues with WordPress 4.3. - Fixed a bug where the current menu item wouldn't get highlighted if its URL included %-encoded query parameters.
- Fixed a bug in menu URL generation that could cause problems when moving a plugin menu from "Posts", "Pages" or a CPT to another menu. The URL of the menu item got changed in a way that could break some plugins.
- Fixed a .htaccess compatiblility issue with with Apache 2.3+.
- Fixed an incorrect directory name in an error message.
- The "Links" menu will no longer show up in the editor unless explicitly enabled. As of WP 3.5, the "Links" menu still exists in WordPress core but is inaccessible because the Links Manager is disabled by default.
- Tested with WordPress 4.3.
Download this release
Release Info
Developer | whiteshadow |
Plugin | Admin Menu Editor |
Version | 1.4.5 |
Comparing to | |
See all releases |
Code changes from version 1.4.4 to 1.4.5
- css/menu-editor.css +18 -10
- css/screen-meta.css +3 -0
- includes/.htaccess +11 -2
- includes/admin-menu-editor-mu.php +1 -1
- includes/menu-editor-core.php +46 -0
- includes/menu-item.php +2 -1
- js/menu-editor.js +5 -4
- js/menu-highlight-fix.js +9 -1
- menu-editor.php +1 -1
- readme.txt +11 -2
css/menu-editor.css
CHANGED
@@ -23,7 +23,6 @@
|
|
23 |
width: 100%;
|
24 |
margin: 0;
|
25 |
padding-top: 2px;
|
26 |
-
padding-bottom: 2px;
|
27 |
}
|
28 |
|
29 |
.ws_basic_container {
|
@@ -38,15 +37,24 @@
|
|
38 |
}
|
39 |
|
40 |
.ws_dropzone {
|
41 |
-
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
-
.
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
50 |
}
|
51 |
|
52 |
/*************************************************
|
@@ -695,10 +703,10 @@ select.ws_dropdown optgroup option {
|
|
695 |
.ws_color_scheme_display {
|
696 |
display: inline-block;
|
697 |
height: 20px;
|
698 |
-
width:
|
699 |
|
700 |
margin-right: 5px;
|
701 |
-
padding: 2px
|
702 |
|
703 |
border: 1px solid #ddd;
|
704 |
background: white;
|
23 |
width: 100%;
|
24 |
margin: 0;
|
25 |
padding-top: 2px;
|
|
|
26 |
}
|
27 |
|
28 |
.ws_basic_container {
|
37 |
}
|
38 |
|
39 |
.ws_dropzone {
|
40 |
+
display: block;
|
41 |
+
box-sizing: border-box;
|
42 |
+
|
43 |
+
margin: 2px 6px;
|
44 |
+
border: 3px none #b4b9be;
|
45 |
+
|
46 |
+
height: 31px;
|
47 |
}
|
48 |
|
49 |
+
.ws_dropzone_active,
|
50 |
+
.ws_dropzone_hover,
|
51 |
+
.ws_top_to_submenu_drop_hover .ws_dropzone {
|
52 |
+
border-style: dashed;
|
53 |
+
}
|
54 |
+
|
55 |
+
.ws_dropzone_hover,
|
56 |
+
.ws_top_to_submenu_drop_hover .ws_dropzone {
|
57 |
+
border-width: 1px;
|
58 |
}
|
59 |
|
60 |
/*************************************************
|
703 |
.ws_color_scheme_display {
|
704 |
display: inline-block;
|
705 |
height: 20px;
|
706 |
+
width: 186px;
|
707 |
|
708 |
margin-right: 5px;
|
709 |
+
padding: 2px 3px;
|
710 |
|
711 |
border: 1px solid #ddd;
|
712 |
background: white;
|
css/screen-meta.css
CHANGED
@@ -20,6 +20,9 @@
|
|
20 |
#screen-meta-links .custom-screen-meta-link-wrap a.custom-screen-meta-link
|
21 |
{
|
22 |
padding: 3px 16px 3px 16px;
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
#screen-meta-links a.custom-screen-meta-link::after {
|
20 |
#screen-meta-links .custom-screen-meta-link-wrap a.custom-screen-meta-link
|
21 |
{
|
22 |
padding: 3px 16px 3px 16px;
|
23 |
+
text-decoration: none;
|
24 |
+
display: block;
|
25 |
+
min-height: 22px;
|
26 |
}
|
27 |
|
28 |
#screen-meta-links a.custom-screen-meta-link::after {
|
includes/.htaccess
CHANGED
@@ -1,2 +1,11 @@
|
|
1 |
-
|
2 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Apache < 2.3
|
2 |
+
<IfModule !mod_authz_core.c>
|
3 |
+
Order allow,deny
|
4 |
+
Deny from all
|
5 |
+
Satisfy All
|
6 |
+
</IfModule>
|
7 |
+
|
8 |
+
# Apache >= 2.3
|
9 |
+
<IfModule mod_authz_core.c>
|
10 |
+
Require all denied
|
11 |
+
</IfModule>
|
includes/admin-menu-editor-mu.php
CHANGED
@@ -42,7 +42,7 @@ function ws_ame_installation_error(){
|
|
42 |
<strong>Admin Menu Editor is installed incorrectly!</strong>
|
43 |
</p>
|
44 |
<p>
|
45 |
-
Please copy the entire <code>admin-menu-
|
46 |
directory, then move only the admin-menu-editor-mu.php file from
|
47 |
<code>admin-menu-editor/includes</code> to <code>mu-plugins</code>.
|
48 |
</p>
|
42 |
<strong>Admin Menu Editor is installed incorrectly!</strong>
|
43 |
</p>
|
44 |
<p>
|
45 |
+
Please copy the entire <code>admin-menu-editor</code> directory to your <code>mu-plugins</code>
|
46 |
directory, then move only the admin-menu-editor-mu.php file from
|
47 |
<code>admin-menu-editor/includes</code> to <code>mu-plugins</code>.
|
48 |
</p>
|
includes/menu-editor-core.php
CHANGED
@@ -287,6 +287,10 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
287 |
$this->apply_woocommerce_compat_fix();
|
288 |
//Compatibility fix for WordPress Mu Domain Mapping.
|
289 |
$this->apply_wpmu_domain_mapping_fix();
|
|
|
|
|
|
|
|
|
290 |
|
291 |
//Generate item templates from the default menu.
|
292 |
$this->item_templates = $this->build_templates($this->default_wp_menu, $this->default_wp_submenu);
|
@@ -2499,6 +2503,48 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
2499 |
}
|
2500 |
}
|
2501 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2502 |
/**
|
2503 |
* Get the names of the roles that a user belongs to.
|
2504 |
*
|
287 |
$this->apply_woocommerce_compat_fix();
|
288 |
//Compatibility fix for WordPress Mu Domain Mapping.
|
289 |
$this->apply_wpmu_domain_mapping_fix();
|
290 |
+
//As of WP 3.5, the "Links" menu is hidden by default.
|
291 |
+
if ( !current_user_can('manage_links') ) {
|
292 |
+
$this->remove_link_manager_menus();
|
293 |
+
}
|
294 |
|
295 |
//Generate item templates from the default menu.
|
296 |
$this->item_templates = $this->build_templates($this->default_wp_menu, $this->default_wp_submenu);
|
2503 |
}
|
2504 |
}
|
2505 |
|
2506 |
+
/**
|
2507 |
+
* As of WP 3.5, the Links Manager is hidden by default. It's only visible if the user has existing links
|
2508 |
+
* or they choose to enable it by installing the Links Manager plugin.
|
2509 |
+
*
|
2510 |
+
* However, the "Links" menu still exists. This can be confusing to users who will now see an apparently
|
2511 |
+
* useless menu item that can't be enabled (since they don't have the Links Manager plugin) and can't be
|
2512 |
+
* deleted either (since it's a default menu). To remedy that, hide the default "Links" menu.
|
2513 |
+
*/
|
2514 |
+
private function remove_link_manager_menus() {
|
2515 |
+
//Find the "Links" menu.
|
2516 |
+
$links_index = null;
|
2517 |
+
$links_slug = null;
|
2518 |
+
foreach($this->default_wp_menu as $index => $menu) {
|
2519 |
+
if ( ($menu[1] === 'manage_links') && isset($menu[5]) && ($menu[5] === 'menu-links') ) {
|
2520 |
+
$links_index = $index;
|
2521 |
+
$links_slug = $menu[2];
|
2522 |
+
}
|
2523 |
+
}
|
2524 |
+
|
2525 |
+
//Remove the default "Links" submenus, but leave custom items created by other plugins.
|
2526 |
+
if ( isset($this->default_wp_submenu[$links_slug]) ) {
|
2527 |
+
$this->default_wp_submenu[$links_slug] = array_filter(
|
2528 |
+
$this->default_wp_submenu[$links_slug],
|
2529 |
+
array($this, 'filter_default_links_submenus')
|
2530 |
+
);
|
2531 |
+
if ( empty($this->default_wp_submenu[$links_slug]) ) {
|
2532 |
+
unset($this->default_wp_submenu[$links_slug]);
|
2533 |
+
}
|
2534 |
+
}
|
2535 |
+
|
2536 |
+
//Remove the "Links" menu itself if it no longer has any children.
|
2537 |
+
if ( !isset($this->default_wp_submenu[$links_slug]) ) {
|
2538 |
+
unset($this->default_wp_menu[$links_index]);
|
2539 |
+
}
|
2540 |
+
}
|
2541 |
+
|
2542 |
+
private function filter_default_links_submenus($item) {
|
2543 |
+
$default_items = array('link-manager.php', 'link-add.php', 'edit-tags.php?taxonomy=link_category');
|
2544 |
+
$is_default = isset($item[2]) && in_array($item[2], $default_items);
|
2545 |
+
return !$is_default;
|
2546 |
+
}
|
2547 |
+
|
2548 |
/**
|
2549 |
* Get the names of the roles that a user belongs to.
|
2550 |
*
|
includes/menu-item.php
CHANGED
@@ -457,7 +457,8 @@ abstract class ameMenuItem {
|
|
457 |
}
|
458 |
|
459 |
if ( self::is_hook_or_plugin_page($menu_url, $parent_url) ) {
|
460 |
-
$
|
|
|
461 |
$url = add_query_arg(array('page' => $menu_url), $base_file);
|
462 |
} else {
|
463 |
$url = $menu_url;
|
457 |
}
|
458 |
|
459 |
if ( self::is_hook_or_plugin_page($menu_url, $parent_url) ) {
|
460 |
+
$parent_file = self::remove_query_from($parent_url);
|
461 |
+
$base_file = self::is_wp_admin_file($parent_file) ? $parent_url : 'admin.php';
|
462 |
$url = add_query_arg(array('page' => $menu_url), $base_file);
|
463 |
} else {
|
464 |
$url = $menu_url;
|
js/menu-editor.js
CHANGED
@@ -717,7 +717,7 @@ var knownMenuFields = {
|
|
717 |
advanced : true,
|
718 |
|
719 |
display: function(menuItem, displayValue, input, containerNode) {
|
720 |
-
var colors = getFieldValue(menuItem, 'colors', {});
|
721 |
var colorList = containerNode.find('.ws_color_scheme_display');
|
722 |
|
723 |
colorList.empty();
|
@@ -2103,7 +2103,7 @@ $(document).ready(function(){
|
|
2103 |
colorDialogState.containerNode = containerNode;
|
2104 |
colorDialogState.menuItem = menuItem;
|
2105 |
|
2106 |
-
var colors = getFieldValue(menuItem, 'colors', {});
|
2107 |
var customColorCount = 0;
|
2108 |
for (var i = 0; i < menuColorVariables.length; i++) {
|
2109 |
var name = menuColorVariables[i];
|
@@ -2972,6 +2972,7 @@ $(document).ready(function(){
|
|
2972 |
//Allow the user to drag sub-menu items to the top level.
|
2973 |
$('#ws_top_menu_dropzone').droppable({
|
2974 |
'hoverClass' : 'ws_dropzone_hover',
|
|
|
2975 |
|
2976 |
'accept' : (function(thing){
|
2977 |
return thing.hasClass('ws_item');
|
@@ -2987,8 +2988,8 @@ $(document).ready(function(){
|
|
2987 |
});
|
2988 |
|
2989 |
//...and to drag top level menus to a sub-menu.
|
2990 |
-
$('#
|
2991 |
-
'hoverClass' : '
|
2992 |
|
2993 |
'accept' : (function(thing){
|
2994 |
var visibleSubmenu = $('#ws_submenu_box').find('.ws_submenu:visible');
|
717 |
advanced : true,
|
718 |
|
719 |
display: function(menuItem, displayValue, input, containerNode) {
|
720 |
+
var colors = getFieldValue(menuItem, 'colors', {}) || {};
|
721 |
var colorList = containerNode.find('.ws_color_scheme_display');
|
722 |
|
723 |
colorList.empty();
|
2103 |
colorDialogState.containerNode = containerNode;
|
2104 |
colorDialogState.menuItem = menuItem;
|
2105 |
|
2106 |
+
var colors = getFieldValue(menuItem, 'colors', {}) || {};
|
2107 |
var customColorCount = 0;
|
2108 |
for (var i = 0; i < menuColorVariables.length; i++) {
|
2109 |
var name = menuColorVariables[i];
|
2972 |
//Allow the user to drag sub-menu items to the top level.
|
2973 |
$('#ws_top_menu_dropzone').droppable({
|
2974 |
'hoverClass' : 'ws_dropzone_hover',
|
2975 |
+
'activeClass' : 'ws_dropzone_active',
|
2976 |
|
2977 |
'accept' : (function(thing){
|
2978 |
return thing.hasClass('ws_item');
|
2988 |
});
|
2989 |
|
2990 |
//...and to drag top level menus to a sub-menu.
|
2991 |
+
$('#ws_submenu_box').closest('.ws_main_container').droppable({
|
2992 |
+
'hoverClass' : 'ws_top_to_submenu_drop_hover',
|
2993 |
|
2994 |
'accept' : (function(thing){
|
2995 |
var visibleSubmenu = $('#ws_submenu_box').find('.ws_submenu:visible');
|
js/menu-highlight-fix.js
CHANGED
@@ -2,6 +2,7 @@ jQuery(function($) {
|
|
2 |
// parseUri 1.2.2
|
3 |
// (c) Steven Levithan <stevenlevithan.com>
|
4 |
// MIT License
|
|
|
5 |
|
6 |
function parseUri (str) {
|
7 |
var o = parseUri.options,
|
@@ -13,7 +14,14 @@ jQuery(function($) {
|
|
13 |
|
14 |
uri[o.q.name] = {};
|
15 |
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
|
16 |
-
if ($1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
});
|
18 |
|
19 |
return uri;
|
2 |
// parseUri 1.2.2
|
3 |
// (c) Steven Levithan <stevenlevithan.com>
|
4 |
// MIT License
|
5 |
+
// Modified: Added partial URL-decoding support.
|
6 |
|
7 |
function parseUri (str) {
|
8 |
var o = parseUri.options,
|
14 |
|
15 |
uri[o.q.name] = {};
|
16 |
uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) {
|
17 |
+
if ($1) {
|
18 |
+
//Decode percent-encoded query parameters.
|
19 |
+
if (o.q.name === 'queryKey') {
|
20 |
+
$1 = decodeURIComponent($1);
|
21 |
+
$2 = decodeURIComponent($2);
|
22 |
+
}
|
23 |
+
uri[o.q.name][$1] = $2;
|
24 |
+
}
|
25 |
});
|
26 |
|
27 |
return uri;
|
menu-editor.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Admin Menu Editor
|
4 |
Plugin URI: http://w-shadow.com/blog/2008/12/20/admin-menu-editor-for-wordpress/
|
5 |
Description: Lets you directly edit the WordPress admin menu. You can re-order, hide or rename existing menus, add custom menus and more.
|
6 |
-
Version: 1.4.
|
7 |
Author: Janis Elsts
|
8 |
Author URI: http://w-shadow.com/blog/
|
9 |
*/
|
3 |
Plugin Name: Admin Menu Editor
|
4 |
Plugin URI: http://w-shadow.com/blog/2008/12/20/admin-menu-editor-for-wordpress/
|
5 |
Description: Lets you directly edit the WordPress admin menu. You can re-order, hide or rename existing menus, add custom menus and more.
|
6 |
+
Version: 1.4.5
|
7 |
Author: Janis Elsts
|
8 |
Author URI: http://w-shadow.com/blog/
|
9 |
*/
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: whiteshadow
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A6P9S6CE3SRSW
|
4 |
Tags: admin, dashboard, menu, security, wpmu
|
5 |
Requires at least: 3.8
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 1.4.
|
8 |
|
9 |
Lets you edit the WordPress admin menu. You can re-order, hide or rename menus, add custom menus and more.
|
10 |
|
@@ -63,6 +63,15 @@ Plugins installed in the `mu-plugins` directory are treated as "always on", so y
|
|
63 |
|
64 |
== Changelog ==
|
65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
= 1.4.4 =
|
67 |
* Tested with WordPress 4.2.
|
68 |
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A6P9S6CE3SRSW
|
4 |
Tags: admin, dashboard, menu, security, wpmu
|
5 |
Requires at least: 3.8
|
6 |
+
Tested up to: 4.3
|
7 |
+
Stable tag: 1.4.5
|
8 |
|
9 |
Lets you edit the WordPress admin menu. You can re-order, hide or rename menus, add custom menus and more.
|
10 |
|
63 |
|
64 |
== Changelog ==
|
65 |
|
66 |
+
= 1.4.5 =
|
67 |
+
* Fixed a `TypeError: invalid 'in' operand a` error that caused compatibility issues with WordPress 4.3.
|
68 |
+
* Fixed a bug where the current menu item wouldn't get highlighted if its URL included %-encoded query parameters.
|
69 |
+
* Fixed a bug in menu URL generation that could cause problems when moving a plugin menu from "Posts", "Pages" or a CPT to another menu. The URL of the menu item got changed in a way that could break some plugins.
|
70 |
+
* Fixed a .htaccess compatiblility issue with with Apache 2.3+.
|
71 |
+
* Fixed an incorrect directory name in an error message.
|
72 |
+
* The "Links" menu will no longer show up in the editor unless explicitly enabled. As of WP 3.5, the "Links" menu still exists in WordPress core but is inaccessible because the Links Manager is disabled by default.
|
73 |
+
* Tested with WordPress 4.3.
|
74 |
+
|
75 |
= 1.4.4 =
|
76 |
* Tested with WordPress 4.2.
|
77 |
|