Version Description
- Fixed a minor conflict with Toolset Types.
- Fixed a conflict with the MailPoet plugin where it was not possible to change the plugin's menu icon.
- Fixed a bug where the plugin could misidentify certain core menus that have different URLs for different roles.
- Fixed a bug where the plugin could generate incorrect URLs for submenu items where the parent menu URL contained HTML entities like "&".
- Fixed an issue where certain vulnerability scanners showed a warning about one of the plugin files because it used the eval() function. This particular instance of eval() was not a security flaw, but it has been now been removed to prevent false positives.
- Fixed a bug where the plugin could show an incorrect error message when a menu item was hidden due to there being another hidden menu item with the same URL.
- Fixed a minor issue with field alignment in menu properties.
- The "Site Health" menu will no longer be highlighted as new because it's part of WordPress core.
Download this release
Release Info
| Developer | whiteshadow |
| Plugin | |
| Version | 1.9.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.9 to 1.9.1
- css/force-dashicons.css +2 -0
- css/force-dashicons.css.map +1 -1
- css/force-dashicons.scss +5 -0
- css/menu-editor.css +1 -0
- css/menu-editor.scss +1 -0
- includes/PHP-CSS-Parser/lib/Sabberworm/CSS/CSSList/CSSBlockList.php +13 -3
- includes/menu-editor-core.php +31 -9
- includes/menu-item.php +14 -3
- js/actor-manager.js +1 -1
- js/menu-highlight-fix.js +1 -1
- menu-editor.php +1 -1
- modules/actor-selector/actor-selector.js +1 -1
- modules/highlight-new-menus/wsNewMenuHighlighter.php +3 -0
- readme.txt +11 -1
css/force-dashicons.css
CHANGED
|
@@ -16,6 +16,8 @@
|
|
| 16 |
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon > .wp-menu-image::before {
|
| 17 |
font-family: "dashicons", sans-serif !important;
|
| 18 |
font-size: 20px !important; }
|
|
|
|
|
|
|
| 19 |
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon .dashicons-menu:before {
|
| 20 |
content: "\f333" !important; }
|
| 21 |
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon .dashicons-admin-site:before {
|
| 16 |
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon > .wp-menu-image::before {
|
| 17 |
font-family: "dashicons", sans-serif !important;
|
| 18 |
font-size: 20px !important; }
|
| 19 |
+
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon > .wp-menu-image {
|
| 20 |
+
background-image: none; }
|
| 21 |
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon .dashicons-menu:before {
|
| 22 |
content: "\f333" !important; }
|
| 23 |
#adminmenu#adminmenu#adminmenu a.ame-has-custom-dashicon .dashicons-admin-site:before {
|
css/force-dashicons.css.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
{
|
| 2 |
"version": 3,
|
| 3 |
-
"mappings": "AAAA;;;;;;;;;EASE;AAGF,wDAAyD;ECZzD;;;IAGE;EDUD,iFAA2B;IAC1B,WAAW,EAAE,kCAAkC;IAC/C,SAAS,EAAE,eAAe;
|
| 4 |
"sources": ["force-dashicons.scss","_dashicons.scss"],
|
| 5 |
"names": [],
|
| 6 |
"file": "force-dashicons.css"
|
| 1 |
{
|
| 2 |
"version": 3,
|
| 3 |
+
"mappings": "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",
|
| 4 |
"sources": ["force-dashicons.scss","_dashicons.scss"],
|
| 5 |
"names": [],
|
| 6 |
"file": "force-dashicons.css"
|
css/force-dashicons.scss
CHANGED
|
@@ -16,5 +16,10 @@
|
|
| 16 |
font-size: 20px !important;
|
| 17 |
}
|
| 18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
@import '_dashicons';
|
| 20 |
}
|
| 16 |
font-size: 20px !important;
|
| 17 |
}
|
| 18 |
|
| 19 |
+
//Some plugins set the icon as a background image instead of a pseudo-element.
|
| 20 |
+
& > .wp-menu-image {
|
| 21 |
+
background-image: none;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
@import '_dashicons';
|
| 25 |
}
|
css/menu-editor.css
CHANGED
|
@@ -822,6 +822,7 @@ a#ws-ame-delete-color-preset:hover {
|
|
| 822 |
height: 26px;
|
| 823 |
width: 190px;
|
| 824 |
margin-right: 5px;
|
|
|
|
| 825 |
padding: 2px 4px;
|
| 826 |
font-size: 12px;
|
| 827 |
border: 1px solid #ddd;
|
| 822 |
height: 26px;
|
| 823 |
width: 190px;
|
| 824 |
margin-right: 5px;
|
| 825 |
+
margin-left: 1px;
|
| 826 |
padding: 2px 4px;
|
| 827 |
font-size: 12px;
|
| 828 |
border: 1px solid #ddd;
|
css/menu-editor.scss
CHANGED
|
@@ -1119,6 +1119,7 @@ $colorFieldRightMargin: 5px;
|
|
| 1119 |
width: $colorFieldWidth;
|
| 1120 |
|
| 1121 |
margin-right: $colorFieldRightMargin;
|
|
|
|
| 1122 |
padding: 2px 4px;
|
| 1123 |
|
| 1124 |
font-size: 12px;
|
| 1119 |
width: $colorFieldWidth;
|
| 1120 |
|
| 1121 |
margin-right: $colorFieldRightMargin;
|
| 1122 |
+
margin-left: 1px;
|
| 1123 |
padding: 2px 4px;
|
| 1124 |
|
| 1125 |
font-size: 12px;
|
includes/PHP-CSS-Parser/lib/Sabberworm/CSS/CSSList/CSSBlockList.php
CHANGED
|
@@ -65,9 +65,19 @@ abstract class CSSBlockList extends CSSList {
|
|
| 65 |
if ($sSpecificitySearch === null) {
|
| 66 |
$aResult[] = $oSelector;
|
| 67 |
} else {
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
$aResult[] = $oSelector;
|
| 72 |
}
|
| 73 |
}
|
| 65 |
if ($sSpecificitySearch === null) {
|
| 66 |
$aResult[] = $oSelector;
|
| 67 |
} else {
|
| 68 |
+
//WSH: The original implementation used eval to compare specificity. I rewrote it
|
| 69 |
+
//to use version_compare instead to prevent false positives in vulnerability scanners.
|
| 70 |
+
//It's a bit of a hack, but it's shorter than a big switch statement.
|
| 71 |
+
$specificity = $oSelector->getSpecificity();
|
| 72 |
+
$isMatch = false;
|
| 73 |
+
if ( preg_match(
|
| 74 |
+
'/^(?P<operator>(?:[<>]=?)|(?:!==?)|={2,3})\s*?(?P<number>\d++)$/',
|
| 75 |
+
trim($sSpecificitySearch),
|
| 76 |
+
$matches
|
| 77 |
+
) ) {
|
| 78 |
+
$isMatch = version_compare((string)$specificity, $matches['number'], $matches['operator']);
|
| 79 |
+
}
|
| 80 |
+
if ($isMatch) {
|
| 81 |
$aResult[] = $oSelector;
|
| 82 |
}
|
| 83 |
}
|
includes/menu-editor-core.php
CHANGED
|
@@ -1817,11 +1817,16 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
| 1817 |
$trueAccess = isset($this->page_access_lookup[$topmenu['url']]) ? $this->page_access_lookup[$topmenu['url']] : null;
|
| 1818 |
if ( ($trueAccess === 'do_not_allow') && ($topmenu['access_level'] !== $trueAccess) ) {
|
| 1819 |
$topmenu['access_level'] = $trueAccess;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1820 |
if ( isset($topmenu['access_check_log']) ) {
|
| 1821 |
$topmenu['access_check_log'][] = sprintf(
|
| 1822 |
-
'+ Override:
|
| 1823 |
-
|
| 1824 |
-
$topmenu['url'],
|
| 1825 |
$trueAccess
|
| 1826 |
);
|
| 1827 |
$topmenu['access_check_log'][] = str_repeat('=', 79);
|
|
@@ -1837,11 +1842,16 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
| 1837 |
$trueAccess = isset($this->page_access_lookup[$item['url']]) ? $this->page_access_lookup[$item['url']] : null;
|
| 1838 |
if ( ($trueAccess === 'do_not_allow') && ($item['access_level'] !== $trueAccess) ) {
|
| 1839 |
$item['access_level'] = $trueAccess;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1840 |
if ( isset($item['access_check_log']) ) {
|
| 1841 |
$item['access_check_log'][] = sprintf(
|
| 1842 |
-
'+ Override:
|
| 1843 |
-
|
| 1844 |
-
$item['url'],
|
| 1845 |
$trueAccess
|
| 1846 |
);
|
| 1847 |
$item['access_check_log'][] = str_repeat('=', 79);
|
|
@@ -2273,6 +2283,7 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
| 2273 |
}
|
| 2274 |
|
| 2275 |
echo "Fetch option {$option}<br>";
|
|
|
|
| 2276 |
$row = $wpdb->get_row($wpdb->prepare(
|
| 2277 |
"SELECT * FROM {$wpdb->sitemeta} WHERE meta_key = %s LIMIT 1",
|
| 2278 |
$option
|
|
@@ -2566,7 +2577,14 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
| 2566 |
*/
|
| 2567 |
private function get_default_menu() {
|
| 2568 |
$default_tree = ameMenu::wp2tree($this->default_wp_menu, $this->default_wp_submenu, $this->menu_url_blacklist);
|
| 2569 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2570 |
return $default_menu;
|
| 2571 |
}
|
| 2572 |
|
|
@@ -2723,7 +2741,11 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
| 2723 |
return $this->cached_virtual_caps[$mode];
|
| 2724 |
}
|
| 2725 |
|
| 2726 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2727 |
if ( $custom_menu === null ){
|
| 2728 |
return array();
|
| 2729 |
}
|
|
@@ -3462,7 +3484,7 @@ class WPMenuEditor extends MenuEd_ShadowPluginFramework {
|
|
| 3462 |
'ame-force-dashicons',
|
| 3463 |
plugins_url('css/force-dashicons.css', $this->plugin_file),
|
| 3464 |
array(),
|
| 3465 |
-
'
|
| 3466 |
);
|
| 3467 |
}
|
| 3468 |
}
|
| 1817 |
$trueAccess = isset($this->page_access_lookup[$topmenu['url']]) ? $this->page_access_lookup[$topmenu['url']] : null;
|
| 1818 |
if ( ($trueAccess === 'do_not_allow') && ($topmenu['access_level'] !== $trueAccess) ) {
|
| 1819 |
$topmenu['access_level'] = $trueAccess;
|
| 1820 |
+
$reason = sprintf(
|
| 1821 |
+
'There is a hidden menu item with the same URL (%1$s) but a higher priority.',
|
| 1822 |
+
$topmenu['url']
|
| 1823 |
+
);
|
| 1824 |
+
$item['access_decision_reason'] = $reason;
|
| 1825 |
+
|
| 1826 |
if ( isset($topmenu['access_check_log']) ) {
|
| 1827 |
$topmenu['access_check_log'][] = sprintf(
|
| 1828 |
+
'+ Override: %1$s Setting the capability to "%2$s".',
|
| 1829 |
+
$reason,
|
|
|
|
| 1830 |
$trueAccess
|
| 1831 |
);
|
| 1832 |
$topmenu['access_check_log'][] = str_repeat('=', 79);
|
| 1842 |
$trueAccess = isset($this->page_access_lookup[$item['url']]) ? $this->page_access_lookup[$item['url']] : null;
|
| 1843 |
if ( ($trueAccess === 'do_not_allow') && ($item['access_level'] !== $trueAccess) ) {
|
| 1844 |
$item['access_level'] = $trueAccess;
|
| 1845 |
+
$reason = sprintf(
|
| 1846 |
+
'There is a hidden menu item with the same URL (%1$s) but a higher priority.',
|
| 1847 |
+
$item['url']
|
| 1848 |
+
);
|
| 1849 |
+
$item['access_decision_reason'] = $reason;
|
| 1850 |
+
|
| 1851 |
if ( isset($item['access_check_log']) ) {
|
| 1852 |
$item['access_check_log'][] = sprintf(
|
| 1853 |
+
'+ Override: %1$s Setting the capability to "%2$s".',
|
| 1854 |
+
$reason,
|
|
|
|
| 1855 |
$trueAccess
|
| 1856 |
);
|
| 1857 |
$item['access_check_log'][] = str_repeat('=', 79);
|
| 2283 |
}
|
| 2284 |
|
| 2285 |
echo "Fetch option {$option}<br>";
|
| 2286 |
+
/** @noinspection SqlResolve */
|
| 2287 |
$row = $wpdb->get_row($wpdb->prepare(
|
| 2288 |
"SELECT * FROM {$wpdb->sitemeta} WHERE meta_key = %s LIMIT 1",
|
| 2289 |
$option
|
| 2577 |
*/
|
| 2578 |
private function get_default_menu() {
|
| 2579 |
$default_tree = ameMenu::wp2tree($this->default_wp_menu, $this->default_wp_submenu, $this->menu_url_blacklist);
|
| 2580 |
+
try {
|
| 2581 |
+
$default_menu = ameMenu::load_array($default_tree);
|
| 2582 |
+
} catch (InvalidMenuException $e) {
|
| 2583 |
+
throw new LogicException(
|
| 2584 |
+
'An unexpected exception was thrown while loading the default admin menu. '
|
| 2585 |
+
. 'This is most likely a bug. The default menu should always be valid.'
|
| 2586 |
+
);
|
| 2587 |
+
}
|
| 2588 |
return $default_menu;
|
| 2589 |
}
|
| 2590 |
|
| 2741 |
return $this->cached_virtual_caps[$mode];
|
| 2742 |
}
|
| 2743 |
|
| 2744 |
+
try {
|
| 2745 |
+
$custom_menu = $this->load_custom_menu();
|
| 2746 |
+
} catch (InvalidMenuException $e) {
|
| 2747 |
+
return array();
|
| 2748 |
+
}
|
| 2749 |
if ( $custom_menu === null ){
|
| 2750 |
return array();
|
| 2751 |
}
|
| 3484 |
'ame-force-dashicons',
|
| 3485 |
plugins_url('css/force-dashicons.css', $this->plugin_file),
|
| 3486 |
array(),
|
| 3487 |
+
'20190810'
|
| 3488 |
);
|
| 3489 |
}
|
| 3490 |
}
|
includes/menu-item.php
CHANGED
|
@@ -31,6 +31,8 @@ abstract class ameMenuItem {
|
|
| 31 |
'upload.php' => true, 'user-new.php' => true, 'users.php' => true, 'widgets.php' => true,
|
| 32 |
);
|
| 33 |
|
|
|
|
|
|
|
| 34 |
/**
|
| 35 |
* Convert a WP menu structure to an associative array.
|
| 36 |
*
|
|
@@ -111,6 +113,7 @@ abstract class ameMenuItem {
|
|
| 111 |
//Internal fields that may not map directly to WP menu structures.
|
| 112 |
'open_in' => 'same_window', //'new_window', 'iframe' or 'same_window' (the default)
|
| 113 |
'iframe_height' => 0,
|
|
|
|
| 114 |
'template_id' => '', //The default menu item that this item is based on.
|
| 115 |
'is_plugin_page' => false,
|
| 116 |
'custom' => false,
|
|
@@ -163,6 +166,7 @@ abstract class ameMenuItem {
|
|
| 163 |
'icon_url' => 'dashicons-admin-generic',
|
| 164 |
'open_in' => 'same_window',
|
| 165 |
'iframe_height' => 0,
|
|
|
|
| 166 |
'is_plugin_page' => false,
|
| 167 |
'page_heading' => '',
|
| 168 |
'colors' => false,
|
|
@@ -238,8 +242,15 @@ abstract class ameMenuItem {
|
|
| 238 |
}
|
| 239 |
}
|
| 240 |
|
| 241 |
-
|
| 242 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 243 |
}
|
| 244 |
|
| 245 |
//Special case: In WP 4.0+ the URL of the "Appearance -> Customize" item is different on every admin page.
|
|
@@ -510,7 +521,7 @@ abstract class ameMenuItem {
|
|
| 510 |
|
| 511 |
if ( self::is_hook_or_plugin_page($menu_url, $parent_url, $has_hook) ) {
|
| 512 |
$parent_file = self::remove_query_from($parent_url);
|
| 513 |
-
$base_file = self::is_wp_admin_file($parent_file) ? $parent_url : 'admin.php';
|
| 514 |
//add_query_arg() might be more robust, but it's significantly slower.
|
| 515 |
$url = $base_file
|
| 516 |
. ((strpos($base_file, '?') === false) ? '?' : '&')
|
| 31 |
'upload.php' => true, 'user-new.php' => true, 'users.php' => true, 'widgets.php' => true,
|
| 32 |
);
|
| 33 |
|
| 34 |
+
private static $mappable_parent_whitelist = '@^(?:profile|import|post-new|edit-tags)\.php@';
|
| 35 |
+
|
| 36 |
/**
|
| 37 |
* Convert a WP menu structure to an associative array.
|
| 38 |
*
|
| 113 |
//Internal fields that may not map directly to WP menu structures.
|
| 114 |
'open_in' => 'same_window', //'new_window', 'iframe' or 'same_window' (the default)
|
| 115 |
'iframe_height' => 0,
|
| 116 |
+
'is_iframe_scroll_disabled' => false,
|
| 117 |
'template_id' => '', //The default menu item that this item is based on.
|
| 118 |
'is_plugin_page' => false,
|
| 119 |
'custom' => false,
|
| 166 |
'icon_url' => 'dashicons-admin-generic',
|
| 167 |
'open_in' => 'same_window',
|
| 168 |
'iframe_height' => 0,
|
| 169 |
+
'is_iframe_scroll_disabled' => false,
|
| 170 |
'is_plugin_page' => false,
|
| 171 |
'page_heading' => '',
|
| 172 |
'colors' => false,
|
| 242 |
}
|
| 243 |
}
|
| 244 |
|
| 245 |
+
//Map known alternative parents to admin parent menus. This is necessary to ensure that
|
| 246 |
+
//certain menu items have the same template ID both for admins and for regular users.
|
| 247 |
+
static $inverse_parent_map = null;
|
| 248 |
+
global $_wp_real_parent_file;
|
| 249 |
+
if ( ($inverse_parent_map === null) && !empty($_wp_real_parent_file) && is_array($_wp_real_parent_file) ) {
|
| 250 |
+
$inverse_parent_map = array_flip($_wp_real_parent_file);
|
| 251 |
+
}
|
| 252 |
+
if ( isset($inverse_parent_map[$parent_file]) && (preg_match(self::$mappable_parent_whitelist, $parent_file) === 1) ) {
|
| 253 |
+
$parent_file = $inverse_parent_map[$parent_file];
|
| 254 |
}
|
| 255 |
|
| 256 |
//Special case: In WP 4.0+ the URL of the "Appearance -> Customize" item is different on every admin page.
|
| 521 |
|
| 522 |
if ( self::is_hook_or_plugin_page($menu_url, $parent_url, $has_hook) ) {
|
| 523 |
$parent_file = self::remove_query_from($parent_url);
|
| 524 |
+
$base_file = self::is_wp_admin_file($parent_file) ? html_entity_decode($parent_url) : 'admin.php';
|
| 525 |
//add_query_arg() might be more robust, but it's significantly slower.
|
| 526 |
$url = $base_file
|
| 527 |
. ((strpos($base_file, '?') === false) ? '?' : '&')
|
js/actor-manager.js
CHANGED
|
@@ -132,9 +132,9 @@ var AmeSuperAdmin = /** @class */ (function (_super) {
|
|
| 132 |
}(AmeBaseActor));
|
| 133 |
var AmeActorManager = /** @class */ (function () {
|
| 134 |
function AmeActorManager(roles, users, isMultisite, suspectedMetaCaps) {
|
|
|
|
| 135 |
if (isMultisite === void 0) { isMultisite = false; }
|
| 136 |
if (suspectedMetaCaps === void 0) { suspectedMetaCaps = {}; }
|
| 137 |
-
var _this = this;
|
| 138 |
this.roles = {};
|
| 139 |
this.users = {};
|
| 140 |
this.grantedCapabilities = {};
|
| 132 |
}(AmeBaseActor));
|
| 133 |
var AmeActorManager = /** @class */ (function () {
|
| 134 |
function AmeActorManager(roles, users, isMultisite, suspectedMetaCaps) {
|
| 135 |
+
var _this = this;
|
| 136 |
if (isMultisite === void 0) { isMultisite = false; }
|
| 137 |
if (suspectedMetaCaps === void 0) { suspectedMetaCaps = {}; }
|
|
|
|
| 138 |
this.roles = {};
|
| 139 |
this.users = {};
|
| 140 |
this.grantedCapabilities = {};
|
js/menu-highlight-fix.js
CHANGED
|
@@ -244,7 +244,7 @@ jQuery(function($) {
|
|
| 244 |
//If a submenu is highlighted, so must be its parent.
|
| 245 |
//In some cases, if we decide to stick with the WP-selected highlighted menu,
|
| 246 |
//this might not be the case and we'll need to fix it.
|
| 247 |
-
var parentOfHighlightedMenu = $('.wp-submenu a.current', '#adminmenu').closest('.menu-top');
|
| 248 |
parentOfHighlightedMenu
|
| 249 |
.add('> a.menu-top', parentOfHighlightedMenu)
|
| 250 |
.removeClass('wp-not-current-submenu')
|
| 244 |
//If a submenu is highlighted, so must be its parent.
|
| 245 |
//In some cases, if we decide to stick with the WP-selected highlighted menu,
|
| 246 |
//this might not be the case and we'll need to fix it.
|
| 247 |
+
var parentOfHighlightedMenu = $('.wp-submenu a.current', '#adminmenu').closest('.menu-top').first();
|
| 248 |
parentOfHighlightedMenu
|
| 249 |
.add('> a.menu-top', parentOfHighlightedMenu)
|
| 250 |
.removeClass('wp-not-current-submenu')
|
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.9
|
| 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.9.1
|
| 7 |
Author: Janis Elsts
|
| 8 |
Author URI: http://w-shadow.com/blog/
|
| 9 |
*/
|
modules/actor-selector/actor-selector.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
| 3 |
/// <reference path="../../js/actor-manager.ts" />
|
| 4 |
var AmeActorSelector = /** @class */ (function () {
|
| 5 |
function AmeActorSelector(actorManager, isProVersion, allOptionEnabled) {
|
| 6 |
-
if (allOptionEnabled === void 0) { allOptionEnabled = true; }
|
| 7 |
var _this = this;
|
|
|
|
| 8 |
this.selectedActor = null;
|
| 9 |
this.selectedDisplayName = 'All';
|
| 10 |
this.visibleUsers = [];
|
| 3 |
/// <reference path="../../js/actor-manager.ts" />
|
| 4 |
var AmeActorSelector = /** @class */ (function () {
|
| 5 |
function AmeActorSelector(actorManager, isProVersion, allOptionEnabled) {
|
|
|
|
| 6 |
var _this = this;
|
| 7 |
+
if (allOptionEnabled === void 0) { allOptionEnabled = true; }
|
| 8 |
this.selectedActor = null;
|
| 9 |
this.selectedDisplayName = 'All';
|
| 10 |
this.visibleUsers = [];
|
modules/highlight-new-menus/wsNewMenuHighlighter.php
CHANGED
|
@@ -37,6 +37,7 @@ class wsNewMenuHighlighter {
|
|
| 37 |
'post-new.php' => true,
|
| 38 |
'profile.php' => true,
|
| 39 |
'privacy.php' => true,
|
|
|
|
| 40 |
'theme-editor.php' => true,
|
| 41 |
'themes.php' => true,
|
| 42 |
'tools.php' => true,
|
|
@@ -51,6 +52,8 @@ class wsNewMenuHighlighter {
|
|
| 51 |
'sites.php' => true,
|
| 52 |
'theme-install.php' => true,
|
| 53 |
'upgrade.php' => true,
|
|
|
|
|
|
|
| 54 |
);
|
| 55 |
|
| 56 |
private $menusWithNewSubmenus = array();
|
| 37 |
'post-new.php' => true,
|
| 38 |
'profile.php' => true,
|
| 39 |
'privacy.php' => true,
|
| 40 |
+
'site-health.php' => true,
|
| 41 |
'theme-editor.php' => true,
|
| 42 |
'themes.php' => true,
|
| 43 |
'tools.php' => true,
|
| 52 |
'sites.php' => true,
|
| 53 |
'theme-install.php' => true,
|
| 54 |
'upgrade.php' => true,
|
| 55 |
+
//Hidden ACF menu. It's used to show the "Welcome to Advanced Custom Fields" page.
|
| 56 |
+
'edit.php?post_type=acf-field-group&page=acf-settings-info' => true,
|
| 57 |
);
|
| 58 |
|
| 59 |
private $menusWithNewSubmenus = array();
|
readme.txt
CHANGED
|
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
|
|
| 4 |
Tags: admin, dashboard, menu, security, wpmu
|
| 5 |
Requires at least: 4.1
|
| 6 |
Tested up to: 5.2
|
| 7 |
-
Stable tag: 1.9
|
| 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,16 @@ Plugins installed in the `mu-plugins` directory are treated as "always on", so y
|
|
| 63 |
|
| 64 |
== Changelog ==
|
| 65 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
= 1.9 =
|
| 67 |
* Added an option to automatically hide new plugins. It was already possible, but previously this option was tied to the "show all plugins" checkbox. Now there is a separate "New plugins" checkbox.
|
| 68 |
* Fixed a bug where trying to change the icon of the Jetpack menu caused a JavaScript error that prevented the icon selector from being displayed.
|
| 4 |
Tags: admin, dashboard, menu, security, wpmu
|
| 5 |
Requires at least: 4.1
|
| 6 |
Tested up to: 5.2
|
| 7 |
+
Stable tag: 1.9.1
|
| 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.9.1 =
|
| 67 |
+
* Fixed a minor conflict with Toolset Types.
|
| 68 |
+
* Fixed a conflict with the MailPoet plugin where it was not possible to change the plugin's menu icon.
|
| 69 |
+
* Fixed a bug where the plugin could misidentify certain core menus that have different URLs for different roles.
|
| 70 |
+
* Fixed a bug where the plugin could generate incorrect URLs for submenu items where the parent menu URL contained HTML entities like "&".
|
| 71 |
+
* Fixed an issue where certain vulnerability scanners showed a warning about one of the plugin files because it used the eval() function. This particular instance of eval() was not a security flaw, but it has been now been removed to prevent false positives.
|
| 72 |
+
* Fixed a bug where the plugin could show an incorrect error message when a menu item was hidden due to there being another hidden menu item with the same URL.
|
| 73 |
+
* Fixed a minor issue with field alignment in menu properties.
|
| 74 |
+
* The "Site Health" menu will no longer be highlighted as new because it's part of WordPress core.
|
| 75 |
+
|
| 76 |
= 1.9 =
|
| 77 |
* Added an option to automatically hide new plugins. It was already possible, but previously this option was tied to the "show all plugins" checkbox. Now there is a separate "New plugins" checkbox.
|
| 78 |
* Fixed a bug where trying to change the icon of the Jetpack menu caused a JavaScript error that prevented the icon selector from being displayed.
|
